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

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

QQ登錄

只需一步,快速開始

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

STC89C52單片機(jī)數(shù)碼管顯示00~99,間隔1S程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:692965 發(fā)表于 2020-11-13 13:16 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
一、實(shí)驗(yàn)思路
動(dòng)態(tài)數(shù)碼管就是我們的單片機(jī)運(yùn)行的太快,以至于我們的肉眼沒有辦法看到間隔,所以我們改一下數(shù)據(jù),就可以了,有時(shí)候我們用的就是人的視覺暫留,我們?cè)谑褂脭?shù)碼管時(shí),得知道是共陰還是共陽,在這里,我使用的是共陰的數(shù)碼管,使用的是12Mhz的晶振,如果我們使用的是11.0592MHz,

這是我們數(shù)碼管的原理圖,數(shù)碼管其實(shí)就是發(fā)光二極管顯示,共陰,然后我們可以根據(jù)段碼計(jì)算出來的自己想要顯示的數(shù)字,這里有一些



二、代碼原理
我們用定時(shí)器顯示,如果我們定時(shí)器定時(shí)2ms,那么2ms就中斷一次,而我們?cè)谥袛嗬锩娑x一個(gè) 數(shù)字,當(dāng)達(dá)到500時(shí),就是500×2ms=1S,然后使數(shù)據(jù)更新一邊,變成下一個(gè)數(shù)字,我們有倆個(gè)數(shù)組,一個(gè)是存放段碼的,另一個(gè)是存放實(shí)際值的,我們可以十位和各位分別顯示,存放到另一個(gè)數(shù)組里面,然后在經(jīng)過138譯碼器顯示出來。
三 、實(shí)驗(yàn)源碼


四、實(shí)驗(yàn)現(xiàn)象



還有一點(diǎn)就是那個(gè)消隱,P0=0x00;的那個(gè)就是消隱,如果沒有消隱,顯示的數(shù)字則會(huì)很不清晰;
可能代碼還存在點(diǎn)問題,希望大家能夠批評(píng)指正!
單片機(jī)源程序如下:
  1. /*************************************
  2. 本人用的是普中的開發(fā)板,然后138和數(shù)碼管的連接圖會(huì)貼貼出來,
  3. 芯片是stc89c52 ,晶振是12MHz,僅供交流使用
  4. *************************************/
  5. #include <reg52.h>
  6. typedef unsigned char u8;
  7. typedef unsigned int u16;
  8. #define TIME 500
  9. sbit LSA=P2^2;  //引腳的定義
  10. sbit LSB=P2^3;
  11. sbit LSC=P2^4;
  12. u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  13.                                         0x7f,0x6f};//數(shù)碼管段碼,共陰極段碼
  14. u8 disbuff[2];//存放00~99的數(shù)組
  15. unsigned char t=0;//數(shù)值00~99
  16. /*****************************************************
  17. 函數(shù)名稱:void In0Init()
  18. 函數(shù)功能:定時(shí)器0初始化
  19. 輸入?yún)?shù):無
  20. 輸出參數(shù):無
  21. *****************************************************/
  22. void In0Init()
  23. {
  24.           TMOD = 0x01;                //開啟定時(shí)器0
  25.     TH0 = 0xF8;                        //賦初值
  26.     TL0 = 0x30;
  27.     EA = 1;                                        //開啟總中斷
  28.     ET0 = 1;                                //開啟定時(shí)器0的中斷
  29.     TR0 = 1;
  30. }
  31. /*****************************************************
  32. 函數(shù)名稱:void DigDisplay()
  33. 函數(shù)功能:數(shù)碼管顯示
  34. 輸入?yún)?shù):無
  35. 輸出參數(shù):無
  36. *****************************************************/
  37. void DigDisplay()
  38. {
  39. u8 i,j;
  40. for (i=0;i<2;i++)
  41.         {
  42.         switch(i)//位選,選擇哪一位亮
  43.                 {
  44.                 case(0): LSA=1;LSB=1;LSC=1;break;
  45.                 case(1): LSA=0;LSB=1;LSC=1;break;
  46.                
  47.                 }
  48.            P0=disbuff[i];
  49.                 j=10;                                        //消隱,要不然會(huì)很模糊
  50.                 while(j--);
  51.                 P0=0x00;
  52.         }
  53. }
  54. /*****************************************************
  55. 函數(shù)名稱:void DealNumber()
  56. 函數(shù)功能:處理數(shù)字,拆分一位一位的顯示
  57. 輸入?yún)?shù):無
  58. 輸出參數(shù):無
  59. *****************************************************/
  60. void DealNumber()
  61. {
  62.         disbuff[0]=smgduan[t/10];//處理十位
  63.         disbuff[1]=smgduan[t%10];//處理各位
  64. }
  65. /*****************************************************
  66. 函數(shù)名稱:void main ()
  67. *****************************************************/
  68. void main ()
  69. {
  70.         In0Init();
  71. while(1)
  72. {
  73.         DealNumber();
  74.         DigDisplay();
  75. }
  76. }
  77. /*****************************************************
  78. 函數(shù)名稱:void Timer0Interrupt(void) interrupt 1
  79. 函數(shù)功能:中斷服務(wù)函數(shù)
  80. 輸入?yún)?shù):無
  81. 輸出參數(shù):無
  82. *****************************************************/
  83. void Timer0Interrupt(void) interrupt 1
  84. {unsigned int n;
  85.     TH0 = 0xF8; //重新賦初值
  86.     TL0 = 0x30;
  87.            n++;                                //當(dāng)n==500時(shí),則為1s
  88.           if(n==TIME)//TIME定義為500,用戶可以自己修改
  89.           {
  90.                         t++;                //實(shí)際的數(shù)值
  91.                         n=0;
  92.            }
  93.                 if(t==100)//如果t==99;然后重新顯示00
  94.                 {
  95.                 t=0;
  96.                 }
  97. }
復(fù)制代碼


全部資料51hei下載地址:
顯示00~99.7z (1.5 MB, 下載次數(shù): 16)

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产综合久久国产大片 | 狠狠综合久久av一区二区小说 | 精品一区二区三区四区 | 色综合色综合色综合 | 免费观看a级毛片在线播放 黄网站免费入口 | 国产精品一区二区免费 | 日韩欧美精品在线播放 | 亚洲精品一区二区三区四区高清 | 久久久久久久久久久久91 | 国产精品永久在线观看 | 一区二区三区视频在线 | 日韩一区二区av | 午夜影院在线观看免费 | 日韩av一区二区在线观看 | 99在线免费观看视频 | 一二三区在线 | 欧美日韩在线视频一区二区 | 欧美一级淫片免费视频黄 | 欧美一区二区三区在线看 | 国产精品久久久久久久久免费樱桃 | 国产真实乱全部视频 | 久久精品天堂 | 国产亚洲精品一区二区三区 | 97综合在线 | 亚洲三区在线观看 | 久久综合99 | 久久久美女 | 国产激情免费视频 | 色综合久| 北条麻妃99精品青青久久主播 | 日韩三级在线观看 | 国产xxxx搡xxxxx搡麻豆 | 特黄毛片 | 午夜一区 | 欧美性网站| 久久久久久国产精品 | 99免费在线观看视频 | 夜夜爽夜夜操 | 成人在线一区二区三区 | av中文在线 | 日日日日日日bbbbb视频 |