|
制作一個簡單的51單片機定時器T0倒計時24秒
剛學習單片機,如果有不對的地方多多指出
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #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() //主函數
- {
- P0=seg[2]; //數碼管初始值24
- P3=seg[4];
- TMOD=0X01;
- TH0=(65536-50000)/256; //裝載T1的初值 50ms
- TL0=(65536-50000)%256;
- EA=1; //CPU開中斷
- ET0=1; //計數中斷允許位為1
- TR0=1; //打開計數器
- while(1) //控制顯示
- {
- if(second==0)second=24;
- P0=seg[second/10];
- P3=seg[second%10];
- }
- }
- /******外部中斷服務子程序******/
- //本函數無任何參數傳遞,且不能被程序所調用
- void int_n() interrupt 1
- {
- TH0=(65536-50000)/256; //裝載T1的初值 50ms
- TL0=(65536-50000)%256;
- numtim++;
- if(numtim==20)
- {numtim=0;
- second--; }
- }
復制代碼
定時器.7z
(19.38 KB, 下載次數: 27)
2020-4-28 12:26 上傳
點擊文件名下載附件
|
|