当前位置:首页 > 单片机原理及应用实习报告
CS4 D/A变换 直流电机模块 (5)直流电机模块:由直流电机和D/A转换电路组成。实验仪的D/A
变换可输出-8V到+8V的电压,将电压经驱动后加在直流电机上,
使其运转。通过单片机输出数据到D/A变换电路,控制电压的正负,使电机正传、反转,模拟制冷制热。
液 晶 显 示 屏 液晶屏显示模块
(6)LCD液晶屏显示模块:液晶显示屏内置控制器为SED1520,点阵
为122x32,需要两片,由E1、E2选通,控制左右两半屏,采用直接控制方式,即将液晶显示模块的接口作为存储器直接挂在计算机总线上。计算机通过地址译码控制 E1和 E2的选通;读/写操作信号 R/W由地址线 A1控制;命令/数据寄存器选择信号 AO由地址线 A0控制。
P1.0
(7)蜂鸣器模块:与单片机的P1.0口连接,当设定温度与室内实际
温度相等时,电机停止工作,同时蜂鸣器发出声音提醒。
3、主要原程序流程图: 开始
初始化温度参数
液晶屏函数调用 液晶屏显示 读键盘 大于 电机反转 制冷 LED0亮 显示温度 当前温度和设定 温度送显示缓冲 采样当前温度 当前温度与设定温度比较 相等 电机停止工作 LED灯灭 蜂鸣器报警 小于 电机正转 制热 LED1亮 键盘值是? NEXT键 LAST键
主程序工作时,数码管首先显示当前温度和设定的初始温度25℃,同时液晶屏显示第一行系统名称“自动化空调系统”第二行显示“制冷”或“制热”(根据初始温度与当前温度比较而定),此时电机开始转。随后按键盘调整设定温度,根据框图中的比较方式确定系统状态,在一次程序运行完成后,继续循环到程序开头运行。
4、技术小结与心得:
通过这次单片机的应用实习,我发现对单片机系统的设计要求对
单片机的硬件结构和功能有很好的了解。特别是在软件程序设计过程中,单片机的内部RAM、ROM、寄存器、地址,以及外部的接口管脚的功能等,作为程序设计人员必须了然于心。刚开始设计程序时,我比较关心程序的算法,反倒对单片机的硬件结构不是很在意,结果程序的算法没什么问题,但当在单片机上运行时与硬件的结合不好,如管脚定义错误、地址重复、片选错误等等,很多设计好的功能不能实现。经过老师的提醒,我开始查51、8255等所需单片机的数据手册。在充分了解它们的结构后开始修改程序,最终程序设计的功能得到了比较好的实现。同时,各个模块的组合也是一个难点,必须考虑到各
个模块的接口和地址不能重复,不能相互影响,要注意在一个程序中只能有一个主函数,各个模块的主函数要在主程序中进行调用。在这次实习中,老师也说了,最好开始时用汇编语言编程,以了解硬件,然后再翻译成C语言程序。但由于实习时间和自身编程水平的局限,我一开始就使用的C语言,对汇编语言用的较少,我觉得在以后的各种实习过程中我应当注意多使用汇编语言,以掌握最基本的编程工具的使用方法。
5、收获与体会:
这次的单片机原理及应用实习,我觉得我有以下几点收获:
(1)在整合程序时,并不是把各个模块简单链接起来就行,往往需
要把某些模块拆开,重新嵌套入整合程序中(常常需要在主程序中进行调用),这样才能实现它的功能,说明程序的调用和嵌套要灵活,不能生搬硬套,要能在理解程序的基础上有所创新。 (2)延时的巧妙应用。在数码管显示、键盘扫描、直流电机、蜂鸣
器等模块均用到了延时程序。其中键盘扫描中的延时程序必不可少,它起到了键盘去抖的作用。我在进行数码管显示模块的编程时,延时时间设定少了,结果导致数码管不能稳定显示,一直在扫描。经过老师的指导,我将延时时间延长,随后数码管便能正常显示了。我认为延时程序是一个重要的程序模块,以后要加强学习和应用。
(3)最后,通过这一星期的软件部分的实习,我学会了使用KEIL、
共分享92篇相关文档