基于AT8989CC5151单片机的多功能电子万年历

单片机课程设计多功能万年历1需求分析本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。图5-4所用器件单片机课程设计多功能万年历全文共12页,当前为第5页。图5-5at89c51与ds1302的连接单片机课程设计多功能万年历全文共12页,当前为第6页。

《单片机多功能万年历课程设计》全文共12页,当前页为第2页。定时器定时设置子程序:设置一个每3s调整一次的时间循环,总共调用并设置一个时间每0.5s调整一次的循环,总共调用一次,并设置其工作在定时器0工作模式1TMOD=0x01; 打开总中断设置为每3s调整一次的时间周期,总调用设置为每0.5s调整一次的时间周期。 总调用设置工作在定时器0工作模式1TMOD=0x01; 总中断在年份显示中设置。 闰年判断语句: //判断闰年,leap=1表示闰年

Leap=(nian%4==0&&nian0!=0)||(nian%400==0)?1:0;//整点自动报时 if((fen1==0&&fen2==0&&miao1==0&&miao2= =0 )&&kaiguan==1)3 运行环境 Protues软件模拟。 4 开发工具和编程语言通过PROTEUSISIS软件的VSM(虚拟仿真技术),用户可以仿真模拟电路、数字电路、模数混合电路以及基于微控制器的系统以及所有外围接口电子元件。 用PROTEUSISIS设计硬件电路的流程 ①选择设计图纸到《小型单片机课程设计多功能万年历》中。 全文共12页,当前页为第3页。根据设计中使用的元件数量,选择合适尺寸的设计图。 操作方法是点击菜单栏上的“系统”→“设置图纸尺寸”,会弹出如图5-1所示的对话框,从中选择合适尺寸的图纸。 您可以选择“用户”来自定义绘图。 您还可以通过这种方法在设计过程中调整图纸的尺寸。 《多功能万年历微控制器课程设计》全文共12页,当前页为第3页。 图5-1 ② 选择仿真所需的元件。 选择元件的方法是点击“P”按钮,如图5-2所示。 弹出如图5-3所示窗口。 图5-2 单片机课程设计多功能万年历全文共12页,当前页为第4页。

《单片机多功能万年历课程设计》全文共12页,当前页为第4页。 图5-3 从“关键字”中输入电子万年历设计中使用的元件该窗口的左上角。 例如,输入“AT89C51”。 带有输入关键字的组件将列在中间。 选择适当的组件并双击它。 如果是,则该组件已被选择。 然后在“关键字”中输入其他需要的组件,以同样的方式操作。 最后,选择所有组件,如图5-4所示。 图 5-4 单片机课程设计中使用的器件 多功能万年历 全文共 12 页,当前页为第 5 页。其中,74LS174 代表三个串行接口,AT89C51 代表单片机,DS1302 代表时钟芯片,RESPACK-8代表八排电阻。 《多功能万年历单片机课程设计》全文共12页,当前页为第5页。 ③将元件放置在图纸上合适的位置,进行接线,点击元件AT89C51如图如图5-4所示,然后单击右侧的绘图,将元件放置在绘图上。 然后用同样的方法将ds1302放置到图纸上合适的位置。 如果元件放置不正确,可以通过右键单击两次来删除已放置的元件。 如果位置不理想,可以先右键单击该元件,然后按住左键移动。 接线前,如果感觉元件管脚方向不好走线,可以通过点击这四个按钮进行调整。 这四个按钮的含义分别是:顺时针旋转90°、逆时针旋转90°、沿Y轴对称旋转、沿X轴对称旋转。

通过这样的调整,可以使整个布局更加合理。 然后继续接线。 由于PROTEUSISIS具有自动接线的功能,例如要将AT89C51的P2口连接到74LS164的OUT8口,只需先点击P2引脚,然后点击OUT8引脚,ISIS会自动连接 两个引脚在线连接。 图 5-5 at89c51 与 ds1302 单片机连接 课程设计 多功能万年历 全文共 12 页,当前页为第 6 页。ISIS 还提供网络布线,可以虚拟连接两个引脚,无需使用连线。 具体操作为:点击需要连接的引脚,连接适当距离后双击,其他引脚同样操作,点击“LBL”按钮如图6-5,然后点击A P0.1 引脚的名称,在弹出窗口的“String”中填入名称,如“A”,对 OUT7 引脚进行同样的操作,在“String”中也填入名称“A” 》》这样就完成了P3.4引脚与RES引脚之间的网络连接,这样的优点避免了两个相距较远的设备之间的实线连接,使布线美观。多功能永动机全文《单片机日历课程设计》共12页,当前页为第6页。 ④在编辑窗口中连接端子,要成功模拟最终设计,必须放置并连接端子,选择,即可选择电路原理中有两个公共端,一个是地,一个是电源,如图5-6所示。

图 5-6 使用 PROTEUSISIS 连接终端进行电子万年历模拟测试 ① 添加 Keil 编写的代码文件,点击工具栏中的 Source→Add/RemoveSourcefiles…,弹出对话框,分别点击“New”,然后选择Keil编写的数字电压表.ASM汇编语言程序,点击“确定”完成代码文件的添加。 ②编译源程序,生成.HEX目标代码文件。 《单片机课程设计多功能万年历》全文共12页,当前页为第7页。点击Source→BuildAll。 如果编译结果没有错误,则会出现如图5-8所示的结果。 《单片机多功能万年历课程设计》全文共12页,当前页为第7页。 图5-8 ③加载.HEX目标代码文件。 通过图5-9所示的对话框,选择刚刚编译生成的.HEX文件。 将微控制器的工作频率设置为6MHz。 图 5-9 单片机课程设计 多功能万年历 全文共 12 页,当前页数为第 8 页。 《单片机多功能万年历课程设计》全文共 12 页,当前页数为 8 页。当前页为第8 页。 ⑤ PROTEUS 的调试功能采用汇编语言编写的程序。 如果测量时测量值显示错误,则说明程序有问题。 这个问题只有在模拟测量时才能发现。 这时就可以使用PROTEUS来调试程序了。 进行调试。 单击该按钮,然后单击菜单栏中的“调试”。 可以选择在底部打开内存观察窗口、寄存器值观察窗口、汇编语言源代码窗口等。

在汇编语言源代码窗口中,也可以在需要设置断点的语句前双击设置断点。 设置断点时,程序会运行到设置的断点处并停止,从而可以设置内存、寄存器等的值。 进行修改以找出程序哪里出错了。 5. 详细设计源程序名称列表。 main.c文件: voiddelay_ms(t)/*对于12M时钟,延迟1ms左右*/voidMusic(z)//语音芯片驱动 voidmain()//主函数 LCD12864.c文件(液晶显示) voiddelayNOP() //延时4usbitlcd_busy()//检查LCD忙状态 voidwrite_cmd(ucharcmd)//向LCD写入命令数据 voidlcd_wdat(uchardat)//向LCD写入显示数据 voidlcd_init()//LCD初始化设置 voidlcd_pos(ucharX,ucharY)//设置 定义显示位置 voiddisplay()//主显示程序 DS18B20.c 文件(温度检测) voiddsreset(void)//DS18B20 复位,初始化 bittempreadbit(void)//读取一位数据 uchartempread(void)//读取一位byte ( 8 位) voidtempwritebyte(uchardat)//向 DS18B20 单片机写入一个字节数据 多功能万年历课程设计 全文共 12 页,目前为第 9 页。

voidtempchange(void)//开始获取温度并转换微控制器过程设计多功能万年历。 全文共12页,当前页为第9页。 uintget_temp()//获取温度 voiddisplay2(uinti)//数据格式转换 voidtemper()//显示温度 DS1302.c文件(时钟芯片) voiddelay (intms)//延时 xmsvoidWriteByte(ucharCommand,ucharWriteData)//写入位数据 ucharReadByte(ucharCommand)//从 DS1302 读取一字节数据,地址为命令字节 voidEdit(ucharflag)//时间日期编辑程序 voidKeyFun() //按钮功能function voidReadDS1302()//读取DS1302的秒、分、时、日、月、周、年 voiddate_change()//数据格式转换timer.c文件(定时器计时) voidTimer0Init()//定时器初始化voidTime0Isr(void)interrupt1//定时器0中断函数 6 调试分析电子设备 成人万年历是一种多功能数字仪表,可以读取当前日期(农历、阳历)、时间、温度。

电子年历的功能较多,因此其程序也比较复杂,因此在编写程序和调试时遇到的问题也比较多。 最后,经过多次修改模块子程序并一步一步完成,软件终于解决了。 软件调试时遇到的主要问题如下: 1、程序烧入后,LED数码管显示闪烁,亮度不均匀。 解决方案:首先,逐步修改通话延迟,解决显示闪烁问题。 其次,由于本作品采用动态扫描的方式来显示数字,动态扫描速度非常快,肉眼无法看到。 但是,当调用显示程序时,如果返回时没有阻塞最后添加的值,就会出现很多问题。 问题就明了,于是我在显示器后面添加了一个屏蔽子命令,终于解决了这个问题。 2.修改时间日期时,没有农历,没有自动对应。 解决办法:暂时屏蔽无关程序,独立调试本地农历的子程序。 发现调用农历自动更新时,没有很好的处理十进制和十六进制,所以会造成混乱。 最后修改了对应的十进制,使其能够对应十六进制,这个问题终于解决了。 《单片机多功能万年历课程设计》全文共12页,目前第10页。 7 测试结果 《单片机多功能万年历课程设计》全文共12页,当前页数第10页。《多功能万年历微控制器课程设计》全文共12页,当前页为第11页。

《多功能万年历微控制器课程设计》全文共12页,当前页数为第11页。 8 参考文献 [1] 朱善军、孙新亚、季银东主编。 微控制器接口技术及应用。 北京:清华大学出版社,2005 [2]王福瑞等主编。 单片机测控系统设计百科全书。 北京:北京航空航天大学出版社,2004[3]季顺新等主编。 微控制器的C语言应用程序设计。 北京:北京航空航天大学出版社,1999年经历 经过近两周的努力,我终于完成了这门课程设计,从中我学到了很多知识和动手能力,深刻体会到了单片机的强大和实用性。 在编程过程中,由于思路不清晰,一开始就遇到了很多问题。 静下心来思考后,我理清了自己的思路,终于能够搞定了。 在这次设计中我学到了做任何事情都要有一颗平常心,不要想着走捷径,一步一步走好。 它还培养了我们的耐心,我们对所做的一切都充满耐心。 我从这个设计中学到了很多东西。 这是最重要的单片机课程设计。 多功能万年历全文共12页,当前页码为第12页。《微控制器多功能万年历课程设计》全文共12页,当前页码为第12页。

单片机

江苏扬州人,西北电业职工大学单片机原理及应用课程

2024-2-7 16:05:39

单片机

最小系统是啥?单片机、晶振电路、复位电路

2024-2-7 17:05:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索