基于at89c51单片机的智能万年历设计_毕业论文设计(编辑修改稿)内容摘要:
1,32H,22H,00H( 2032) 30,55H,02H,71H( 2033) 49,55H,22H,00H( 2034) 38,26H,62H,00H( 2035) 27,13H,64H,60H( 2036) 45,13H,32H,00H( 2037) 34,12H,55H,00H( 2038) 23,10H,53H,51H( 2039) 42,22H,45H,00H( 2040) 31,52H,22H,00H( 2041) 21,52H,44H,21H( 2042) 40,55H,44H,00H( 2043) 29,26H,50H,71H( 2044) 47,26H,64H,00H( 2045) 36,25H,32H,00H( 2046) 25,23H,32H,50H( 2047) 44,44H,55H,00H( 2048) 32,24H,45H,00H( 2049) 22,55H,11H,30H( 2050) 有了算法和数据后就可以设计软件了。 先要根据当前阳历的日期,算出阳历位该年中的第几天。 图 6 所示为计算阳历中任何一天在该年中为第几天的流程图。 计算出阳历总天数后就可以根据它来推算阴历日期。 推算方法是,先用总天数减去春节和元旦的日差,如果结果为 1,则改天正好是春节(因为春节在元旦之后,在计算春节和元旦日差时,假设元旦为 0 天,春节为 n 天,则日差位 n,而前面计算的引力总天数是该天在该年中的第几天,是以元旦为 1 而得到的,与计算春节和元旦日差这种方法相比,其数值少了 1,所以要在原来本应该以 0 作为该天就是春节的依据的基础上加 1,即以 1 作为该天是春节的标志);如果结果小于 1,则引力应该是阳历的前一年;如果结果大于 1,说明阳历和阴历为同一年。 再根据查表所的的该年的阴历的闰月和大小月的信息,就可以推算出该天的阴历日期了。 图 7 所示 为有总天数推算出阴历日期的程序流程图。 红外遥控模块 设计方案 采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点。 红外遥控设计是本设计的核心部分,是体现智能的模块之一,因此采用 AT89C2051 芯片作为红外遥控发射部分的控制芯片。 本单片机遥控应用系统采用红外线脉冲个数编码,单片机软件解码,实现了对智能万年历设置的远程控制,使我们更加接近智能的家居生活。 遥控系统电路分遥控发射电路和遥控接收电路两部分组成。 图 9 是该应用系统的遥控设计原理框图及接收控制系统设计 原理框图。 遥控发射器的设计 遥控信息码由 AT89C2051 单片机的定时器 1 中断产生 40KHz红外线方波信号,由 口输出,经过三极管 9013 放大,有红外线发射管发送。 改变电阻R3 的大小可以改变发射距离。 图 10 为遥控发射电路。 遥控采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为 2 个脉冲最 图 6 计算阳历天数程序流程图 大为 17 个脉冲。 为了使接收可靠,第一位码宽为 3ms,其余为 1ms,遥控码数据间隔大于 10ms。 当某 个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,在调制成 40KHz 方波有红外线发光管发射出去。 遥控发射器主程序、键扫描程序、遥控码发射程序流程图如图 11 所示。 遥控码的编码格式 遥控码采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为 2 个脉计算阳历天数结束,总天数中的数据位当前日期所在阳历年中第几天 置阳历总天数为 0 当 前 月 为1。 总天数中加入该月天数 月数加 1 与 当 前 月 相同。 当前号数是总天数 总天数中加入号数 Y Y N N 冲,最大为 17 个脉冲。 为了使接受可靠,第一位马宽位 3ms,其余为 1ms,遥 图 7 推算阴历日期的程序流程图 控码数据帧间隔大于 10ms。 当某个操作按键按下时,单片机先读出 键值,然后根据键值设定遥控码的脉冲个数,再调制成 40KHz 方波由红外线发光管发射出去。 端口的输出调制波形如图 8 所示。 遥控接收系统的设计 红外遥控是本设计的核心部分,是体现智能的关键部分之一,因此红外遥控部分也可以让我作为设计者做论文浓重的一笔。 红外遥控接收部分采用38KHZ 的红外接收头,价格低廉,可靠性好。 遥控器发射的红外信号经红外接收处理传给单片机,单片机根据不同的信息码对万年历设置进行操作。 当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。 在数据帧 接收时,将对一位(起始位)码的码宽进行验证,若第一位低电平码的脉宽小于 2ms,将作为错误码处理,当间隔位的高电平脉宽大于 3ms 是,结束接收,然后根据累加器 A 中的脉冲个数,执行相应输出口的操作。 图 12 所示为红程序入口 R2 减 1 个月的天数 够减。 下 个 月 为 闰月。 减去闰月天数 月加 1 R3=0。 R2=R2+R3 R3=0 R2=0? 月份为当前正在建的月份的前一个月的最后一天 月份为当前正在减的月份,号数为 R2 中的值 Y N Y N Y N Y N 外线接收器输出的一帧遥控码波形。 显示模块 设计方案 显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路, 图 8 端口输出编码波形图 图 9 单片机 遥控器设计 考虑到一次扫描 21 位数码管显示时会出现闪烁秦光,设计时 21 个数码管分 3 排同时扫描。 显示时采用串行口输出数码段,用 3 片 74LS164 来驱动 3 排数码管,这样一次扫描只需 7ms。 74LS164 内部位 8 个 D 触发器,用以实现数据的串行移位。 74LS164 的特性如表 5 所列,单片机以串行口方式 0(移位寄存器方式)输出数据, 3 片 74LS164AT89C2051单片机 红外发射电路 独立键盘 +5V 电源 U t MENU 键遥控输出波形 t 移位键遥控输出波形 U U t 加 1 键遥控输出波形 U t 语音报时键遥控输出波形 3ms 作为 3 排数码管的串 /并转换显示接口。 74LS164 位 TTL单项 8 位移位寄存器, 10GND9P 3. 58P 3. 47P 3. 36P 3. 25X T A L 14X T A L 23P 3. 12P 3. 01R S T11P 3. 712P 1. 013P 1. 114P 1. 215P 1. 316P 1. 417P 1. 518P 1. 619P 1. 720V C C89 C 20 51V C CS1R S T 10uF10K12M30pF30pFV C C 红外线发射管9013N P N 3M E N U 1S2左移 S3右移 S4加 1 S5减 1 S6V C C 图 10 遥控发射电路 图 11 遥控发射器主程序、键扫描程序、遥控码发射程序流程图 图 12 红外线接收器输出的一帧遥控码波形 可实现串行输入,并行输出。 其中 A、 B 位串行数据输入端,两个引脚按逻辑与运算规律输入信号,只有一个输入信号时可并接,共同作为输入脚。 CP 位时钟输入端,可连接到串行口的 TXD 端。 每一个时钟信号的上升沿加到 CP 端时,10ms 3ms 10ms 开始 初始化 按键号转至相应的发射程序 装入发射脉冲个数 发 3ms 脉冲 停发 1ms 发完。 发 1ms 脉冲 停发 1ms 返回 Y 键盘按下。 N Y N 移位寄存器移一位。 8 个时钟脉冲过后, 8 位二进制数全部移入 74LS164 中。 MR 表 5 74LS164 特性表 操作模式 输入 输出 复位 MR A B Q0 Q1~ Q7 移位 L / / L Q0~ Q6 H L L L Q0~ Q6 H L H L Q0~ Q6 H H L L Q0~ Q6 H H H H Q0~ Q6 脚位复位端,当该脚位低电平时,移位寄存器各位复 0;只有当它为高电平时,时钟脉冲才起作用。 Q1~ Q8 并行输出端分别接数码管的 h、 g、 f、 e、 d、 c、 b、a 各段对应的引脚上。 在给出了 8 个脉冲后,最先进入 74LS164 的第一字节数据到达了最高位。 再来一个脉冲,第一个脉冲就会从最高位移出,进入下个 74LS164的第一位。 3 片 74LS164 首尾相串,而始终端则接在一起。 这样,当输入 8 个脉冲时,从单片机 RXD 端输出的第一字节数据就进入到了第一篇 74LS164 中,而当第二个 8 个脉冲到来后,第一字节数据就进入了第二片 74LS164,而随后的第二字节的数据则进入了第一片 74LS164。 这样,当第三次 8 个脉冲完成后,首次送出的数据被送到了最下面的 164中,其他数据一次出现在第二、第一片 74LS164中,实现了数据在 74LS164 中的串行输入、并行输出。 在方式 0 状态下,串行口为同步移位寄存器方式,其波特率是固定的 ,为fosc/12;数据有 RXD 端输入或输出,同步移位脉冲有 TXD 端输出;发送、接收数据时,低位在先。 因此,根据本章节下面提供的硬件电路图,在编写程序时, 表 6 共阳极数码管字形编码表 显示 数字 共阳顺序小数点暗 Dp g f e d c b a 16 进制 0 0 1 0 0 0 0 0 0 40H 1 0 1 1 1 1 0 0 1 79H 2 0 0 1 0 0 1 0 0 24H 3 0 0 1 1 0 0 0 0 30H 4 0 0 0 1 1 0 0 1 19H 5 0 0 0 1 1 0 1 0 12H 6 0 0 0 0 0 0 1 0 02H 7 0 1 1 1 1 0 0 0 78H 8 0 0 0 0 0 0 0 0 00H 9 0 0 0 1 1 0 0 0 10H 查共阳极数码管的数断码的二进制数据应该将正常的共阳极数码管 0~ 9 的二进制值按位反序排列。 共阳极数码管字形编码如表 6 所示。 共阳极数码管的 8个发光二极管的阳极(二极管正端)连接在一起。 通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。 当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。 根据发光字段的不同组合可显示出各种数字或字符。 此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 显示电路的设计 根据系统设计的要求,本电路采用 21 位共阳极数码管作为显示,通过 3 片74LS164 进行串 /并行输出,电路图如图 13 所示。 V C C345610111213981274LS164345610111213981274LS164345610111213981274LS164a1b2c3d4e5f6g7dp8GND9年千位a1b2c3d4e5f6g7dp8GND9年百位a1b2c3d4e5f6g7dp8GND9年十位a1b2c3d4e5f6g7dp8GND9年个位a1b2c3d4e5f6g7dp8GND9月十位a1b2c3d4e5f6g7dp8GND9月个位a1b2c3d4e5f6g7dp8GND9日十位a1b2c3d4e5f6g7dp8GND9日个位a1b2c3d4e5f6g7dp8GND9时十位a1b2c3d4e5f6g7dp8GND9时个位a1b2c3d4e5f6g7dp8GND9分十位a1b2c3d4e5f6g7dp8GND9分个位a1。基于at89c51单片机的智能万年历设计_毕业论文设计(编辑修改稿)
相关推荐
L 的 AT89C51是一种高效微控制器, AT89C2051是它的一种精简版本。 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图 44 AT89C51引脚图 电源电路 78系列集成稳压器是常用的固定输出电压的集成稳压器。 它的内部含有限流保护,采用了噪声低,温度漂移小的基准电压源,工作稳定可靠。 78系列集成稳压器为三端器件: 1脚为输入端, 2脚为接地端,
整时间功能模块,抢答功能模块以及报警功能模块。 各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。 各软件模块首先要通过 PC 和仿真器进行软件调试,当仿真效果符合要求后在烧写进单片机看是否在实际电路板上正常工作。 本设计通过利用 Proteus 仿真,将所编写的程序用 wave 软件编译,所仿真原理图见 下图。 图 5 proteus仿真图
云南农业职业技术学院 5 Session 内的用户信息,该信息仅可被该用户访问在一个 ASPApplication 中让不同的客户端共享信息可以用来配合 Microsoft Transaction 服务器进行分布式事务处理。 ⑤ ASP 的工作原理 当用户浏览网页时,客户端浏览器与 WEB 站点之间进行交互的过程如下图所示: 图 1 ASP 工作原理 当服务器看到文件的扩展名为 .asp 时
4液晶显示器以及 2132 芯片,最终实现了垃圾桶的智能化。 通过 这次嵌入式课程设计,我认识到学好编程的重要性,真正理解了控制电机带来的好处。 同时也学会了如何发挥团队合作精神,只有团结合作,才能更快更好学习应用知识。 杨冬: 在大四第一学期的末尾学校给我们专业安排了为期两周的 ARM 实习课程。 因为在这学期自己作为一个大四学生也参加了各种各样的招聘会,深知实践对于自我的重要性
图 5 系统方框图 主控电路 本设计的两轮自平衡小车采用 K60N512VM100 单片机为主控芯片。 Kiis k60 是基于ARM CortexM4 具有 超强可扩展性的低功耗、混合信号微控制器。 主控及其外围电路如图6 所示 图 6 主控芯片 编码器电路 K60 主控芯片 电机驱动 加速度传感 器MMA7260 陀螺仪L3G4200 状态显示 7 K60N512VM100 芯片电源类引脚,
施工期间修建临时排水沟。 ⑵临时排水设施与永久性排水设施相结合,流水不得排于农田、耕地,污染自然水源,也不得引起淤积和冲刷。 ⑶路堑施工时注意经常维修排水沟道,保证流水畅通。 渗水性土质或急流冲刷地段的排水沟应予以加固,防渗防冲。 水文地质不良地段,必须严格搞好堑顶排水。 ⑷引走一切可能影响边坡稳定的地面水和地下水,在路堑的线路方向上保持一定的纵向坡度(单向或双向)以利排水。 三、土方路堑的开挖