找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的60计时,文档中分别采用了两种书写方式实现计时,内有仿真加程序

[复制链接]
跳转到指定楼层
楼主
本帖最后由 476阿飞 于 2017-6-30 15:25 编辑

仿真:


部分程序:
        /*查询方式实现59S计时*/
/*#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,         0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳极0~F的段码
uchar data_I,data_H;                //计数值低,高位
uchar t,a;
void delay(uint k)                //延时约0.1ms
{
uint m,n;                for(m=0;m<k;m++)
for(n=0;n<120;n++);         }
void display(void)
{                 P2=0x01;                P0=tab[data_H];                delay(1);
P2=0x02;                P0=tab[data_L];                delay(1);         }
void Timer0(void)          //50ms定时
{                 if(TF0==1)                {                        t++;                        TH0=0x3c;
TL0=0xb0;                        TF0=0;                }         }
void data_tim(void)        //59s计时
{                 Timer0();                if(t==20)                {                        a++;                        t=0;                        if(a==60)                        a=0;                }         }
void data_in(void)         {                 data_L=a%10;                data_H=a/10;         }
void T0_init(void)                //T0初始化
{                 TMOD=0x01;                TH0=0x3c;                TL0=0xb0;                ET0=0;                        //不允许T0中断
TR0=1;                        //启动T0
EA=1;         }
void main(void)
{                 a=0;
T0_init();
while(1)
{                        data_tim();
data_in();
display();                }         }





59计时.rar

32.48 KB, 下载次数: 5, 下载积分: 黑币 -5

仿真和程序,适合初学者

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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