数字钟C语言源程序.docx

上传人:小飞机 文档编号:3111101 上传时间:2023-03-10 格式:DOCX 页数:5 大小:37.56KB
返回 下载 相关 举报
数字钟C语言源程序.docx_第1页
第1页 / 共5页
数字钟C语言源程序.docx_第2页
第2页 / 共5页
数字钟C语言源程序.docx_第3页
第3页 / 共5页
数字钟C语言源程序.docx_第4页
第4页 / 共5页
数字钟C语言源程序.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《数字钟C语言源程序.docx》由会员分享,可在线阅读,更多相关《数字钟C语言源程序.docx(5页珍藏版)》请在三一办公上搜索。

1、数字钟C语言源程序数字钟C语言源程序 * #include #include #define uchar unsigned char #define wei XBYTE0x0FF20 /将82255PA口映射为数码管的位选,与硬件连接相对应 #define duan XBYTE0x0FF21 /将8255PB口映射为数码管的段选,与硬件连接相对应 #define control XBYTE0xff23/将8255控制寄存器地址定义为control,与硬件连接相对应 #define int8 unsigned char #define int16 unsigned int sbit key1=P

2、30; /设置键 sbit key2=P31; /加键 sbit key3=P32; /减键 Unsigned char dis=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/要显示的段码 uchar a=0,counter,hour=12,minute=0,second=0; void delay(uchar x) /延时函数,约x us while(x-); void display(int8 hour,int8 minute,int8 second) /动态扫描程序 int8 hs,hg,ms,mg,ss,sg; int8 coun

3、ter; hs=hour/10;/定义小时显示的十位 hg=hour%10;/定义小时显示的个位 ms=minute/10;/定义分钟显示的十位 mg=minute%10;/定义分钟显示的个位 ss=second/10;/定义秒钟显示的十位 sg=second%10;/定义秒钟显示的个位 duan=0xff;/关闭所有数码管显示 duan=dissg; wei=0xfe; for(counter=0;counter100;counter+); duan=0xff; /关闭所有数码管显示,防止上一个数据的干扰 duan=disss;/送秒的十位段位码 wei=0xfd; /打开秒十位的位选,显示

4、秒 for(counter=0;counter100;counter+); /延时约100us,让数码管有足够的点亮时间 duan=0xff; duan=dismg; wei=0xfb; for(counter=0;counter100;counter+); duan=0xff; duan=disms; wei=0xf7; for(counter=0;counter100;counter+); duan=0xff; duan=dishg; wei=0xef; for(counter=0;counter100;counter+); duan=0xff; duan=dishs; wei=0xdf;

5、 for(counter=0;counter=1)TR0=0;/关断定时器,时间停止 if(a=1) if(key2=0) while(key2=0)display(hour,minute,second); hour+; if(hour=24)hour=0; if(key3=0) while(key3=0)display(hour,minute,second); hour-; if(hour=-1)hour=23; if(a=2) if(key2=0) while(key2=0)display(hour,minute,second); minute+; if(minute=60)minute=

6、0; if(key3=0) while(key3=0)display(hour,minute,second); minute-; if(minute=-1)minute=59; if(a=3) if(key2=0) while(key2=0)display(hour,minute,second); second+; if( second=60) second=0; if(key3=0) while(key3=0)display(hour,minute,second); second-; if( second=-1) second=59; main control=0x81;/8255A口和B口

7、为输出 time_int; /定时器初始化函数 while(1) key; /调用键盘程序,一旦有键就进入设置 if(a=0|a=1|a=2|a=3|a=4)display(hour,minute,second);/始终显示当前时间 void time_interrupt interrupt 1 /定时器0中断溢出处理函数,自动处理,无需主函数调用 TH0=0x4c; TL0=0x00; /重装定时器初始值,定时中断一次为50ms时间 counter+; if(counter=20) /记20次中断恰好为1s counter=0; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号