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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5524|回復: 0
打印 上一主題 下一主題
收起左側

單片機數碼管的靜態顯示程序(源代碼+Proteus)

[復制鏈接]
跳轉到指定樓層
樓主
玩了很久的動態掃描,有些感觸,對于單一的顯示而言,這和方法為首選。然而如果程序功能較多,占用資源較大,勢必造成顯示出現閃爍,不友好。這時候需要考慮用靜態顯示或液晶代替。這里給出一個簡單的靜態顯示方法,供參考。


單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>

  3. typedef unsigned int u16;
  4. typedef unsigned char u8;

  5. sbit shcp = P2^0;
  6. sbit ds   = P2^1;
  7. sbit stcp = P2^2;
  8. sbit start_key = P3^0;
  9. sbit record_key =  P3^1;

  10. //共陰極數碼管0-9,如果某位后面是小數點,則該位編碼 | 0x80,即可加上小數點
  11. u8 code seg_tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40};

  12. //定義用于暫存數字的數組
  13. u8 num_code[8];
  14. u16 num = 135,tmp;
  15. u8 i,j;

  16. void delay(u16 num)
  17. {
  18.         u16 x,y;
  19.         for(x=num; x>0; x--)for(y=113; y>0; y--){}
  20. }

  21. void int2code(u16 inum)
  22. {
  23.         u8 i=0, n;
  24.         u16 tmp = inum;

  25.         for(i=0; i<8; i++)
  26.         {
  27.                
  28.                 if(tmp>0)
  29.                 {        
  30.                         n = tmp % 10;
  31.                         tmp = (tmp-n) / 10;
  32.                         num_code[7-i] = seg_tab[n];
  33.                 }                                    
  34.         }
  35. }

  36. //LED顯示函數
  37. void display()
  38. {
  39.         u8 i,j,a;
  40.         for(j=0;j<3;j++)
  41.         {
  42.                 a =  num_code[7-j];
  43.                 for(i=0;i<8;i++)
  44.                 {
  45.                         ds=(a<<i)&0x80;
  46.                         shcp=0;
  47.                         _nop_();
  48.                         _nop_();
  49.                         shcp=1;
  50.                 }
  51.         }
  52.         stcp=0;
  53.         _nop_();
  54.         _nop_();
  55.         stcp=1;
  56. }

  57. void main(void)
  58. {
  59.         while(1)
  60.         {
  61.                 if(num!=tmp)
  62.                 {
  63.                         int2code(num);
  64.                         display();
  65.                         tmp = num;
  66.                 }

  67.                 if (start_key == 0)
  68.                 {
  69.                         delay(10);
  70.                         if (start_key == 0)
  71.                         {
  72.                                 num++;        
  73.                         }
  74.                         while(!start_key);
  75.                 }
  76.                 if (record_key == 0)
  77.                 {
  78.                         delay(10);
  79.                         if (record_key == 0)
  80.                         {
  81.                                 num--;        
  82.                         }
  83.                         while(!record_key);
  84.                 }
  85.         }
  86. }
復制代碼

全部資料51hei下載地址:
數碼管靜態顯示.rar (79.91 KB, 下載次數: 15)

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91丨九色丨国产在线 | 日本不卡一二三 | 欧美日韩久| 久久精品欧美电影 | 亚洲在线看 | 伊人一区 | 欧美精品欧美精品系列 | 亚洲一区二区三区久久久 | 性欧美精品一区二区三区在线播放 | 精品欧美一区二区三区久久久小说 | 91深夜福利视频 | 免费一区二区三区在线视频 | 亚洲国产精品精华素 | 国产激情在线 | 成人精品鲁一区一区二区 | 国产传媒| 在线三级电影 | 成人中文网 | 国产精品自产av一区二区三区 | 国产丝袜av| 国产精品福利视频 | www.欧美视频 | 天天操天天舔 | 一级日韩| 日本精品视频一区二区三区四区 | 麻豆av在线| 欧美人妇做爰xxxⅹ性高电影 | 日本天天操 | 一级欧美一级日韩片免费观看 | 91av在线影院 | 久久精品国产99国产 | 中文字幕在线精品 | 毛片一级片 | 日本成人二区 | 成人毛片网 | 人人射人人插 | 亚洲高清一区二区三区 | 黄色精品 | 在线区| 视频在线一区二区 | 国产毛片毛片 |