ds1302数码管显示程序

ds1302数码管显示程序

ID:4116235

大小:42.00 KB

页数:8页

时间:2017-11-28

ds1302数码管显示程序_第1页
ds1302数码管显示程序_第2页
ds1302数码管显示程序_第3页
ds1302数码管显示程序_第4页
ds1302数码管显示程序_第5页
资源描述:

《ds1302数码管显示程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/************************************************************************///huaqinMCUDS1302实验程序数码管显示时钟设置说明//"8键"为时钟设置、时分切换、保存"0键"为加"4键"为减/************************************************************************/#include#defineucharunsignedchar#defineuintunsignedint//===以下IO定义请根据您硬件的连接修

2、改===sbitT_RST=P3^5;//ds1302-5sbitT_IO=P3^4;//ds1302-6sbitT_CLK=P3^6;//ds1302-7sbitACC0=ACC^0;sbitACC7=ACC^7;//累加器A51单片机原理中有介绍sbitup=P3^1;sbitdown=P3^2;sbitset=P3^0;uchara,b,clock_ss,clock_sg,clock_fs,clock_fg,clock_ms,clock_mg;inthour,mie,sei;ucharclk_time[3];//秒,分,时寄存器初始值codeucharledmap[]={0x3

3、f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//数码管段码/******************DS1302:写入操作(上升沿)*********************/voidwrite_byte(ucharda){uchari;ACC=da;for(i=8;i>0;i--){T_IO=ACC0;T_CLK=0;T_CLK=1;ACC=ACC>>1;}}/******************DS1302:读取操作(下降沿)*****************/ucharread_byte(void){uchari;for

4、(i=0;i<8;i++){ACC=ACC>>1;T_CLK=1;T_CLK=0;ACC7=T_IO;}return(ACC);}/******************DS1302:写入数据(先送地址,再写数据)***************************/voidwrite_1302(ucharaddr,ucharda){T_RST=0;//停止工作T_CLK=0;T_RST=1;//重新工作write_byte(addr);//写入地址write_byte(da);T_RST=0;T_CLK=1;}/******************DS1302:读取数据(先送地址,

5、再读数据)**************************/ucharread_1302(ucharaddr){uchartemp;T_RST=0;//停止工作T_CLK=0;T_RST=1;//重新工作write_byte(addr);//写入地址temp=read_byte();T_RST=0;T_CLK=1;//停止工作return(temp);}/***********************延时程序=a*1ms**************************************/voiddelay(uchara){uchari;while(a--!=0){//l

6、ed_disp();for(i=0;i<125;i++);}}/***********************显示程序**********************************************//*DS1302秒,分,时寄存器是BCD码形式:用16求商和余进行"高4位"和"低4位"分离*//****************************************************************************/voidled_disp(){ucharcant1,cant2;if(b==0){cant1=0;cant2=0;clock_

7、ms=clk_time[0]/16;clock_mg=clk_time[0]%16;clock_fs=clk_time[1]/16;clock_fg=clk_time[1]%16;mie=clock_fs*10+clock_fg;clock_ss=clk_time[2]/16;clock_sg=clk_time[2]%16;//BCD*to*10hour=clock_ss*10+clock_sg;//用16求商和余进行"高4位"和"低4位"分离}if(b=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。