郭天祥开发版自已开发写的时钟

上传人:艾力 文档编号:32240439 上传时间:2018-02-10 格式:DOC 页数:9 大小:54KB
返回 下载 相关 举报
郭天祥开发版自已开发写的时钟_第1页
第1页 / 共9页
郭天祥开发版自已开发写的时钟_第2页
第2页 / 共9页
郭天祥开发版自已开发写的时钟_第3页
第3页 / 共9页
郭天祥开发版自已开发写的时钟_第4页
第4页 / 共9页
郭天祥开发版自已开发写的时钟_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《郭天祥开发版自已开发写的时钟》由会员分享,可在线阅读,更多相关《郭天祥开发版自已开发写的时钟(9页珍藏版)》请在金锄头文库上搜索。

1、/这里为了方便计算时间,我们假设晶振为 12M.#include/包含 52 单片机头文件#define uchar unsigned char #define uint unsigned intbit write=0; /写 24C02 的标志;sbit sda=P20; sbit scl=P21;void delay0() ; void start() /开始信号sda=1;delay0();scl=1;delay0();sda=0;delay0();void stop() /停止sda=0;delay0();scl=1;delay0();sda=1;delay0();void respo

2、ns() /应答uchar i;scl=1;delay0();while(sda=1) /SCL 在高电平期间, SDA 被从设备拉为低电平表示应答。表示一段时间内没有收到从器件的应答则主器件默认已经收到数据而不再等待scl=0;delay0();void init_24c02()/IIC 初始化函数sda=1;delay0();scl=1;delay0();void write_byte(uchar date)/写一个字节函数uchar i,temp;temp=date;for(i=0;i0;x-)for(y=110;y0;y-);void di()/蜂鸣器发声函数beep=0;delay(

3、100);beep=1;void write_com(uchar com)/液晶写命令函数rs=0;rw=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)/液晶写数据函数rs=1;rw=0;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void write_sfm(uchar add,uchar date)/写时分秒函数uchar shi,ge;shi=date/10;/分解一个 2 位数的十位和个位ge=date%10;write_

4、com(0x80+0x40+add);/设置显示位置write_date(0x30+shi);/送去液晶显示十位write_date(0x30+ge); /送去液晶显示个位void init()/初始化函数uchar num;rd=0; /软件将矩阵按键第 4 列一端置低用以分解出独立按键dula=0;/关闭两锁存器锁存端,防止操作液晶时数码管会出乱码wela=0;lcden=0;fen=0; /初始化种变量值miao=0;shi=0;count=0;s1num=0;init_24c02();write_com(0x38);/初始化 1602 液晶write_com(0x0c);write_c

5、om(0x06);write_com(0x01);write_com(0x80);/设置显示初始坐标for(num=0;num15;num+)/显示年月日星期write_date(tablenum);delay(5);write_com(0x80+0x40+6);/写出时间显示部分的两个冒号write_date(:);delay(5);write_com(0x80+0x40+9);write_date(:);delay(5);miao=read_add(1);/首次上电从 AT24C02 中读取出存储的数据fen=read_add(2);shi=read_add(3);write_sfm(10

6、,miao);/分别送去液晶显示write_sfm(7,fen);write_sfm(4,shi);TMOD=0x01;/设置定时器 0 工作模式 1TH0=(65536-50000)/256;/定时器装初值TL0=(65536-50000)%256;EA=1; /开总中断ET0=1; /开定时器 0 中断TR0=1; /启动定时器 0void keyscan()/按键扫描函数if(s1=0)delay(5);if(s1=0)/确认功能键被按下 s1num+;/功能键按下次数记录while(!s1);/释放确认di();/每当有按键释放蜂鸣器发出滴声if(s1num=1)/第一次被按下时TR0

7、=0; /关闭定时器write_com(0x80+0x40+10);/光标定位到秒位置write_com(0x0f); /光标开始闪烁if(s1num=2)/第二次按下光标闪烁定位到分钟位置write_com(0x80+0x40+7);if(s1num=3)/第三次按下光标闪烁定位到小时位置write_com(0x80+0x40+4);if(s1num=4)/第四次按下s1num=0;/记录按键数清零write_com(0x0c);/取消光标闪烁TR0=1; /启动定时器使时钟开始走if(s1num!=0)/只有功能键被按下后,增加和减小键才有效if(s2=0)delay(5);if(s2=0

8、)/增加键确认被按下while(!s2);/按键释放di();/每当有按键释放蜂鸣器发出滴声if(s1num=1)/若功能键第一次按下miao+; /则调整秒加 1if(miao=60)/若满 60 后将清零miao=0;write_sfm(10,miao);/每调节一次送液晶显示一下write_com(0x80+0x40+10);/显示位置重新回到调节处write_add(1,miao); /数据改变立即存入 24C02if(s1num=2)/若功能键第二次按下fen+;/则调整分钟加 1if(fen=60)/若满 60 后将清零fen=0;write_sfm(7,fen);/每调节一次送液

9、晶显示一下write_com(0x80+0x40+7);/显示位置重新回到调节处write_add(2,fen);/数据改变立即存入 24C02if(s1num=3)/若功能键第三次按下shi+;/则调整小时加 1if(shi=24)/若满 24 后将清零shi=0;write_sfm(4,shi);/每调节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处write_add(3,shi);/数据改变立即存入 24C02if(s3=0)delay(5);if(s3=0)/确认减小键被按下while(!s3);/按键释放di();/每当有按键释放蜂鸣器发出滴

10、声if(s1num=1)/若功能键第一次按下miao-;/则调整秒减 1if(miao=-1)/若减到负数则将其重新设置为 59miao=59;write_sfm(10,miao);/每调节一次送液晶显示一下write_com(0x80+0x40+10);/显示位置重新回到调节处write_add(1,miao);/数据改变立即存入 24C02if(s1num=2)/若功能键第二次按下fen-;/则调整分钟减 1if(fen=-1)/若减到负数则将其重新设置为 59fen=59;write_sfm(7,fen);/每调节一次送液晶显示一下write_com(0x80+0x40+7);/显示位置

11、重新回到调节处write_add(2,fen);/数据改变立即存入 24C02if(s1num=3)/若功能键第二次按下shi-;/则调整小时减 1if(shi=-1)/若减到负数则将其重新设置为 23shi=23;write_sfm(4,shi);/每调节一次送液晶显示一下write_com(0x80+0x40+4);/显示位置重新回到调节处write_add(3,shi);/数据改变立即存入 24C02void main()/主函数init();/首先初始化各数据while(1)/进入主程序大循环keyscan();/不停的检测按键是否被按下void timer0() interrupt

12、1/定时器 0 中断服务程序TH0=(65536-50000)/256;/再次装定时器初值TL0=(65536-50000)%256;count+; /中断次数累加if(count=20) /20 次 50 毫秒为 1 秒count=0;miao+;if(miao=60)/秒加到 60 则进位分钟miao=0;/同时秒数清零fen+;if(fen=60)/分钟加到 60 则进位小时fen=0;/同时分钟数清零shi+;if(shi=24)/小时加到 24 则小时清零shi=0;write_sfm(4,shi);/小时若变化则重新写入write_add(3,shi);/数据改变立即存入 24C02write_sfm(7,fen);/分钟若变化则重新写入write_add(2,fen);/数据改变立即存入 24C02write_sfm(10,miao);/秒若变化则重新写入write_add(1,miao);/数据改变立即存入 24C02

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号