基于mcs51单片机的闹钟提醒器设计报告(编辑修改稿)内容摘要:
Addr,*pClock)。 /* 秒 分 时 日 月 星期 年 */ pClock++。 ucAddr +=2。 } W1302(0x8e,0x80)。 /* 控制命令 ,WP=1,写保护 */ } /*开机显示 */ void display1(void) { uchar i。 uchar code dis[4]=week。 uchar code p1[16]=Name:Chen haomin。 uchar code p2[16]= No:1008030204。 delay(1000)。 for(i=0。 i16。 i++) { lcd_wcmd(0x80|i)。 lcd_wdat(p1[i])。 } for(i=0。 i16。 i++) { lcd_wcmd(0xc0|i)。 lcd_wdat(p2[i])。 } delay_4s()。 lcd_init()。 delay(1000)。 delay(1000)。 lcd_wcmd(0x80)。 //2 lcd_wdat(0x32)。 lcd_wcmd(0x81)。 //0 lcd_wdat(0x30)。 for(i=0。 i4。 i++) { 淮南师范学院 电气信息工程学院 电子信息工程专业 Proteus 课程论文 第 12 页 delay(10)。 lcd_wcmd(0x80|i+0x0b)。 lcd_wdat(dis[i])。 } } /*显示部分 */ void disp(void) { /*显示时间 */ lcd_wcmd(0x82)。 lcd_wdat(R1302(0x8d)/16+0x30)。 //年 lcd_wcmd(0x83)。 lcd_wdat(R1302(0x8d)%16+0x30)。 lcd_wcmd(0x84)。 // lcd_wdat(45)。 lcd_wcmd(0x85)。 lcd_wdat(R1302(0x89)/16+0x30)。 //月 lcd_wcmd(0x86)。 lcd_wdat(R1302(0x89)%16+0x30)。 lcd_wcmd(0x87)。 // lcd_wdat(45)。 lcd_wcmd(0x88)。 lcd_wdat(R1302(0x87)/16+0x30)。 //日 lcd_wcmd(0x89)。 lcd_wdat(R1302(0x87)%16+0x30)。 lcd_wcmd(0x8a)。 lcd_wdat(32)。 lcd_wcmd(0x8f)。 lcd_wdat(R1302(0x8b)%16+0x30)。 //星期 lcd_wcmd(0xc0)。 lcd_wdat(R1302(0x85)/16+0x30)。 //时 lcd_wcmd(0xc1)。 lcd_wdat(R1302(0x85)%16+0x30)。 //lcd_wcmd(0xc2)。 //: //lcd_wdat(58)。 lcd_wcmd(0xc3)。 lcd_wdat(R1302(0x83)/16+0x30)。 //分 lcd_wcmd(0xc4)。 lcd_wdat(R1302(0x83)%16+0x30)。 //lcd_wcmd(0xc5)。 //lcd_wdat(58)。 //: lcd_wcmd(0xc6)。 淮南师范学院 电气信息工程学院 电子信息工程专业 Proteus 课程论文 第 13 页 lcd_wdat(R1302(0x81)/16+0x30)。 //秒 lcd_wcmd(0xc7)。 lcd_wdat(R1302(0x81)%16+0x30)。 /*显示闹钟 */ lcd_wcmd(0xcb)。 lcd_wdat(alarm_temp[1]/10+0x30)。 //时 lcd_wcmd(0xcc)。 lcd_wdat(alarm_temp[1]%10+0x30)。 lcd_wcmd(0xcd)。 lcd_wdat(58)。 lcd_wcmd(0xce)。 lcd_wdat(alarm_temp[0]/10+0x30)。 //分 lcd_wcmd(0xcf)。 lcd_wdat(alarm_temp[0]%10+0x30)。 //秒 } /*系统设置 */ void sys_set(void) { uchar i,j。 uchar key_state=0。 TR0=0。 //停止闪烁,显示 : lcd_wcmd(0xc2)。 lcd_wdat(58)。 lcd_wcmd(0xc5)。 lcd_wdat(58)。 while(key_break) { if(!key_set) //adjust the key state { delay(10000)。 if(!key_set) while(!key_set)。 key_state++。 if(key_state==9) key_state=0。 } switch(key_state)//调整时间时,需要的时候再读出各寄存器的值,以完成调整时间的要求 //虽然会浪费一定的空间,但能保证较快地响应请求 //在每次读出数据后应将 bcd 码转化为 16 进制数,调整完成后,再将 16 进制数转化为 bcd 码,最后给 ds1302 送数 { case 0://时钟 秒调整 time_temp[0] 淮南师范学院 电气信息工程学院 电子信息工程专业 Proteus 课程论文 第 14 页 lcd_wcmd(0xc8)。 lcd_wdat(67)。 //c lcd_wcmd(0xc9)。 lcd_wdat(45)。 // lcd_wcmd(0xca)。 lcd_wdat(83)。 //s time_temp[0]=R1302(0x81)。 //读出秒寄存器 time_temp[0]=time_temp[0]/16*10+time_temp[0]%16。 //转化为 16 进制数 if(!key_add) { delay(10000)。 if(!key_add) { while(!key_add)。 time_temp[0]++。 if(time_temp[0]==60) time_temp[0]=0。 } } if(!key_sub) { delay(10000)。 if(!key_sub) { while(!key_sub)。 time_temp[0]。 if(time_temp[0]==255) time_temp[0]=59。 } } W1302(0x8e,0x00)。 W1302(0x80,time_temp[0]/10*16+time_temp[0]%10)。 W1302(0x8e,0x80)。 break。 case 1://时钟 分调整 lcd_wcmd(0xc8)。 lcd_wdat(67)。 //c lcd_wcmd(0xc9)。 lcd_wdat(45)。 // lcd_wcmd(0xca)。 lcd_wdat(77)。 //m time_temp[1]=R1302(0x83)。 //读出分寄存器 time_temp[1]=time_temp[1]/16*10+time_temp[1]%16。 if(!key_add) //++ 淮南师范学院 电气信息工程学院 电子信息工程专业 Proteus 课程论文 第 15 页 { delay(10000)。 if(!key_add) { while(!key_add)。 time_temp[1]++。 { if(time_temp[1]==60) time_temp[1]=0。 } } } if(!key_sub) // { delay(10000)。 if(!key_sub) { while(!key_sub)。 time_temp[1]。 { if(time_temp[1]==255) time_temp[1]=59。 } } } W1302(0x8e,0x00)。 W1302(0x82,time_temp[1]/10*16+time_temp[1]%10)。 W1302(0x8e,0x80)。 break。 case 2://时钟 时调整 lcd_wcmd(0xc8)。 lcd_wdat(67)。 //c lcd_wcmd(0xc9)。 lcd_wdat(45)。 // lcd_wcmd(0xca)。 lcd_wdat(72)。 //h time_temp[2]=R1302(0x85)。 //读出时寄存器 time_temp[2]=time_temp[2]/16*10+time_temp[2]%16。 if(!key_add) //++ { delay(10000)。 if(!key_add)。基于mcs51单片机的闹钟提醒器设计报告(编辑修改稿)
相关推荐
洗衣机整体设计框图 ( 1)系统总体设计 在进行功能和技术指标对应用系统的可靠性、通用系统设计之前首先应根据对系统功能要求及其应用环境等确定 其 合理 性 、具体性、先进性、可维护性、以及成本等进行综合考虑以尽量 满足 并符合相应的标准。 然后根据市场上各种单片机的货源情况和单片机的性能及开发工具等因素选 择合适的机型。 接下来要根据系统中可能遇到的传感器、模拟电路、 I/O接口
的情况。 停止位:用于表示单个包的最后一位。 典型的值为 1, 2位。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。 因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。 适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 奇偶校验位:在串口通信中一种简单的检错方式。 有四种检错方式:偶、奇
922 的 DA 引脚经过一个非门连接到单片机的 /INT0 脚,当 MM74C922 检测到键盘输入时, DA 产生高电平,与之相连的 /INT0 检测到低电平,给单片机一个中断,单片机从P2 口的低四位读入键盘上按下的键的值。 图 37 键盘接口电路图 江苏农牧科技职 业学院毕业论文(设计) 8 第四章 软件设计 本设计主要包含主程序、外部中断 0 程序。 主程序设计 主程序函数表示
缸做功之后的蒸汽 ,送到锅炉的再热器重新加热 ,使 蒸汽 提高到一定 压力 和 温度后 ,送到汽轮机中压缸继续做功。 图 锅炉工艺流程图 火电厂设备介绍 锅炉设备是火力发电厂中的主要热力设备之一。 它的任务是使燃料通过燃烧将化学能转变为热能,并且以此热能加热水,使其成为一定数量和质量(压力 和温度)的蒸汽。 由炉膛、烟道、汽水系统(其中包括受热面、汽包
设环路输入一个频率 r 和相位 r 均为常数的信号,即 (316) 式中, 0 是控制电压 )(tcu =0 时 VCO 的固有振荡频率, r 是参考输入信号的相位。 令 则 (317) 将式( 316)代入式( 317)可得固有频率输入时的环路基本方程 (318) 在闭环之后的任何时刻存在着如下关系: 瞬时频差 =固有频差 控制频差,记为 (319) 频率合成器及其技术指标
)端口,同时内含 2 个外中断口,3 个 16 位可编程定 时计数器, 2 个全双工串行通信口, 2 个读写口 . 其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本 . AT89C52 有 PDIP、 PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求 . 主要功能特性 兼容 MCS51 指令系统 8k 可反复擦写