资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
总电路图:单片机电路图:1602接线图:1302接线图:(I/O接单片机3.5脚)按键接线图:程序清单:#include#include#define uchar unsigned char#define uint unsigned intsbit ACC0 = ACC0;sbit ACC7 = ACC7;sbit t=P10;/进入调时按键sbit jia=P11;/加一按键sbit jian=P12;/减一按键sbit m=P13;/退出调时按键sbit BEEP=P20;/蜂鸣器sbit jtod=P14;/矩阵按键转独立按键,该脚置0sbit T_CLK = P16; /*实时时钟时钟线引脚 */sbit T_IO = P35; /*实时时钟数据线引脚 */sbit T_RST = P17; /*实时时钟复位线引脚 */sbit E=P27;/1602使能引脚sbit RW=P26;/1602读写引脚sbit RS=P25;/1602数据/命令选择引脚uchar code hanzi8=0x04,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02,0x0f,0x09,0x0f,0x09,0x0f,0x09,0x13,0x11,0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00;void v_W1302(uchar ucAddr, uchar ucDa);uchar uc_R1302(uchar);uchar dectobcd(uchar bcd);uchar bcdtodec(uchar);void beep();void delay(uchar x) uchar i; while(x-) for(i=0;i110;i+);/* 名称 : enable(uchar del)* 功能 : 1602命令函数* 输入 : 输入的命令值* 输出 : 无*/void enable(uchar del)RS = 0;RW = 0;P0 = del;E = 1;delay(3);E=0;/* 名称 : write(uchar del)* 功能 : 1602写数据函数* 输入 : 需要写入1602的数据* 输出 : 无*/void write(uchar del)RS = 1;RW = 0;P0 = del;E = 1;delay(3);E=0;/* 名称 : L1602_init()* 功能 : 1602初始化,请参考1602的资料* 输入 : 无* 输出 : 无*/void L1602_init(void)enable(0x01);enable(0x38);enable(0x06);enable(0x0c);E=0;/装入自定义字符(汉字)void writch() uchar i,j; enable(0x40); for(i=0;i8;i+) for(j=0;j59) sec=0; L1602_char(2, 12, sec/10%10+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0x80,dectobcd(sec)|0x80); if(jian=0) /秒减一 delay(5); if(jian=0) while(!jian); sec=bcdtodec(uc_R1302(0x81); sec-; if(sec=-1) sec=59; L1602_char(2, 12, sec/10%10+48); L1602_char(2, 13, sec%10 + 48); v_W1302(0x80,dectobcd(sec)|0x80); if(num=2) /调分钟 enable(0xc0+9); if(jia=0) delay(5); if(jia=0) min = bcdtodec(uc_R1302(0x83); min+; while(!jia); if(min59) min=0; L1602_char(2, 9, min / 10 % 10 + 48); L1602_char(2, 10, min % 10 + 48); v_W1302(0x82,dectobcd(min); if(jian=0) delay(5); if(jian=0) min = bcdtodec(uc_R1302(0x83); min-; while(!jian); if(min=-1) min=59; L1602_char(2, 9, min / 10 % 10 + 48); L1602_char(2, 10, min % 10 + 48); v_W1302(0x82,dectobcd(min); if(num=3) /调小时 enable(0xc0+6); if(jia=0) delay(5); if(jia=0) hour = bcdtodec(uc_R1302(0x85); hour+; while(!jia); if(hour23) hour=0; L1602_char(2, 6, hour / 10 % 10 + 48); L1602_char(2, 7, hour % 10 + 48); v_W1302(0x84,dectobcd(hour)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号