AT89c51单片机程序控制两个数码管显示00-59秒表的程序要怎么编啊?

如题所述

第1个回答  2019-12-05
display(second)子函数与两个数码管的连接方式有关
void main(void )//主程序
{
TMOD=0x01;// 定时器1工作方式一
ET0=1;
EA=1;
TH0=(65536-10000)/256;//定时10ms
TL0=(65536-10000)%256;
TR0=0;//上电先不启动
while(1)
{
if(key1==0)//判断按键是否按下
{
Delay1ms(10);//延时消抖
if(key1==0)
{
while(key1==0);//等待按键抬起
TR0=!TR0;//启动或停止
}
}
if(key2==0&&TR0==0)//判断按键是否按下及是否在走时
{
Delay1ms(10);//延时消抖
if(key2==0)
{
while(key2==0);//等待按键抬起
a=0; second=0;
}
}
display(second);
}

}
//中断子程序
void Timer0(void) interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
a++;
if(a==100 ) second++;
if(second==60) second=0;
}本回答被提问者采纳
第2个回答  2019-12-05
个话剧鸡防御塔唉唉唉唉唉呀呵呵二子宫口水三国志

AT89c51单片机程序控制两个数码管显示00-59秒表的程序要怎么编啊?
if(key2==0&&TR0==0)\/\/判断按键是否按下及是否在走时 { Delay1ms(10);\/\/延时消抖 if(key2==0){ while(key2==0);\/\/等待按键抬起 a=0; second=0;} } display(second);} } \/\/中断子程序 void Timer0(void) interrupt 1 { TH0=(65536-10000)\/256;TL0=(65536-10000)%256;a++;...

单片机c51考试基础部分:要求用两个数码管动态显示两位十进制数00~59...
sbit seg2 = P2^1;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f, 0x6f};\/\/共阴极数码管 unsigned char time1,time2,time;unsigned char count;bit flag;void Timer0_Init(){ TMOD=0x01;TH0=(256*256-5000)\/256;TL0=(256*256-5000)%256;ET...

单片机用C语言写两个数码管显示0到59循环的程序在归0
sbit wei=P3^0;sbit led1=P3^2;sbit led2=P3^3;char tt =0;char i=0;unsigned char code led_zx[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};void mdelay(unsigned int delaytime){ int c;for(;delaytime!=0;delaytime--)for(c=0;c!=124;c++);} voi...

...请编写程序,使前两个数码管实现00到59的秒表功能,希望大神用汇编和中...
请设计一个2位静态数码管从00到59显示的程序 include <reg51.h> unsigned char show[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};int n, j;qc()interrupt 1 using 3 {TH0=(65336-10000)\/256;TL0=(65336-10000)%256;n++;if (n>=100){n=0;j++;if (j>=60)j=...

89c51单片机的数字钟程序?
ILONG编做 【注意P3口输出模拟和在{实验板}上不一样。实验板不用取反】 【目的】:用20次T0定时产生1s.进而形成 HH-mm-ss时间 【参数说明】: 40H~47H :显示管,每位暂存器,存放要显示的数码的地址。可根据地址加1,实现该位数加1; 并且低4位可以代表管子要显示的值(42H、45H除外)。 48H :要显示的位...

求一个用汇编语言编写一个8051单片机的时钟程序(急急急啊)
STACK_SEG SEGMENT IDATA K1 BIT P1.4 K2 BIT P1.5 RSEG DATA_SEG KEY_S: DS 1 KEY_V: DS 1 DIS_DIGIT: DS 1 SEC: DS 1 DIS_INDEX: DS 1 HOUR: DS 1 MIN: DS 1 SEC100: DS 1 DIS_BUF: DS 8 BUF_HOUR_H EQU DIS...

1、 基于AT89C51单片机,利用定时器设计一个两位数码管显示电路。 设计...
这个我仿真过了 是有用的,,,是从00开始显示 到了99会从新开始从00开始加 #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code bit_tab[]={0xfe,0xfd}; uchar disp_buf[2]; uc...

用51单片机设计一个秒表,计时范围从00:00-59:59.
4];void dischg(){disdat[3]=sec%10;disdat[2]=sec\/10;disdat[1]=min%10;disdat[0]=min\/10;}void ext0() interrupt 0{key++;key%=3;}void t0isr() interrupt 1\/\/秒计时{TH0=0x3c;TL0=0xb0;time++;if(time==20){time=0;sec++;if(sec>59){sec=0;min++;if(min>59)...

用C语言编写AT89C51单片机程序,设计一个智能数字钟。
这是我的课程设计,6个数码管,显示时分秒,三个按钮P0.0、P0.1、P0.2可以调时,有8个彩灯(可以不要),没闹钟、倒计时之类的。呵呵。include<AT89X52.H> define uchar unsigned char int i;\/\/***时钟的 uchar one[10]={0xbf,0xb0,0xdb,0xcf,0xe6,0xed,0xfd,0x07,0xff,0xef}...

求用C语言编写一个单片机89C51电子时钟程序,有时,分,秒,还有电路图_百 ...
void Auto_Set1302(uchar *pClock) { uchar h; uchar ucAddr = 0x80; if(((R1302(0x81))&0x80)==0x80) { W1302(0x8e,0x00); \/* 控制命令,WP=0,写操作?*\/ for(h =7; h>0; h--) { W1302(ucAddr,*pClock); \/* 秒 分 时 日 月 星期 年 *\/...

相似回答