基于pic16f887单片机的数字钟完整程序代码

基于pic16f887单片机的数字钟完整程序代码

ID:13808654

大小:64.50 KB

页数:19页

时间:2018-07-24

基于pic16f887单片机的数字钟完整程序代码_第1页
基于pic16f887单片机的数字钟完整程序代码_第2页
基于pic16f887单片机的数字钟完整程序代码_第3页
基于pic16f887单片机的数字钟完整程序代码_第4页
基于pic16f887单片机的数字钟完整程序代码_第5页
资源描述:

《基于pic16f887单片机的数字钟完整程序代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include__CONFIG(0x20F1);__CONFIG(0x3FFF);//调试用#defineLCD_ERD6//LCDE读写使能控制#defineLCD_RWRD5//LCD读(1)/写(0)控制线#defineLCD_RSRD4//LCD寄存器选择 数据(1)指令(0)//RD4-RD7分别接DB4-DB7,RD7为忙标志#defineCOM0//在LCD_WRITE()中的第2参数为0表示写命令#defineDAT1//在LCD_WRITE()中的第2参数为1表示写

2、数据#definemodRB3//模式选择(时间、闹钟、温度、秒表)#definesetRB0//选择按键#defineaddRB1//加按键#definemiuRB2//减按键#defineRTR0b00000000//TC74的读温度命令#defineTC74_ADD0b1001101//TC74的7位地址#defineLINE10b10000000#defineLINE20b11000000signedcharhourt,mint,sect;//闹钟设置位intf;//闹钟显示清零判断char

3、flag=0;//按键标志位charWW,QW,BW,SW,GW,M;chartable[]="MonTueWedThuFriSatSun";//星期signedcharyear,month,day,week,hour,min,sec,a,T;bank1charDD[16];//一行LCD显示数据暂存charA[7];//DS1307读数//====LCD程序voidCSH(void);//初始化voidLCD_CSH(void);//LCD初始化voidLCD_BUSY(void);//检测LCD

4、是否忙charLCD_READ(void);//读LCD,忙检测用voidLCD_WRITE(char,char);//LCD写1字节,命令或数据voidLCD_WRITE_4(char,char);//LCD写半字节voidDISP_C(char);//在指定行中显示字符,字符在数组DD中voidDISP_MENU(constchar*);//由常数数组显示整屏字符voidDELAY_US(char);voidDELAY(unsignedint);voiddelaynms(unsignedint)

5、;//===DS1307voidIIC_SEND(char);voidIIC_CSH(void);voidREAD_DS1307(charaddr,charn);voidwrite_DS1307(charaddr,chardata);voidDS1307_CSH(void);//DS1307初始化voidMENU_DS1307(void);//==温度voidDISP_T(signedcharR1);//温度在R1signedcharREAD_T(void);voidclock();//闹钟void

6、set_time(void);//按键voidbcd_dec(charadr,charR);chardec_bcd(chardec);voidBCD(unsignedintR1);voidguangbiao(void);//光标//========主程序voidmain(){CSH();READ_DS1307(0,7);//读DS1307if(A[0]&0x80)DS1307_CSH();//判断是否初始化while(1){clock();set_time();//按键检测delaynms(50);

7、if(flag==0){READ_DS1307(0,7);//读DS1307MENU_DS1307();//显示DS1307T=READ_T();//读温度DISP_T(T);//显示温度}}}//========初始化端口voidCSH(void){TRISD=0b00000000;//控制LCD1604,全为输出RD7=1;//背光TRISB=0x0FF;RBPU=0;WPUB=0x0FF;ANSELH=0;PORTB=0x00;//===PWM设置TRISC1=0;//RC1为输出RC1=0;

8、PR2=124;//周期为1msCCPR2L=0x32;CCP2CON=0b00000000;//关闭PWMT2CON=0b00000110;//TMR2预分频1:16,开始工IIC_CSH();LCD_CSH();}//LCD模块初始化voidLCD_CSH(void){DELAY(20);//延时20msLCD_WRITE_4(0b0011,COM);//发送控制序列DELAY_US(10);//延时100usLCD_WRITE_4(0b0011,COM);//发

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

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

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