久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1322|回復: 14
收起左側

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

[復制鏈接]
ID:686513 發表于 2022-3-26 09:23 | 顯示全部樓層 |閱讀模式
本帖最后由 zhth1979 于 2022-4-3 11:51 編輯

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

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

void dis_Service()
{
         u8 temp0,temp1,temp2;
                switch(wnd)   //wnd為哪幾個窗口顯示,我有四個窗口選擇。
          {
                        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 為什么小數點不能正常顯示?(共陽數碼管)    



//部分按鍵程序,key_scan()判斷加鍵有效,四個窗口中加鍵的情況,按下 讀取EEPROM,并修改其值,然后保存到EEPROM,退出。我想要的是設置保存后退出設置顯示后返回到AD值!
         
        switch(key_scan(100))  //key_scan()按鍵判斷
                {
                        
                case 1:
                          switch(wnd)   //wnd為四個窗口中之一的加鍵顯示
                          {                                                
                                       
                        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;
   
                                 

回復

使用道具 舉報

ID:301191 發表于 2022-3-26 18:24 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:161164 發表于 2022-3-26 19:52 | 顯示全部樓層
用手機看,沒下載附件
1. 在Key_scan中不要用parm1,改用parm1_sp, 然后在顯示函數中用wnd來選擇顯示哪個變數
2. LEDbuf是放0~9吧?&0x7F干什么?輸出到P口時才運算吧?而且共陽不是用|=0x80嗎?
回復

使用道具 舉報

ID:686513 發表于 2022-3-27 13:19 | 顯示全部樓層
lkc8210 發表于 2022-3-26 19:52
用手機看,沒下載附件
1. 在Key_scan中不要用parm1,改用parm1_sp, 然后在顯示函數中用wnd來選擇顯示哪個 ...

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

使用道具 舉報

ID:301191 發表于 2022-3-27 18:24 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:592807 發表于 2022-3-28 10:06 | 顯示全部樓層
不是很懂你什么意思。顯示界面你要是沒有改變它的顯示模式(刷新),他會一直存在,你說的返回顯示界面什么意思
回復

使用道具 舉報

ID:121859 發表于 2022-3-28 10:30 | 顯示全部樓層
修改設置后返回后要顯示以前的數據界面,重新顯示一遍就可以了,這里沒有像電腦那樣有保存顯存再恢復的操作。
回復

使用道具 舉報

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

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

使用道具 舉報

ID:161164 發表于 2022-3-28 11:45 | 顯示全部樓層
zhth1979 發表于 2022-3-27 13:19
1.我有四個單位界面要顯示,wnd參數為切換這四個界面,所以這個參數不能動。2.共陽數碼管為&0x7f,共陰數 ...

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

使用道具 舉報

ID:686513 發表于 2022-3-28 12:25 | 顯示全部樓層
黃youhui 發表于 2022-3-28 10:06
不是很懂你什么意思。顯示界面你要是沒有改變它的顯示模式(刷新),他會一直存在,你說的返回顯示界面什么 ...

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

使用道具 舉報

ID:686513 發表于 2022-3-28 12:31 | 顯示全部樓層
lkc8210 發表于 2022-3-28 11:45
1. 我也是借用wnd的值來顯示,沒有動它
2. 你說的對,共陽是&0x7f,共陰是|0X80
3. 我知道temp1是parm1 ...

你說的對,但如果這樣寫的話,四個界面十位都會加上小數點,而其它三個界面小數點不在十位上。
回復

使用道具 舉報

ID:161164 發表于 2022-3-28 13:25 | 顯示全部樓層
zhth1979 發表于 2022-3-28 12:31
你說的對,但如果這樣寫的話,四個界面十位都會加上小數點,而其它三個界面小數點不在十位上。

還是那一句,用wnd來選擇顯示什么
無論是parm1,parm2還是小數點的位置

因為代碼不全,我只能按你貼的代碼來分析問題
然后你用沒貼上來的那部分來說有問題
我只能呵呵了
回復

使用道具 舉報

ID:592807 發表于 2022-3-30 09:29 | 顯示全部樓層
zhth1979 發表于 2022-3-28 12:25
不按按鍵屏一直顯示壓力值  (parm1 = wendu;),按下加或減讀取EEPROM內上次保存的值(此時顯示EEPROM值p ...

你這個應該屬于分級菜單。你去網上搜一下很多這方面的資料的。
回復

使用道具 舉報

ID:301191 發表于 2022-4-3 02:30 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:624769 發表于 2022-4-4 00:57 | 顯示全部樓層
把:         LEDBuf[1] = temp1&0x7f;    問題2:&0x7f 為什么小數點不能正常顯示?(共陽數碼管)   

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲区一区二区 | 久久精品国产一区二区电影 | 久久综合一区二区 | 欧美日日| 国产在线视频99 | 国产黄色大片 | 人人做人人澡人人爽欧美 | h视频在线免费 | 91九色在线观看 | 久久噜噜噜精品国产亚洲综合 | 手机av在线| 狠狠色综合欧美激情 | 亚洲欧美一区二区三区国产精品 | 成人一区二区三区在线 | 中文字幕av亚洲精品一部二部 | 在线免费观看视频你懂的 | 国产精品视频一区二区三区不卡 | 亚洲国产精品一区二区三区 | 日本中出视频 | 天天操网| 亚洲在线一区二区 | 91网站在线看 | 欧美成人a∨高清免费观看 91伊人 | 在线视频国产一区 | 久久综合一区 | 亚洲精品一区二三区不卡 | 男人av在线播放 | 网站一区二区三区 | 黄色片大全在线观看 | 国产精品呻吟久久av凹凸 | 亚洲人成人一区二区在线观看 | 成人免费视频观看视频 | 在线一区观看 | 国产精品美女 | 成人一区二区三区在线观看 | 欧美亚洲国产精品 | a在线观看 | 久久这里只有精品首页 | 久久久国产一区二区三区 | 中文字幕在线视频精品 | 天天天天天天操 |