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

標題: 單片機驅動的數碼管顯示異常,有亂碼 [打印本頁]

作者: 恐懼古兔子    時間: 2018-6-13 14:40
標題: 單片機驅動的數碼管顯示異常,有亂碼


同樣的數字,四位數碼管正常,二位數碼管有亂碼,同時,顯示的數字順序與實際要顯示的數字順序不符合,單片機代碼如下:

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. uchar code table1[]={50,3,25};
  6. uchar code table2[]={55,20,3};
  7. uchar a=50,b=55,n=0,m=0;
  8. uchar j,k,c3,c2,c1,c0;
  9. uchar pp;

  10. void delay(unsigned int i)
  11. {
  12.         int j;
  13.         for(i;i>0;i--)
  14.                 for(j=20;j>0;j--);
  15. }

  16. void display(uchar x,uchar y,uchar o,uchar p)
  17. {
  18.         P2=0x01;
  19.         P0=table[p];
  20.         delay(10);
  21.       
  22.         P2=0x04;
  23.         P0=table[o];
  24.         delay(10);

  25.         P2=0x08;
  26.         P0=table[y];
  27.         delay(10);

  28.         P2=0x02;
  29.         P0=table[x];
  30.         delay(10);
  31. }

  32. void main()
  33. {
  34.         TMOD=0x01;                                                  
  35.         TH0=(65536-46080)/256;
  36.         TL0=(65536-46080)%256;
  37.         ET0=1;                        
  38.         EA=1;
  39.         TR0=1;                       
  40.         while(1)
  41.         {
  42.                 if(TF0==1)                       
  43.                 {
  44.                         TF0=0;
  45.                         pp++;
  46.                         TH0=(65536-46080)/256;
  47.                         TL0=(65536-46080)%256;
  48.                 }
  49.                 if(pp==20)
  50.                 {      
  51.                         pp=0;
  52.                         a--;
  53.                         b--;
  54.                         if(a==0)
  55.                         {
  56.                                 n++;
  57.                                 a=table1[n];                              
  58.                                 if(n==2)
  59.                                 {
  60.                                         n=-1;
  61.                                 }         
  62.                         }
  63.                         if(b==0)
  64.                         {                                                                       
  65.                                 m++;
  66.                                 b=table2[m];                       
  67.                                 if(m==2)
  68.                                 {
  69.                                         m=-1;
  70.                                 }
  71.                         }
  72.                 }
  73.                 c0=a%10;                 
  74.                 c1=a/10;
  75.                 c2=b%10;
  76.                 c3=b/10;
  77.                 display(c1,c0,c2,c3);
  78.         }
  79. }
復制代碼






作者: wc86110    時間: 2018-6-13 22:25
選用不同類型的數碼管顯示出現亂碼也正常,就算用相同的數碼管顯示相同內容,有時軟件也可能出現一些小異常
作者: 似曾相識的味道    時間: 2018-6-14 01:49
顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。
作者: 1402187883    時間: 2018-6-14 09:14
顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。
作者: ctzs102    時間: 2018-6-14 09:43
顯示下一組數字前,先把之前的數字清了。亂碼這個現象就是視覺暫存
作者: zhb2004xp    時間: 2018-6-14 10:11
樓主的程序寫的天馬行空,排序有點亂,我倒是擼了半天,82行為什么是“c1,c0,c2,c3”,而不是大家習慣的C0,C1,C2,C3 ?數碼管顯示的排序也是01H,04H,08H最后是02H,最后在4位的數碼管上顯示順序應該是b的十位,a的十位,b的個位,a的個位,不知道這個是不是你想要的顯示結果?兩個兩位數碼管分別顯示b的十位,a的十位和b的個位,a的個位;
至于為什么顯示亂碼,可能是P0口電流過大的原因,建議樓主在P0口和數碼管位選中間也加上一個74HC593試試;
再問問樓主,為啥不寫中斷服務程序,而習慣用TF0的查詢法
作者: 恐懼古兔子    時間: 2018-6-15 08:59
zhb2004xp 發表于 2018-6-14 10:11
樓主的程序寫的天馬行空,排序有點亂,我倒是擼了半天,82行為什么是“c1,c0,c2,c3”,而不是大家習慣的C0, ...

初學者,正在努力,我想顯示的其實是兩個倒計時,順序應該是a的十位,a的個位,b的十位,b的個位,上面的二位數碼管a倒計時,下面那個b倒計時,圖中四位數碼管是正確的顯示順序,倒計時也是對的,但是如果程序按照我想的順序寫,結果順序就是亂的,只有按上面代碼里的這個錯誤的順序,四位數碼管才有正確的順序。另外,我也試過加消影,就是在延時后加P0=0x00,或者P0=0xff,但是加前者,數碼管只顯示8和9,加后者只顯示”9“左下角缺的一節,而如果加P2=0x00,就什么都不顯示了。實在想不明白,所以請求各路大神幫幫忙。
作者: 十尾丶    時間: 2018-6-15 09:50

顯示的時候還原下引腳原來狀態,俗稱清屏。就好了。也就是在賦值端口顯示后全部口置1.然后再顯示下一位數。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产91丝袜在线18 | 国产精品99久久久精品免费观看 | 久久精品国产久精国产 | 亚洲一区二区精品视频 | 影音先锋中文字幕在线观看 | 99久久婷婷国产综合精品首页 | 精品国产一区二区国模嫣然 | 日日摸夜夜爽人人添av | 欧美在线激情 | av一二三四 | 中文字幕久久久 | www日本在线播放 | 国产欧美精品 | 91精品国产欧美一区二区成人 | 久久久网 | 一级欧美黄色片 | 中文字幕免费在线 | 国产一区二区三区四区五区加勒比 | 自拍在线| 日本久久一区二区三区 | 欧美高清视频一区 | 老熟女毛片 | 国产免费av在线 | 国产精品毛片一区二区在线看 | 国产精品国产三级国产aⅴ无密码 | 久久久久久国产精品免费免费狐狸 | 日本粉嫩一区二区三区视频 | 欧美性影院 | 81精品国产乱码久久久久久 | 午夜色婷婷| 特黄一级 | 久久电影一区 | 国产成人综合在线 | 久久国产精品一区二区三区 | 天天干天天操 | 欧美成人免费在线视频 | 一区二区三区 在线 | 天天人人精品 | 女女爱爱视频 | 久久久久精 | 成人在线观看黄 |