基于单片机的万年历设计课程设计(编辑修改稿)内容摘要:

.MCS51 系列单片机系统极其应用 .北京:高等教育出版社 ,2020 [2] 林伸茂 .8051单片机彻底研究实习篇 .北京:人民邮电出版社 ,2020 [3] 胡学海 .单片机原理极其应用系统设计 .北京 :电子工业出版社 ,2020 [4] 张毅刚 .单片机原理极其应用 .哈尔滨:哈尔滨工业大学出版社 ,2020 [5] 韩志军等 .单片机应用系统设计 .北京 :机械 工业出版社 ,2020 [6] 舒怀林 .单片机原理与接口技术 .武汉 :华中科技大学 出版社 ,2020 物理与电子工程学院 2020 级本科课程设计 17 附 录 课程设计中的程序如下: include include include define uchar unsigned char define uint unsigned int sbit SCK=P3^6。 //时钟 sbit SDA=P3^4。 //数据 sbit RST=P3^5。 // DS1302 复位 sbit lcdrs=P2^6。 sbit lcdrw=P2^5。 sbit lcden=P2^7。 sbit key1=P1^0。 //开调时键 sbit key2=P1^1。 //调时加键 sbit key3=P1^2。 //调时减键 sbit key4=P1^3。 //开设定闹铃键 sbit key5=P1^4。 //返回正常显示键 sbit key6=P1^5。 //闹铃开关键 sbit DQ=P3^7。 //温度传感器数据通信位 sbit beep = P2^1。 //蜂鸣器控制 IO 口 sbit led1 = P2^0。 //led 灯,闹铃响标志 bit ReadRTC_Flag,Display_Flag,Alarm_Flag,flag。 //定义标志位 uchar miao,fen,shi,ri,yue,week,nian,T,C=0,k=0,m=0,n=0。 uchar set_miao,set_fen,set_shi,set_ri,set_yue,set_nian,TempBuffer[5],temp_value。 char l_tmpdate[7]={0x50,0x08,0x011,0x07,0x10,0x01,0x12}。 //设置初始时间,秒分时日月周年121007 01:08:50 uchar code write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}。 //秒分时日月周年 最低位写位 uchar code read_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d}。 //秒分时日月周年 最低位读位 uchar code table1[]=SUN。 //星期字表 uchar code table2[]=MON。 uchar code table3[]=TUE。 uchar code table4[]=WED。 uchar code table5[]=THU。 uchar code table6[]=FRI。 uchar code table7[]=SAT。 uchar code tab1[]=20。 uchar code tab2[]= : :。 uchar code tab3[14]= Set Alarm!。 char tab4[]={0,0,12}。 物理与电子工程学院 2020 级本科课程设计 18 //两只蝴蝶 unsigned char code Music_Two[] ={ 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 }。 /******************************************************************/ /* 函数声明 */ /******************************************************************/ void Init_DS18B20(void)。 unsigned char ReadOneChar(void)。 void WriteOneChar(uchar dat)。 void ReadTemp(void)。 void temp_to_str()。 //温度数据转换成液晶字符显示 void Write_Ds1302_byte(uchar temp)。 void Write_Ds1302( uchar address,uchar dat )。 物理与电子工程学院 2020 级本科课程设计 19 uchar Read_Ds1302 ( uchar address )。 void Read_RTC(void)。 void Set_RTC(void)。 void delay(uchar a)。 void delay1(uchar a)。 void di()。 void lcd_mang()。 void write_lcd1602(uchar cmd,uchar i)。 void ini_lcd1602()。 void write_week(uchar xq)。 void write_nyr(uchar add,uchar dat)。 void write_sfm(uchar add,uchar dat)。 void display()。 void keyscan()。 void alarm()。 /******************************************************************/ /* 主函数 */ /******************************************************************/ void main(void) { ini_lcd1602()。 Init_DS18B20()。 Set_RTC()。 //写入时钟值,如果使用备用电池时候,不需要没每次上电写入,此程序应该 屏蔽 while(1) { ReadTemp()。 temp_to_str()。 keyscan()。 if(ReadRTC_Fla。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。