标题: 单片机定时器T0 倒计时24秒 [打印本页]

作者: accelerate    时间: 2020-4-28 12:29
标题: 单片机定时器T0 倒计时24秒
制作一个简单的51单片机定时器T0倒计时24秒
刚学习单片机,如果有不对的地方多多指出
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. unsigned char code seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  //显示0-9的值 共阳极 低电平有效
  3. #define SEG1 P0
  4. #define SEG2 P3
  5. unsigned int second=24;
  6. unsigned int numtim=0;
  7. int main()  //主函数
  8. {
  9.         P0=seg[2];  //数码管初始值24
  10.         P3=seg[4];
  11.         TMOD=0X01;  
  12.         TH0=(65536-50000)/256;  //装载T1的初值 50ms
  13.         TL0=(65536-50000)%256;
  14.         EA=1;  //CPU开中断
  15.         ET0=1;  //计数中断允许位为1  
  16.         TR0=1;  //打开计数器
  17.         while(1)  //控制显示
  18.         {        
  19.                 if(second==0)second=24;
  20.                 P0=seg[second/10];
  21.                 P3=seg[second%10];
  22.     }

  23. }
  24. /******外部中断服务子程序******/
  25. //本函数无任何参数传递,且不能被程序所调用
  26. void int_n() interrupt 1
  27. {
  28.     TH0=(65536-50000)/256;  //装载T1的初值 50ms
  29.         TL0=(65536-50000)%256;
  30.     numtim++;
  31.         if(numtim==20)
  32.         {numtim=0;
  33.         second--; }

  34. }
复制代码
定时器.7z (19.38 KB, 下载次数: 27)





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1