找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1603|回复: 0
收起左侧

通过单片机定时器实现99s精确计时程序Proteus仿真图

[复制链接]
ID:1052694 发表于 2022-11-18 20:13 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
3.png

单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uint i;
  5. char ctime=0;
  6. uchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  7. void main()
  8. {
  9.   TMOD=0X01; //设定定时器为工作方式1
  10.   TH0=(65536-45872)/256; //装初值,11.0592 MHZ晶振定时50MS,计数值为45872
  11.   TL0=(65536-45872)%256;
  12.   EA=1;   //打开总中断
  13.   ET0=1;  //打开定时器中断
  14.   TR0=1;  //启动定时器0
  15.   while(1)
  16.   {
  17.    P0=led[ctime/10];
  18.    P2=led[ctime%10];
  19.   
  20.   }

  21. }


  22.    void time() interrupt 1  //定时器0中断服务程序
  23. {
  24.   TH0=(65536-45872)/256;   //重装初值
  25.   TL0=(65536-45872)%256;   
  26.   i++;
  27.   if(i==20)                //如果i=20,说明1s时间到
  28.   {
  29.    i=0;
  30.   
  31.    ctime++;
  32.    if(ctime>99)
  33.    {
  34.     ctime=0;
  35.   }
  36. }  
  37. }
复制代码

Keil代码与Proteus仿真下载: 仿真程序.7z (59.46 KB, 下载次数: 21)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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