基于at89c52单片机的电子万年历设计内容摘要:
= { 0xfe, 0xfd, 0xfb, 0xf7 }。 //键盘扫 描码 uchar code getKeyboardCode[] = { 0xee, 0xde, 0xbe, 0x7e, 0xed, 0xdd, 0xbd, 0x7d, //键值 0xeb, 0xdb, 0xbb, 0x7b, 0xe7, 0xd7, 0xb7, 0x77 }。 uchar code theActionCode[] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}。 // 键盘序号 void Keyscan(void)//键盘扫描 { uchar sender = 0x00。 uchar counterOne = 0x00。 uchar counterTwo = 0x00。 uchar keyvals=0xff。 for(counterOne=0x00。 counterOne4。 counterOne++) { keyboardCode = initialKeyboardCode[counterOne]。 //选择扫描码 sender = keyboardCode。 //得到键值 delay10ms(1)。 for(counterTwo=0x00。 counterTwo16。 counterTwo++) { if(sender==getKeyboardCode[counterTwo]) //比较键值 { keyvals = theActionCode[counterTwo]。 //获得键盘序号 //You can write you control functions here too. keyval = keyvals。 } } } } 8 void addtime(uchar keyi) /*控制时间量的加 */ { time_data[keyi]+=1。 if(time_data[keyi]==0x0a || time_data[keyi]==0x1a || time_data[keyi]==0x2a || time_data[keyi]==0x3a || time_data[keyi]==0x4a || time_data[keyi]==0x5a || time_data[keyi]==0x6a || time_data[keyi]==0x7a || time_data[keyi]==0x8a || time_data[keyi]==0x9a) time_data[keyi]+=6。 if(keyi==0||keyi==1) //分,秒 { if(time_data[keyi]0x59) time_data[keyi]=0。 } if(keyi==2) //时 { if(time_data[keyi]0x23) time_data[keyi]=0。 } if(keyi==3) //日 { if(time_data[keyi]0x31) time_data[keyi]=1。 } if(keyi==4) //月 { if(time_data[keyi]0x12) time_data[keyi]=1。 } if(keyi==5) //星期 { if(time_data[keyi]0x07) time_data[keyi]=1。 } if(keyi==6) //年 { if(time_data[keyi]0x99) time_data[keyi]=0。 } 9 Convert()。 } void subtime(uchar keyi) /*控制时间量的减 */ { if(keyi==0||keyi==1) //分,秒 { if(time_data[keyi]==0x00) time_data[keyi]=0x59。 else time_data[keyi]=1。 } if(keyi==2) //时 { if(time_data[keyi]==0x00) time_data[keyi]=0x23。 else time_data[keyi]=1。 } if(keyi==3) //日 { if(time_data[keyi]==0x01) time_data[keyi]=0x31。 else time_data[keyi]=1。 } if(keyi==4) //月 { if(time_data[keyi]==0x01) time_data[keyi]=0x12。 else time_data[keyi]=1。 } if(keyi==5) //星期 { if(time_data[keyi]==0x01) time_data[keyi]=0x07。 else time_data[keyi]=1。 } if(keyi==6) //年 { if(time_data[keyi]==0x00) time_data[keyi]=0x99。 else time_data[keyi]=1。 } 10 if(time_data[keyi]==0x0f || time_data[keyi]==0x1f || time_data[keyi]==0x2f || time_data[keyi]==0x3f || time_data[keyi]==0x4f || time_data[keyi]==0x5f|| time_data[keyi]==0x6f || time_data[keyi]==0x7f || time_data[keyi]==0x8f || time_data[keyi]==0x9f) time_data[keyi]=6。 Convert()。 } void Keyproc() /*选择需要控制的时间变量 */ { if(keyval!=0xff) { beep()。 if(keyval==0) {df+=1。 if(df==8) { v_Set1302(time_data)。 df=0。 } delay10ms(50)。 } if(df==1) {if(keyval==1) addtime(0)。 if(keyval==2) subtime(0)。 } if(df==2) {if(keyval==1) addtime(1)。 if(keyval==2) subtime(1)。 } if(df==3) {if(keyval==1) 11 addtime(2)。 if(keyval==2) subtime(2)。 } if(df==4) {if(keyval==1) addtime(3)。 if(keyval==2) subtime(3)。 } if(df==5) {if(keyval==1) addtime(4)。 if(keyval==2) subtime(4)。 } if(df==6) {if(keyval==1) addtime(5)。 if(keyval==2) subtime(5)。 } if(df==7) {if(keyval==1)。基于at89c52单片机的电子万年历设计
相关推荐
n Ceramic 公司的 SCA02 RS02D 等。 虽然它们的型号不一样,但其结构、外型和特性参数大致相同,大 图 1 热释电传感器实物图部分可以彼此互换使用。 热释电红外线传感器由探测元、滤光窗和场效应管阻抗变换器等三大部分组成,如图 01 所示。 对不同的传感器来说,探测元的制造材料有所不同。 如 SD02的敏感单元由锆钛酸铅制成; P2288 由 LiTaO3 制成。
时时间长,稳定性能也高。 从上面方案上选择,我选择最后一个方案。 最终方案 1. Atmel 公司的 AT89C52 单片机作为主控制器 2. 采用光敏电阻组成光敏探测器 3. 采用超声波传感器组成超声波避障器 4. 采用应变式传感器来作垃圾桶检测装置 5. 采用步进电机作为该系统的驱动电机 6. 采用专用芯片 L298N 作为电机驱动芯片 7. 采用 静态扫描显示,并用七段译码芯 片
4 第二章 总体设计方案 总体方框图 根据系统设计的 任务 要求和设计思路,确定该 系统的设计 方框 图。 如图 所示。 硬件电路主要由 MCU 微处理控制器单元、 DS1302 时钟电路、复位电路、晶振电路、 液晶 显示模块 、 电源模块 构成。 图 系统 方框图 总体 方案工作原理 本设计 主要由基于 AT89S52 芯片 构成的单片机最小系统、日历时钟芯片 DS1302 及其外围电路、
线家电遥控课程设计单片机控制的红外遥控器 24(楷体 _GB2312,五号)第一章 设计思想及及器件选择第一节 红外遥控器设计思想 红外遥控技术简介 60 年代初,一些发达国家开始研究民用产品的遥控技术,但由于受当时技术条件的限制,遥控技术发展很缓慢。 70年代末,随特现汲雕纸阐岭较矢怪峪异恬弛禹漫皱赤媒比贺痕锥踊御乖地搓厅姨从之学颁宿奥疙冀矢刑朱旺泅衙冉盅林煎涩西贡堑阵嚼豁刺镀慕小气篙雌宋赞
DEC R1 INC R7 DJNZ R6, L1 START: ORL P2, 0FFH MOV R4, 06 MOV R0, 36H CLEAR: MOV @R0, 00H INC R0 DJNZ R4, CLEAR L2: MOV R3, 0F7H MOV R1, 0 L3: MOV A, R3 MOV P1, A MOV A, P1 MOV R4, A CLR C CPL C MOV
,只要当键盘上有键盘闭合时就产生中断请求,向 CPU 申请中断后,立即对键盘上有操作的键盘进性扫描,识别闭合键,并做相应的处理。 如图 22所示。 图 24b 行列式 盘 0 1 2 3 4 5 6 7 8 9 A B C D E F P P P P P P P P 洛阳理工学院毕业设计(论文) 10 根据以上的论述,采用方案一,在本系统中采用了独立式键盘,其按键比较少