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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5044|回復: 0
收起左側

STC89C52單片機數碼管顯示00~99,間隔1S程序

[復制鏈接]
ID:692965 發表于 2020-11-13 13:16 | 顯示全部樓層 |閱讀模式
一、實驗思路
動態數碼管就是我們的單片機運行的太快,以至于我們的肉眼沒有辦法看到間隔,所以我們改一下數據,就可以了,有時候我們用的就是人的視覺暫留,我們在使用數碼管時,得知道是共陰還是共陽,在這里,我使用的是共陰的數碼管,使用的是12Mhz的晶振,如果我們使用的是11.0592MHz,
timg (1).jpg
這是我們數碼管的原理圖,數碼管其實就是發光二極管顯示,共陰,然后我們可以根據段碼計算出來的自己想要顯示的數字,這里有一些

timg.jpg

二、代碼原理
我們用定時器顯示,如果我們定時器定時2ms,那么2ms就中斷一次,而我們在中斷里面定義一個 數字,當達到500時,就是500×2ms=1S,然后使數據更新一邊,變成下一個數字,我們有倆個數組,一個是存放段碼的,另一個是存放實際值的,我們可以十位和各位分別顯示,存放到另一個數組里面,然后在經過138譯碼器顯示出來。
三 、實驗源碼


四、實驗現象

1605244234149.jpg

還有一點就是那個消隱,P0=0x00;的那個就是消隱,如果沒有消隱,顯示的數字則會很不清晰;
可能代碼還存在點問題,希望大家能夠批評指正!
單片機源程序如下:
  1. /*************************************
  2. 本人用的是普中的開發板,然后138和數碼管的連接圖會貼貼出來,
  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};//數碼管段碼,共陰極段碼
  14. u8 disbuff[2];//存放00~99的數組
  15. unsigned char t=0;//數值00~99
  16. /*****************************************************
  17. 函數名稱:void In0Init()
  18. 函數功能:定時器0初始化
  19. 輸入參數:無
  20. 輸出參數:無
  21. *****************************************************/
  22. void In0Init()
  23. {
  24.           TMOD = 0x01;                //開啟定時器0
  25.     TH0 = 0xF8;                        //賦初值
  26.     TL0 = 0x30;
  27.     EA = 1;                                        //開啟總中斷
  28.     ET0 = 1;                                //開啟定時器0的中斷
  29.     TR0 = 1;
  30. }
  31. /*****************************************************
  32. 函數名稱:void DigDisplay()
  33. 函數功能:數碼管顯示
  34. 輸入參數:無
  35. 輸出參數:無
  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;                                        //消隱,要不然會很模糊
  50.                 while(j--);
  51.                 P0=0x00;
  52.         }
  53. }
  54. /*****************************************************
  55. 函數名稱:void DealNumber()
  56. 函數功能:處理數字,拆分一位一位的顯示
  57. 輸入參數:無
  58. 輸出參數:無
  59. *****************************************************/
  60. void DealNumber()
  61. {
  62.         disbuff[0]=smgduan[t/10];//處理十位
  63.         disbuff[1]=smgduan[t%10];//處理各位
  64. }
  65. /*****************************************************
  66. 函數名稱:void main ()
  67. *****************************************************/
  68. void main ()
  69. {
  70.         In0Init();
  71. while(1)
  72. {
  73.         DealNumber();
  74.         DigDisplay();
  75. }
  76. }
  77. /*****************************************************
  78. 函數名稱:void Timer0Interrupt(void) interrupt 1
  79. 函數功能:中斷服務函數
  80. 輸入參數:無
  81. 輸出參數:無
  82. *****************************************************/
  83. void Timer0Interrupt(void) interrupt 1
  84. {unsigned int n;
  85.     TH0 = 0xF8; //重新賦初值
  86.     TL0 = 0x30;
  87.            n++;                                //當n==500時,則為1s
  88.           if(n==TIME)//TIME定義為500,用戶可以自己修改
  89.           {
  90.                         t++;                //實際的數值
  91.                         n=0;
  92.            }
  93.                 if(t==100)//如果t==99;然后重新顯示00
  94.                 {
  95.                 t=0;
  96.                 }
  97. }
復制代碼


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

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品69毛片高清亚洲 | 99视频在线 | 黄色毛片一级 | 亚洲午夜视频在线观看 | 污免费网站 | 超碰成人免费 | 精品欧美一区二区三区久久久 | 欧美激情在线一区二区三区 | 国产高清在线精品 | 91视频免费 | 亚洲aⅴ一区二区 | 在线欧美小视频 | 成人国产精品久久久 | 亚洲精品在线观 | 精品视频久久久 | 日韩视频在线播放 | 最新国产视频 | 国产精品精品久久久 | 中文字幕在线看第二 | 亚州精品天堂中文字幕 | 这里只有精品999 | 凹凸日日摸日日碰夜夜 | 毛片一区二区三区 | 日韩在线不卡视频 | 激情麻豆视频 | 日韩久久精品视频 | 精品久久久久久中文字幕 | 欧美a v在线 | av电影一区二区 | 成人一区二区三区视频 | 国产乱码精品1区2区3区 | 久久99视频免费观看 | 日本涩涩视频 | 国产福利91精品一区二区三区 | 色婷婷久久久久swag精品 | 精品久久久久久 | 中文字幕国产一区 | 欧美五月婷婷 | 99久久久久 | 欧美日韩综合视频 | 精品国产91乱码一区二区三区 |