BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #83971同步于 2014/11/7
CPP机器人发帖

简单的数码管显示时钟的程序,先谢谢大家了~

xy191651196
2014/11/7镜像同步0 回复
亲,帮忙给看个程序吧,,简单的时钟via数码管 程序 #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit duan=P2^6; //段选信号的锁存器控制(段选,选中灯) sbit wei=P2^7; //位选信号的锁存器控制(位选,选中位) uchar a,b=0; uchar code du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示0-9 uchar code we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//数码管的位码 //延时函数 void delay(uint a) {uint i,j; for(i=0;i<a;i++) for(j=0;j<124;j++); } //以下定时器中断 void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; b++; if(b>=20) {a=1; b=0; } } //以下是数码管显示函数 void display(uchar shi,uchar fen,uchar miao,uchar du[],uchar we[]) { P0=0xfe;//显示时钟十位 we=1; we=0; P0=du[shi/10]; du=1; du=0; delay(5); P0=0xfd;//显示时钟个位 we=1; we=0; P0=du[shi%10]; du=1; du=0; delay(5); P0=0xfb;//显示分钟十位 we=1; we=0; P0=du[fen/10]; du=1; du=0; delay(5); P0=0xf7; //显示分钟个位 we=1; we=0; P0=du[fen%10]; du=1; du=0; delay(5); P0=0xef;//显示秒钟十位 we=1; we=0; P0=du[miao/10]; du=1; du=0; delay(5); P0=0xdf; //显示秒钟个位 we=1; we=0; P0=du[miao%10]; du=1; du=0; delay(5); } void main() { uchar shi=23,fen=59,miao=45; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(1) {if(a==1) {miao++; if(miao==60) {miao=0; fen++; if(fen==60) {fen=0; shi++; if(shi==24) {shi=0;} } a=0; } } display(shi,fen,miao,du,we); } } 亲,帮忙给看个程序吧,,简单的时钟via数码管 程序
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。