国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
基于51單片機的數碼管30秒倒計時proteus仿真+C語言代碼
[打印本頁]
作者:
coolfire
時間:
2021-4-17 01:25
標題:
基于51單片機的數碼管30秒倒計時proteus仿真+C語言代碼
數碼管為二位共陽數碼管,我對引腳的排列方式和一般的有些不同,目的是在PCB上的頂層線更少。另外還算了一下這種接法的段碼,在代碼里大家可以看下
仿真文件和c源碼
:
30秒倒計時.zip
(67.42 KB, 售價: 2 E幣)
2021-4-17 01:24 上傳
點擊文件名下載附件
售價: 2 E幣
[記錄]
[
購買
]
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png
(42.78 KB)
下載附件
2021-4-17 01:22 上傳
單片機源程序如下:
#include <reg51.h>
unsigned char count=0;
sbit LED_B1=P3^6;
sbit LED_A1=P3^7;
unsigned char NSF=30;
void Init(void)
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
ET0=1;
EA=1;
}
void timer0(void) interrupt 1
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
count++;
if(count>19)
{
count=0;
NSF--;
}
}
void delayms(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);}
unsigned char table[]={0x3,0xcf,0x2a,0x4a,0xc6,0x52,0x12,0xcb,0x2,0x42};
void display1(unsigned char num1,unsigned char num2)
{
LED_A1=1;
P0=table[num1];
delayms(10);
LED_A1=0;
LED_B1=1;
P0=table[num2];
delayms(10);
LED_B1=0;
}
void main()
{
while(1)
{
EA=1;
Init();
while(NSF!=0)
{
display1(NSF/10,NSF%10);
delayms(10);
}
while(NSF==0)
{
NSF=30;
display1(NSF/10,NSF%10);
delayms(10);
}
}
}
復制代碼
歡迎光臨 ELEOK (http://www.afoofa.cn/)
Powered by Discuz! X5.0