国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

基于51單片機的數碼管30秒倒計時proteus仿真+C語言代碼

[復制鏈接]
樓主
coolfire 發表于 2021-4-17 01:25:35 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式
數碼管為二位共陽數碼管,我對引腳的排列方式和一般的有些不同,目的是在PCB上的頂層線更少。另外還算了一下這種接法的段碼,在代碼里大家可以看下
仿真文件和c源碼 30秒倒計時.zip (67.42 KB, 售價: 2 E幣)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
基于51單片機的數碼管30秒倒計時proteus仿真+C語言代碼 1.png
單片機源程序如下:
  1. #include <reg51.h>
  2. unsigned char count=0;
  3. sbit LED_B1=P3^6;
  4. sbit LED_A1=P3^7;
  5. unsigned char NSF=30;
  6. void Init(void)
  7. {
  8.         TMOD=0x01;
  9.         TH0=(65536-10000)/256;
  10.         TL0=(65536-10000)%256;
  11.         TR0=1;
  12.         ET0=1;
  13. EA=1;
  14. }

  15. void timer0(void) interrupt 1
  16. {   
  17.         TMOD=0x01;
  18.         TH0=(65536-50000)/256;
  19.         TL0=(65536-50000)%256;
  20.         TR0=1;
  21.         ET0=1;
  22.         EA=1;
  23.            count++;
  24.         if(count>19)
  25.         {
  26.             count=0;
  27.          NSF--;      
  28.          }      
  29. }
  30.       
  31. void delayms(unsigned int xms)
  32.         {
  33.                 unsigned int i,j;
  34.                 for(i=xms;i>0;i--)
  35.                         for(j=110;j>0;j--);}
  36. unsigned char table[]={0x3,0xcf,0x2a,0x4a,0xc6,0x52,0x12,0xcb,0x2,0x42};
  37. void display1(unsigned char num1,unsigned char num2)   
  38. {               
  39.                 LED_A1=1;
  40.                 P0=table[num1];
  41.                
  42.                 delayms(10);
  43.                 LED_A1=0;
  44.                
  45.                 LED_B1=1;  
  46.                 P0=table[num2];
  47.                
  48.                 delayms(10);
  49.                 LED_B1=0;  
  50. }
  51. void main()
  52. {  
  53.         while(1)
  54.         {
  55.           EA=1;
  56.     Init();
  57.     while(NSF!=0)
  58.    {
  59.    display1(NSF/10,NSF%10);
  60.    delayms(10);
  61.    }
  62.          while(NSF==0)
  63.          {
  64.             NSF=30;
  65.                  display1(NSF/10,NSF%10);
  66.    delayms(10);
  67.          }

  68.   }
  69. }
復制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

手機版|小黑屋|ELEOK |網站地圖

GMT+8, 2026-5-26 02:59

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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