找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2989|回复: 0
打印 上一主题 下一主题
收起左侧

单片机定时器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)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表