ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:16.46KB ,
资源ID:29753750      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29753750.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(1602时钟带设定.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

1602时钟带设定.docx

1、1602时钟带设定#includereg52.h#define uchar unsigned char#define uint unsigned intuchar code table=HL-8051-clock;uchar code table1=-;uchar code table2=ALL0000- ;uchar code table3= ;uchar clk_time3; 秒,分,时寄存器初始值sbit T_RST=P10;ds1302-5sbit T_IO=P11;ds1302-6sbit T_CLK=P12;ds1302-7sbit en=P34;sbit rw=P36;sbit

2、rs=P35;sbit led=P25;sbit dula=P26;sbit wela=P27;sbit ACC0=ACC0;sbit ACC7=ACC7;sbit up=P30;sbit down=P31;sbit set=P32;sbit did=P23;sbit GND=P37;uchar num,clock_ss,clock_sg,clock_fs,clock_fg,clock_ms,clock_mg,b,clock_s,clock_g;char hour,mie,sei,c,nhour,nmie,shour,smie;DS1302:写入操作(上升沿) void write_byte(

3、uchar da) uchar i; ACC=da; for(i=8;i0;i-) T_IO=ACC0; T_CLK=0; T_CLK=1; ACC=ACC1; DS1302:读取操作(下降沿)uchar read_byte(void) uchar i; for(i=0;i8;i+) ACC=ACC1; T_CLK = 1; T_CLK = 0; ACC7 = T_IO; return(ACC);DS1302写入数据(先送地址,再写数据) void write_1302(uchar addr,uchar da) T_RST=0; 停止工作 T_CLK=0; T_RST=1; 重新工作 writ

4、e_byte(addr); 写入地址 write_byte(da); T_RST=0; T_CLK=1;DS1302读取数据(先送地址,再读数据)uchar read_1302(uchar addr) uchar temp; T_RST=0; 停止工作 T_CLK=0; T_RST=1; 重新工作 write_byte(addr); 写入地址 temp=read_byte(); T_RST=0; T_CLK=1; 停止工作 return(temp);延时程序=a1msvoid delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);voi

5、d fn() did=0; delay(120); did=1; delay(120); did=0; delay(120); did=1; delay(120); did=0; delay(120); did=1; delay(120); did=0; delay(320); did=1; delay(400); void write_com(uchar com) rs=0; P0=com; delay(5); en=1; delay(5); en=0;void write_data(uchar date) rs=1; P0=date; delay(5); en=1; delay(5); e

6、n=0;void morning() shour=clock_ss10+clock_sg; smie=clock_fs10+clock_fg; if(b=0) if(nhour=shour) if(smie=nmie) fn(); void init() b=0; nhour=0; nmie=0; led=0;关led rw=0; GND=0; en=0; write_com(0x38);设置液晶 write_com(0x0c);设光标等 write_com(0x06);写一个字符地址指针加1且光标加1 write_com(0x01);清屏 write_com(0x80);设置s地址指针voi

7、d display(uchar add,date) if(b=0) clock_ms=clk_time0 16; clock_mg=clk_time0%16; led=0; clock_fs=clk_time1 16; clock_fg=clk_time1%16; led=0; clock_ss=clk_time2 16; clock_sg=clk_time2%16; write_com(0x80+0x44); write_data(0x30+clock_ss); write_com(0x80+0x45); write_data(0x30+clock_sg); write_com(0x80+0

8、x47); write_data(0x30+clock_fs); write_com(0x80+0x48); write_data(0x30+clock_fg); write_com(0x80+0x4a); write_data(0x30+clock_ms); write_com(0x80+0x4b); write_data(0x30+clock_mg); if(b!=0) clock_s=date 10; clock_g=date%10; write_com(0x80+0x40+add); write_data(0x30+clock_s); write_data(0x30+clock_g);

9、 void key() uchar clock_s1, clock_s2, clock_f1, clock_f2; rw=0; if(set=0) delay(10); if(set=0) did=0; delay(10); did=1; b+; while(!set); if(b=1) hour=clock_ss10+clock_sg; mie=clock_fs10+clock_fg; write_com(0x80+0x45); write_com(0x0f); if(b=2) write_com(0x80+0x48); if(b=3) write_com(0x80+0x40); for(n

10、um=0;num13;num+) write_data(table2num); write_com(0x80+0x45); display(4,nhour);write_com(0x80+0x45); if(b=4) write_com(0x80+0x48); display(7,nmie); write_com(0x80+0x48); if(b=5) write_com(0x80+0x40); for(num=0;num4;num+) write_data(table3num); write_com(0x80+0x45); write_com(0x0c); b=0; clock_s1=hou

11、r10;十进制转十六进制 clock_s2=hour%10;十进制转十六进制 clock_s1=clock_s1&0xff;十进制转十六进制 clock_s2=clock_s2&0xff;十进制转十六进制 clock_s1=4;十进制转十六进制 clock_s1=clock_s1clock_s2;十进制转十六进制 clock_f1=mie10;十进制转十六进制 clock_f2=mie%10;十进制转十六进制 clock_f1=clock_f1&0xff; 全1出1 与运算 clock_f2=clock_f2&0xff;十进制转十六进制 clock_f1=4;十进制转十六进制 clock_f1

12、=clock_f1clock_f2;十进制转十六进制 write_1302(0x8e,0x00); WP=0 写操作 write_1302(0x80,0x00);写秒 write_1302(0x82,clock_f1);写分 write_1302(0x84,clock_s1);写时 write_1302(0x86,0x14);写日 write_1302(0x88,0x02);写月 write_1302(0x8a,0x06);写星期 write_1302(0x8c,0x09); write_1302(0x8e,0x80); WP=1 写保护 if(b!=0) if(up=0) delay(10)

13、; if(up=0) did=0; delay(10); did=1; while(!up); if(b=1) hour+; if(hour=24) delay(1); hour=0; display(4,hour); write_com(0x80+0x45); if(b=2) mie+; if(mie=60) mie=0; display(7,mie); write_com(0x80+0x48); if(b=3) nhour+; if(nhour=24) delay(1); nhour=0; display(4,nhour); write_com(0x80+0x45); if(b=4) nm

14、ie+; if(nmie=60) nmie=0; display(7,nmie); write_com(0x80+0x48); if(down=0) delay(10); if(down=0) did=0; delay(10); did=1; while(!down); if(b=1) hour-; if(hour0) hour=23; display(4,hour); write_com(0x80+0x45); if(b=2) mie-; if(mie0) mie=59; display(7,mie); write_com(0x80+0x48); if(b=3) nhour-; if(nho

15、ur0) nhour=23; display(4,nhour); write_com(0x80+0x45); if(b=4) nmie-; if(nmie0) nmie=59; display(7,nmie); write_com(0x80+0x48); void main() uchar temp=0x80; uchar i; init();wela=1;关开发板数码管P0=0Xff;关开发板数码管wela=0;关开发板数码管 for(num=0;num15;num+) write_data(tablenum); delay(100); write_com(0x80+0x40); for(num=0;num15;num+) write_data(table1num); for(num=0;num16;num+) write_com(0x18); delay(20); write_1302(0x8e,0x00); write_1302(0x90,0xa4); write_1302(0x8e,0x80); while(1) if(b=0) temp=0x81; for(i=0;i3;i+) clk_timei=read_1302(temp); temp+=2; display(0x4b,0x00); morning(); key();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1