欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9752|回復: 2
收起左側

單片機數碼管顯示0~99(共陽極)源程序

[復制鏈接]
ID:356227 發表于 2018-8-29 01:02 | 顯示全部樓層 |閱讀模式
單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. //變量unm為要顯示的數,變量time為定時器計數變量、
  5. uint num=0,time=0;num1=0;
  6. //共陽極數碼管字段碼
  7. uchar code a[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
  8. //位選碼
  9. uchar code b[4]={0Xfe,0Xfd,0xfb,0xf7};
  10. //延時函數
  11. void delay(uint x)
  12. {
  13.     uint y;
  14.         for(;x>0;x--)
  15.             for(y=500;y>0;y--);
  16.                                                                   
  17. }
  18. //定時器T0初始化函數
  19. void initT0()
  20. {
  21.       TMOD=0x01;                             //定時器T0工作方式一,工作在定時模式
  22.           TH0=(65536-50000)/256;                 //給定時器T0的高八位賦初值
  23.           TL0=(65536-50000)%256;                 //給定時器T0的低八位賦初值
  24.           EA=1;                                  //開關中斷
  25.           ET0=1;                                 //定時器T0中斷允許
  26.           TR0=1;                                 //啟動定時器T0
  27. }
  28. //主函數
  29. void main()
  30. {
  31.     initT0();
  32.                 while(1)
  33.         {       
  34.                 while(time<20)                            //由于是兩位數碼管,因而采用動態顯示方式
  35.                 {       
  36.                 P1=b[0];                            //送位選碼
  37.                 P0=a[num%10];                       //送字段碼
  38.                 delay(1);                           //延時
  39.                 P1=b[1];
  40.                 P0=a[num/10];
  41.                 delay(1);

  42.                 P1=b[2];                            //送位選碼
  43.                 P0=a[num1%10];                       //送字段碼
  44.                 delay(1);                           //延時
  45.                 P1=b[3];
  46.                 P0=a[num1/10];
  47.                 delay(1);
  48.                 }

  49.                 num++;num1++;time=0;
  50.                
  51.                 if(num==99)num=0;
  52.                 if(num1==99)num1=0;       
  53.         }
  54. }
  55. //定時器T0中斷服務函數
  56. void T0int()interrupt 1
  57. {
  58.    TH0=(65536-50000)/256;                 //給定時器T0的高八位賦初值
  59.    TL0=(65536-50000)%256;                 //給定時器T0的低八位賦初值
  60.    time++;
  61. }
復制代碼

所有資料51hei提供下載:
數碼管顯示0-99(共陽極).rar (22.73 KB, 下載次數: 21)


回復

使用道具 舉報

ID:1 發表于 2018-8-29 03:24 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:613308 發表于 2019-9-18 21:35 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表