系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常”、“繁忙”、“特殊”可相互转化。
这里用到了二极管做开关,是为了防止有一按键被按下3根线同时低, 中断无效。二极管在正向电压作用下电阻很小,处于导通状态,相当于一只接通的开关;在反向电压作用下,电阻很大,处于截止状态,如同一只断开的开关。利用二极管的开关特性,可以组成各种逻辑电路。
图11 按键电路
3.7电子秒表系统电路图
图12 简易交通灯控制逻辑电路总电路图
3.8 元器件清单
表1 实验原器件清单表
序号 1 编号 U1 机 七段两位数码2 无 管 D9、D12、D15、D18 3 D7、D11、D14、D16 D4、D5、D6、D7、4 D10、D13、D16 5 6 7 8 9 10 11 D1、D2、D3 R1-R17 C3 C1、C2 无 X1 RP1 普通二极管 电阻 有极性电容 普通电容 按键 晶振 排阻 DIDOE RES/220 CAP-ELEC CAP/22pF BUTTON CRYSTAL RESPACK-8 3 17 1 2 4 1 1 绿发光二极管 LED-GREEN 7 红、黄交通灯 LED-YELLOW LED-RED 各4个 7SEG-MAX2-CC 1 名称 STC89C52单片AT89C52 1 型号/参数 数量
4 简易交通灯控制逻辑电路的仿真实现 4.1 仿真软件介绍
4.1.1 STC89C52简介
STC89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
功能:STC89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节点模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、
串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,指导下一个中断或硬件复位为止。
4.1.2 C语言介绍
C语言是一种通用的计算机程序设计语言,它既可以用来编写计算机的系统程序也可以用来编写一般的应用程序。以前计算机的系统软件主要用汇编语言编写,单片机应用系统更是如此。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用程序不但周期长,而且调试和排错也比较困难,为了提高单片机应用程序的开发效率,改善程序的可读性和可移植性,采用高级语言无疑是一种最好的选择。
C语言既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也较强,许多以前只能采用汇编语言来解决的问题现在都可以用C语言来解决。综上所述,C语言在功能上、结构性、可读性、可维护性上有明显的优势,故本课题采用C语言实现软件功能。
4.1.3 Keil uVision4介绍
本课题采用Keil uVision4软件开发系统,Keil uVision4是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。 Keil uVision4是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision4还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision4提供逻辑分析器,可监控基于MCU的I/O引脚和外设状态变化下的程序变量。
4.1.4 Proteus仿真器介绍
Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51 系列、AVR,PIC 等常用的MCU 及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI 器件,部分IIC 器件,...)。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
4.2 简易交通灯控制逻辑电路仿真实现
本设计是一款的多功能交通灯,采用STC89C52单片机为核心,2位LED数码管显示,本设计采用模块化的设计方法,硬件设计包括单片机模块、显示模块、发光二极管模块、相关控制模块等的模块化设计与制作;整个设计过程是硬件和软件相结合的,并采用C语言编写实现。
根据要求用单片机对其进行控制,取得了以下研究成果: (1)控制系统接线图
(2)控制系统工作原理的阐述
(3)硬件电路的完成 由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,达到了预期设计要求的结果,实现了交通灯3个状态的转化,数码管的倒计时功能,和特殊情况下的交通灯的变化。
图13 简易交通灯控制逻辑电路仿真结果图
5 总结及心得体会
经过两周的努力工作,终于完成了简易交通灯控制逻辑电路的课程设计。虽然设计仿真调试的过程很艰辛,但结果还是好的,看到仿真结果出来,看到交通灯的循环闪烁,心情顿时好起来,调试过程中的种种怨言都没有了。这次课程设计主要是软件仿真,由于器材有限就没有弄硬件部分。在软件的设计与调试过程中,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。可以说再整个软件设计过程中,我感觉又重新学了一次单片机,在学习的过程中不仅学会了延时的两种方法,即软件延时和硬件延时,还