|
制作一個(gè)簡單的51單片機(jī)定時(shí)器T0倒計(jì)時(shí)24秒
剛學(xué)習(xí)單片機(jī),如果有不對(duì)的地方多多指出
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖20200428122200.png (5.11 KB, 下載次數(shù): 68)
下載附件
2020-4-28 12:25 上傳
單片機(jī)源程序如下:
- #include<reg51.h>
- unsigned char code seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示0-9的值 共陽極 低電平有效
- #define SEG1 P0
- #define SEG2 P3
- unsigned int second=24;
- unsigned int numtim=0;
- int main() //主函數(shù)
- {
- P0=seg[2]; //數(shù)碼管初始值24
- P3=seg[4];
- TMOD=0X01;
- TH0=(65536-50000)/256; //裝載T1的初值 50ms
- TL0=(65536-50000)%256;
- EA=1; //CPU開中斷
- ET0=1; //計(jì)數(shù)中斷允許位為1
- TR0=1; //打開計(jì)數(shù)器
- while(1) //控制顯示
- {
- if(second==0)second=24;
- P0=seg[second/10];
- P3=seg[second%10];
- }
- }
- /******外部中斷服務(wù)子程序******/
- //本函數(shù)無任何參數(shù)傳遞,且不能被程序所調(diào)用
- void int_n() interrupt 1
- {
- TH0=(65536-50000)/256; //裝載T1的初值 50ms
- TL0=(65536-50000)%256;
- numtim++;
- if(numtim==20)
- {numtim=0;
- second--; }
- }
復(fù)制代碼
定時(shí)器.7z
(19.38 KB, 下載次數(shù): 27)
2020-4-28 12:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|