- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
姚辉虎的毕业设计--基于单片机的智能数字闹钟程序代码
程序代码
?
main.c
#include reg51.h#include intrins.h#include yf.h??unsigned char clock_data[4];
sbit speaker? = P2^4;//? 蜂鸣器sbit bell = P2^2;?? //铃响bit bell_on=0;bit key_ok=0;unsigned char bell_time=0x20;uchar week_clock_set;#define FIRST_ADDR 0
//定义全局变量unsigned char yy,mo,dd,xq,hh,mm,ss;//? 定义时间映射全局变量(专用寄存器)uchar j;
/****************************************************************************///函数声明extern? unsigned char read_clock(unsigned char ord);extern void lcdwc(unsigned char cmdcode);extern void hzkdis(unsigned char code *s);extern void hzkdis2(unsigned char *s);extern char Read_One_Byte(unsigned char addr);extern void Write_One_Byte(unsigned char addr,unsigned char thedata);void lcm_w_ss(void);extern void lcdreset(void);extern void Init_DS18B20(void);extern char gotkey();extern void Init_1302(void);extern unsigned int ReadTemperature(void);
extern void write_clock(unsigned char ord, unsigned char dd);extern void disp_hz(uchar x,uchar *c_str,uchar w);extern void delay(unsigned int t);void new_time(void);void read_clockss(x);
?
//void lcm_w_temp(void) ;
void read_clockS(void){?ss = read_clock(0x81);//读取秒数据?mm = read_clock(0x83);//读取分钟数据?hh = read_clock(0x85);//小时?dd = read_clock(0x87);//日?mo = read_clock(0x89);//月?xq = read_clock(0x8b);//星期?yy = read_clock(0x8d);//年}
/*void Set_time(unsigned char sel){ //根据选择调整的相应项目加1并写入DS1302? signed char address,item;? signed char max,mini;
??? if(sel==7)? {address=0x80; max=0;mini=0;}???? //秒? if(sel==6)? {address=0x82; max=59;mini=0;}??? //分钟? if(sel==5)? {address=0x84; max=23;mini=0;}??? //小时? if(sel==3)? {address=0x86; max=31;mini=1;}??? //日? if(sel==2)? {address=0x88; max=12;mini=1;}??? //月? if(sel==1)? {address=0x8c; max=99; mini=0;}??? //年? if(sel==4)? {address=0x8a; max=7;mini=1;}??? //星期??? //读取1302某地址上的数值转换成10进制赋给item?? item=((read_clock(address+1))/16)*10 + (read_clock(address+1))%16;? if(KEY_Y == 0){? ?item++;//数加 1??? }? if(KEY_N== 0){?
文档评论(0)