这个我仿真过了 是有用的,,,是从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];
uchar shu;
uchar count;
void delay(uchar x)
{
uchar i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void conv(uchar flag)
{
disp_buf[0]=flag/10;
disp_buf[1]=flag%10;
}
void display()
{
uchar tem,wei;
P2=bit_tab[wei];
tem=disp_buf[wei];
P0=disp[tem];
wei++;
if(wei==2)
wei=0;
}
void time0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++count==40)
{
count=0;
shu++;
if(shu==99)
shu=0;
}
}
void time1(void) interrupt 3
{
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
display();
}
void init()
{
TMOD=0x11;
EA=1;
ET0=1;
ET1=1;
TR1=1;
TR0=1;
}
main()
{
init();
while(1)
{
conv(shu);
}
}
1、 基于AT89C51单片机,利用定时器设计一个两位数码管显示电路...
void time1(void) interrupt 3 { TH1=(65536-5000)\/256; TL1=(65536-5000)%256; display(); } void init() { TMOD=0x11; EA=1; ET0=1; ET1=1; TR1=1; TR0=1; } main() { init(); while(1) { conv(shu); } } 本回答由提问者推荐 举报| 答案纠错 | 评论(4) 1 0 yying0907 ...
单片机秒表设计
用AT89C51设计一个2位的LED数码显示作为“秒表”,这应该是一个仿真题,可用两位一体的共阴数码管,用定时器T0定时,得到1秒计时。
名称:基于AT89C51的信号发生器设计
你这个频率范围用单片机和DAC是做不到的,500Khz那反映时间就2us,单片机周期是1us 也就是一个周期只能有两个点,怎么可能会有好的波形呢
求一个基于AT89C51单片机的数字时钟程序,显示时、分、秒不要求闹钟!就...
TMOD = 0x11;\/\/ 定时器0, 1工作模式1, 16位定时方式 TH1 = 0xdc;TL1 = 0;TH0 = 0xFC;TL0 = 0x17;hour = 12;min = 00;sec = 00;sec100 = 0;dis_buf[0] = dis_code[hour \/ 10];\/\/ 时十位 dis_buf[1] = dis_code[hour % 10];\/\/ 时个位 dis_buf[3] = dis_code...
基于AT89C51的电饭煲控制系统设计
本设计主要由硬件电路设计和软件编程两大部分来实现, 以AT89C51单片机为核心,配备显示模块、定时信息等, 能通过数码管进行显示计时。备有按键,以便人工定时与修改当前时间。用户可以通过按键修改时间,以便达到用户所要实现的功能。软件采用汇编语言程序设计实现程序控制和定点时间显示。由于本系统采用了数码管...
AT89C51单片机设计独立按键,静态数码管电路,并编程实现按下Ki键,数码...
一位共阳数码管接在P0口,为静态显示。P3口接有8个独立式按键,按键为K1~K8,按键8个按键中的任意一个,数码管则显示出按键编号。仿真图如下,这是按下K6时显示6。
采用AT89C51单片机设计一只电子秒表,倒计时(60~1每间隔1秒倒数)?_百 ...
硬件电路 有2位数码管可以显示秒表的时间 0~10秒 有3个按键 K1为开始计时 K2为停止计时 K3为清零 软件设计:K1按下则启动定时器定时 每到1秒 显示器缓冲单元内容加1 K2按下则停止定时器定时 K3按下则将显示器缓冲单元内容清零。
用AT89C51单片机控制两位8段LED数码管采用动态显示的方式显示29
void t0isr() interrupt 1 { TH0=(65536-5000)\/256;TL0=(65536-5000)%256;number++;if(number>1)number=0;switch(number){ case 0:P2=0x02;P0=distab[2];break;case 1:P2=0x01;P0=distab[9];break;default:break;} } main(){ TMOD=0x01;TH0=(65536-5000)\/256;TL0=(65536-5000...
用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}...
利用单片机AT89C51设计电路,并用4个按键控制1个数码管的数字的变化(要...
充分利用单片机的中断机制,使数码管LED1直接实现数字流水显示,而另一个数码管LED2根据案件控制,进行多组内容的切换显示变换效果,要求使用至少4个按键来控制显示切换,需要设计出多组显示的至少4组显示内容。