欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1827|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)讀取EEPROM值修改后如何再返回AD值顯示界面?附程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:686513 發(fā)表于 2022-3-26 09:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 zhth1979 于 2022-4-3 11:51 編輯

void main()
{  
         u16 num;
         float vary, ADCBat,press;

    P0M1 = 0x00;   P0M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
    P2M1 = 0x00;   P2M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
    P3M1 = 0x00;   P3M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口   
    P5M1 = 0x00;   P5M0 = 0x00;   //設(shè)置為準(zhǔn)雙向口
         
         led1=0; md1=0; Buzzer=0;
                          
         Timer0Init();
         STC8ADC_INIT();         
         EA=1;       //中斷總開關(guān)
         
                 while(1)
           {  
                        
                        ADCBat =line_bat_0-line_bat_1;
                        
                        if(0<ADCBat<100)//當(dāng)壓力值介于15KPA到115KPA之間時(shí),遵循線性變換  0-100Psi 7-135  
                        {
                       vary=ADCBat; //y=(115-15)/(243-13)*X+15kpa
                       press=((10.0/12.8)*vary)-6;//測(cè)試時(shí)  0-100Psi(5-107)((10.0/11.9)*vary)-5.5補(bǔ)償值為5.5
                         wendu=press*10;//放大10倍,便于后面計(jì)算
                         }                          
               
         parm1 = wendu;       問題1: AD值送給 parm1 拆分一直顯示,后面按鍵按下讀出EEPROM,并修改其值,然后保存到EEPROM,自動(dòng)退出后又返回到AD值顯示!我現(xiàn)在想實(shí)現(xiàn)的就是AD值(wendu)和EEPROM值都送給parm1顯示(藍(lán)色標(biāo)注部分),AD值(wendu)是一直顯示,EEPROM是按鍵按下加減設(shè)置時(shí)顯示,自動(dòng)保存退出后又返回AD值顯示。主要這兩個(gè)值如何切換顯示?
           }
}

void dis_Service()
{
         u8 temp0,temp1,temp2;
                switch(wnd)   //wnd為哪幾個(gè)窗口顯示,我有四個(gè)窗口選擇。
          {
                        case 0:
                                temp0= parm1/100;
                          temp1= parm1%100/10;                          
                          temp2= parm1%10;
                          LEDBuf[3]=wnd;
                          LEDBuf[4]=DAT;
                        
                          if(parm1<100)
                {
                        LEDBuf[0] = 16;
          }
             else
               {
                 LEDBuf[0] = temp0;
               }
                                                   
               LEDBuf[1] = temp1&0x7f;    問題2:&0x7f 為什么小數(shù)點(diǎn)不能正常顯示?(共陽數(shù)碼管)    



//部分按鍵程序,key_scan()判斷加鍵有效,四個(gè)窗口中加鍵的情況,按下 讀取EEPROM,并修改其值,然后保存到EEPROM,退出。我想要的是設(shè)置保存后退出設(shè)置顯示后返回到AD值!
         
        switch(key_scan(100))  //key_scan()按鍵判斷
                {
                        
                case 1:
                          switch(wnd)   //wnd為四個(gè)窗口中之一的加鍵顯示
                          {                                                
                                       
                        case 0:parm1 = IapRead(0x0400); parm1++;if(parm1>150) parm1=150; IapErase(0x0400);IapProgram(0x0400, parm1);break;        
                        case 1:parm2 = IapRead(0x0500); parm2++;if(parm2>150) parm2=150; IapErase(0x0500);IapProgram(0x0500, parm2);break;  
                        case 2:parm3 = IapRead(0x0600); parm3++;if(parm3>995) parm3=955; IapErase(0x0600);IapProgram(0x0600, parm3);break;      
                        case 3:parm4 = IapRead(0x0700); parm4++;if(parm4>250) parm4=250; IapErase(0x0700);IapProgram(0x0700, parm4);break;                                                            
                        }                                       
                        break;
   
                                 

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:301191 發(fā)表于 2022-3-26 18:24 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2022-3-26 19:52 | 只看該作者
用手機(jī)看,沒下載附件
1. 在Key_scan中不要用parm1,改用parm1_sp, 然后在顯示函數(shù)中用wnd來選擇顯示哪個(gè)變數(shù)
2. LEDbuf是放0~9吧?&0x7F干什么?輸出到P口時(shí)才運(yùn)算吧?而且共陽不是用|=0x80嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:686513 發(fā)表于 2022-3-27 13:19 | 只看該作者
lkc8210 發(fā)表于 2022-3-26 19:52
用手機(jī)看,沒下載附件
1. 在Key_scan中不要用parm1,改用parm1_sp, 然后在顯示函數(shù)中用wnd來選擇顯示哪個(gè) ...

1.我有四個(gè)單位界面要顯示,wnd參數(shù)為切換這四個(gè)界面,所以這個(gè)參數(shù)不能動(dòng)。2.共陽數(shù)碼管為&0x7f,共陰數(shù)碼管是|0X80。temp1是parm1這個(gè)數(shù)拆分出的十位,也就是第二個(gè)數(shù)碼管要顯示的值&0x7f,不對(duì)嗎?
回復(fù)

使用道具 舉報(bào)

5#
ID:301191 發(fā)表于 2022-3-27 18:24 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

6#
ID:592807 發(fā)表于 2022-3-28 10:06 | 只看該作者
不是很懂你什么意思。顯示界面你要是沒有改變它的顯示模式(刷新),他會(huì)一直存在,你說的返回顯示界面什么意思
回復(fù)

使用道具 舉報(bào)

7#
ID:121859 發(fā)表于 2022-3-28 10:30 | 只看該作者
修改設(shè)置后返回后要顯示以前的數(shù)據(jù)界面,重新顯示一遍就可以了,這里沒有像電腦那樣有保存顯存再恢復(fù)的操作。
回復(fù)

使用道具 舉報(bào)

8#
ID:686513 發(fā)表于 2022-3-28 11:14 | 只看該作者
本帖最后由 zhth1979 于 2022-3-28 11:31 編輯
黃youhui 發(fā)表于 2022-3-28 10:06
不是很懂你什么意思。顯示界面你要是沒有改變它的顯示模式(刷新),他會(huì)一直存在,你說的返回顯示界面什么 ...

顯示界面正常顯示壓力值時(shí),按下加或減讀EEPROM內(nèi)保存的值顯示在當(dāng)前界面(此時(shí)壓力值不顯示),加減設(shè)置后等3秒自動(dòng)保存到EEPROM并退出,這時(shí)又返回到顯示壓力值(壓力值在不按加減鍵是一直顯示的)。
回復(fù)

使用道具 舉報(bào)

9#
ID:161164 發(fā)表于 2022-3-28 11:45 | 只看該作者
zhth1979 發(fā)表于 2022-3-27 13:19
1.我有四個(gè)單位界面要顯示,wnd參數(shù)為切換這四個(gè)界面,所以這個(gè)參數(shù)不能動(dòng)。2.共陽數(shù)碼管為&0x7f,共陰數(shù) ...

1. 我也是借用wnd的值來顯示,沒有動(dòng)它
2. 你說的對(duì),共陽是&0x7f,共陰是|0X80
3. 我知道temp1是parm1的十位,假如parm1是123,temp1就是2,LEDBuf[1]也是2(不加小數(shù)點(diǎn)),但數(shù)碼管的驅(qū)動(dòng)不是2(B00000010)而是0xA4(B10100100),加上小數(shù)點(diǎn)就是0x24(B00100100)
所以不是LEDBuf[1] = temp1&0x7f;
而是PX = table[LEDBuf[1]] &0x7F;(代碼不全,假設(shè)你用P口直驅(qū))
回復(fù)

使用道具 舉報(bào)

10#
ID:686513 發(fā)表于 2022-3-28 12:25 | 只看該作者
黃youhui 發(fā)表于 2022-3-28 10:06
不是很懂你什么意思。顯示界面你要是沒有改變它的顯示模式(刷新),他會(huì)一直存在,你說的返回顯示界面什么 ...

不按按鍵屏一直顯示壓力值  (parm1 = wendu;),按下加或減讀取EEPROM內(nèi)上次保存的值(此時(shí)顯示EEPROM值parm1 = IapRead(0x0400); ,壓力值不顯示),加減設(shè)置完成3秒后,EEPROM擦除寫入新值并保存退出顯示 ,然后還是一直顯示壓力值。也就是EEPROM值只是在按下加減鍵時(shí)顯示,其它時(shí)間一直顯示壓力值。
回復(fù)

使用道具 舉報(bào)

11#
ID:686513 發(fā)表于 2022-3-28 12:31 | 只看該作者
lkc8210 發(fā)表于 2022-3-28 11:45
1. 我也是借用wnd的值來顯示,沒有動(dòng)它
2. 你說的對(duì),共陽是&0x7f,共陰是|0X80
3. 我知道temp1是parm1 ...

你說的對(duì),但如果這樣寫的話,四個(gè)界面十位都會(huì)加上小數(shù)點(diǎn),而其它三個(gè)界面小數(shù)點(diǎn)不在十位上。
回復(fù)

使用道具 舉報(bào)

12#
ID:161164 發(fā)表于 2022-3-28 13:25 | 只看該作者
zhth1979 發(fā)表于 2022-3-28 12:31
你說的對(duì),但如果這樣寫的話,四個(gè)界面十位都會(huì)加上小數(shù)點(diǎn),而其它三個(gè)界面小數(shù)點(diǎn)不在十位上。

還是那一句,用wnd來選擇顯示什么
無論是parm1,parm2還是小數(shù)點(diǎn)的位置

因?yàn)榇a不全,我只能按你貼的代碼來分析問題
然后你用沒貼上來的那部分來說有問題
我只能呵呵了
回復(fù)

使用道具 舉報(bào)

13#
ID:592807 發(fā)表于 2022-3-30 09:29 | 只看該作者
zhth1979 發(fā)表于 2022-3-28 12:25
不按按鍵屏一直顯示壓力值  (parm1 = wendu;),按下加或減讀取EEPROM內(nèi)上次保存的值(此時(shí)顯示EEPROM值p ...

你這個(gè)應(yīng)該屬于分級(jí)菜單。你去網(wǎng)上搜一下很多這方面的資料的。
回復(fù)

使用道具 舉報(bào)

14#
ID:301191 發(fā)表于 2022-4-3 02:30 | 只看該作者
頂一下
回復(fù)

使用道具 舉報(bào)

15#
ID:624769 發(fā)表于 2022-4-4 00:57 | 只看該作者
把:         LEDBuf[1] = temp1&0x7f;    問題2:&0x7f 為什么小數(shù)點(diǎn)不能正常顯示?(共陽數(shù)碼管)   

改成:  LEDBuf[1] = temp1 | 0x10;   
或者: LEDBuf[1] = temp1 + 16;      即可
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表