文档详情

c语言电子时钟程序 电子时钟程序.doc

发布:2017-01-08约6.46千字共52页下载文档
文本预览下载声明
c语言电子时钟程序 电子时钟程序 导读:就爱阅读网友为您分享以下“电子时钟程序”资讯,希望对您有所帮助,感谢您对92的支持! /************************************************************************ 制作者:牛明(3228204) 王颖(3228207) (南京农业大学工学院) 制作时间:2011年5月11日至18日 所用元件: 单片机AT89C51 DS1302 LCD LM016L 功能:时钟(附闹钟及整点报时) 秒表 ************************************************************************/ #include lt;REGX51.Hgt; //宏定义DS1302寄存器读写地址// #define W_SEC 0x80 #define W_MIN 0x82 #define W_HOU 0x84 #define W_DAY 0x86 #define W_MON 0x88 #define W_WEE 0x8a #define W_YEA 0x8c #define W_PRO 0x8e //DS1320写保护 #define R_SEC 0x81 #define R_MIN 0x83 #define R_HOU 0x85 #define R_DAY 0x87 #define R_MON 0x89 #define R_WEE 0x8b #define R_YEA 0x8d //宏定义各时间在LCD上的显示位置 #define SEC 0xc9 #define MIN 0xc6 #define HOU 0xc3 #define DAY 0x89 #define MON 0x86 #define YEA 0x83 #define WEE 0x8c //单片机管角定义// sbit ds_io=P1; sbit ds_sclk=P1; sbit ds_rst=P1; //DS1302 sbit lcd_rs=P2; sbit lcd_rw=P2; // sbit lcd_e=P2; //LM016L sbit alarm=P1; //蜂鸣器 sbit acc_7=ACC ; //位寻址寄存器 sbit k1=P1; sbit k2=P1; sbit k3=P1; sbit k4=P1 ; //按键 //按键功能说明:k1键短按进入省电模式,长按进入设置模式; //进入设置模式后,每按一次k1键跳转一次功能,依次为调时,调分,调日,月,周,年,闹钟时设定,闹钟分设定; //此时k2、k3键实现上调和下调; //正常显示时间时按k3键进入秒表模式,再按控制开始,停止,清零; //按k4键跳出设置,显示正常时间。 //定义当前时间变量 struct SYSTEMTIME { unsigned char sec; unsigned char min; unsigned char hou; unsigned char wee; unsigned char day; unsigned char mon; unsigned char yea; } curtime; unsigned char code week[7][4]={“MON”,”TUE”,”WED”,”THU”,”FRI”,”SAT”,”SUN”}; unsigned char sethou=0x52,setmin=0x52,n=0; //sethou、setmin为闹钟设定变量;置功能项目标志 unsigned char msc,sec,min,hou; //msc(十毫秒),sec,min,hou为秒表变量 //延时函数// void delay(unsigned int time) { unsigned int i=0; for(;timegt;0;time--) for(i=0;ilt;110;i++); n为设 } /*void t0()interrupt 1 //定时器中断0 { TF0=0; TH0=(65536-10000)/256; TL0=(65536-10000)%256; } */ /*****************LCD部分子程序*******************/ //LCD写指令// void Writelcd_com(unsigned char com) { lcd_rs=0; lcd_rw=0; P0=com;
显示全部
相似文档