|
制作一个简单的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)
|
|