仿真原版本:proteus 7.8
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計編號:S0017
講解視頻
仿真講解+代碼講解
基于51單片機的反向計時倒計時秒表protues仿真設(shè)計
功能說明:
該設(shè)計為99-0秒反向計時的秒表,能夠通過數(shù)碼管或液晶顯示讀秒,該系統(tǒng)主要包括單片機最小系統(tǒng)、顯示單元、定時計數(shù)器設(shè)計。
系統(tǒng)要求啟動秒表后,從99開始計時,計到0秒停止,中途可以通過按鍵控制暫停/繼續(xù)讀秒,復(fù)位后能夠重新從99開始讀秒。
仿真電路
倒計時開始
倒計時到62秒
程序
主函數(shù)
主要完成定時器,外部中斷的初始化和循環(huán)顯示倒計時數(shù)值。
void main()
{
EA=1; //開總中斷
EX0=1;//外部中斷0
EX1=1;//外部中斷1
IT0=1;//設(shè)置下降沿觸發(fā)中斷0
IT1=1;//設(shè)置下降沿觸發(fā)中斷1
TMOD=0X01;//T0的工作模式為模式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;//12M晶振 定時器1定時50毫秒溢出初值
ET0=1; //允許定時器1中斷
TR0=1;//啟動定時器0
sec_cnt =0;
while(1)
{
led_sacn(); //數(shù)碼管顯示,時刻刷新
if(flag1s&&state) //一秒執(zhí)行一次
{
flag1s=0;
if(sec_cnt<99){
sec_cnt++; //秒數(shù)遞增
}
}
}
}
數(shù)碼管顯示
void led_sacn()
{
seg_disp(sec_cnt/10,0);//顯示W(wǎng)0控制的數(shù)碼管 時刻刷新
seg_disp(sec_cnt%10,1);//顯示W(wǎng)1控制的數(shù)碼管
}
void seg_disp(uchar number,uchar wei)//數(shù)碼管動態(tài)顯示程序 wei代表數(shù)碼管W0 W1 W2 W3的位選
{
P0=0XFF;//清零,防止重影
if(wei == 0){//顯示第一位
W0=0;
W1=1;
P0=seg_du[number];
delay_ms(2);
W0=1;
}
if(wei == 1){//顯示第二位
W0=1;
W1=0;
P0=seg_du[number];
delay_ms(2);
W1=1;
}
}
void delay_ms(ms) //延時 大概精度
{
uchar value=ms,i;
while(value--)
for(i=0;i<110;i++);
}
百度云下載鏈接
- 常見使用問題及解決方法–必讀?。。?!
- 源程序
- proteus仿真
- 功能說明
- 講解視頻
- 開題報告
Altium Designer 安裝破解
KEIL+proteus 單片機仿真設(shè)計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊
答辯技巧
設(shè)計報告常用描述
鼠標(biāo)雙擊打開嘉盛單片機51 STM32單片機課程畢業(yè)設(shè)計.url
----下載----