课程设计-基于at89c51单片机的花样彩灯仿真分析内容摘要:

些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision MPLAB等软件。 ( 4) 具有强大的原理图绘制功能。 总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大。 是目前最好的模拟单片机外围器件的工具 , 可以仿真 51 系列、 AVR、 PIC等常用的 MCU 及其外围电路 ( 如 LCD、 RAM、 ROM、 键盘 、 马达 、 LED、 AD/DA、 部分 SPI器件 、 部分 IIC 器件 等 )。 软件编译采用 KEIL C51 软件 , Keil C51 是美国 Keil Software 公司出品的 51系列兼容单片机 C语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。 仿 真结果 先按复位键,系统初始化, 然后 8 个 LED 开始按照要求闪烁,分别按下列模块点亮: 模块 1:循环单向闪烁,只有一个灯亮 模块 2:循环单向闪烁,只有两个灯亮 模块 3:循环往复闪烁,只有一个灯亮 模块 4:全亮全灭 模块 5:顺次点亮或者熄灭, 多个灯亮 9 模块 6:顺次点亮或者熄灭,多个灯亮,一次点亮两个 模块 7:双端对称往返闪烁 系统 调试 在调试过程中主要是对程序的修改,特别是延时子程序。 开始延时较短时,当按下开关 时, LED 开始闪烁。 如果延时较长则 LED 闪烁更慢。 通过修改程序,将延时 调到适中 ,系统正 常工作。 误差分析 设定预设值后, 记录模式一的数据, 每次送出的数据是不同,具体的数据如下表 1所示 说明 L8 L7 L6 L5 L4 L3 L2 L1 1 1 1 1 1 1 1 0 L1 亮 1 1 1 1 1 1 0 1 L2 亮 1 1 1 1 1 0 1 1 L3 亮 1 1 1 1 0 1 1 1 L4 亮 1 1 1 0 1 1 1 1 L5 亮 1 1 0 1 1 1 1 1 L6 亮 1 0 1 1 1 1 1 1 L7 亮 0 1 1 1 1 1 1 1 L8 亮 后面几种模式的实验结果基本和理论值一样,没什么误差。 10 结束语 该 设计 是以 AT89C51 单片机为主控 芯片 ,与发光二极管、晶振 电路 、复位 电路和电源 电路组成, 通过 程序 控制彩灯流水花样。 本文所给程序实现的功能比较简单,旨在抛砖引玉,可以在此基础上扩展 成 更复杂的 彩 灯控制,比如键盘控制流水花样、控制流水灯显示数字或图案等等。 通过花样彩灯的制作,给我最大的体会是对一个程序整体的把握和控制,只有将子程序有效的结合起来,才能完成设计 的目的。 另外,在程序的调试过程中,我也遇到了很多意想不到的困难,在老师的帮助和自己的不懈努力下,我对伟福这款仿真软件有了更深的认识,将困难一一克服,使程序编译成功,仿真实现。 附录:程序清单 include define uint unsigned int void delay(uint)。 main() { uint fre=0x04。 uint fre1,fre2。 uint p1=0xfe,p2=0x80。 while(1) { /* 模块一:循环单向闪烁,只有一个灯亮 执行 3次,转入下一种闪烁 */ P1=0xfe。 while(1!=fre) { 11 fre1=0x08。 while(1!=fre1) { delay(30000)。 P1=1。 P1|=0x01。 if(P1==0x7f) { delay(30000)。 P1=0xfe。 } } } /* 模块 2:循环单向闪烁,只有两个灯亮 3 次,转入下一种闪烁执行 */ P1=0xfc。 while(3!=fre++) { fre2=。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。