目录摘要 (I)Abstract (II)1.任务要求及说明 (1)2. 硬件电路原理与设计 (3)2.1硬件电路原理 (3)2.1.1最小系统 (3)2.2数码管显示电路 (6)图4 数码管显示电路图 (6)2.3串口通信电路 (7)2.4矩阵键盘电路 (8)3 软件设计 (9)3.1软件介绍 (9)3.1.1程序编写软件Keil (9)3.1.2仿真软件Proteus (9)3.2软件设计 (9)3.2.1 数码管显示设计 (10)3.2.2串行通信接收程序 (10)4. 仿真与调试 (12)4.1数据输入与显示仿真结果 (12)4.2数字移位和串口仿真结果 (13)5. 小结与体会 (14)6.参考文献 (15)附录1:C语言源程序 (16)附录2:元件清单 (27)附录3:实物图 (28)摘要单片机最小系统,无论对单片机初学人员还是开发人员都具有十分重要的意义,可以利用最小系统进行编程实现工业控制。
单片机最小系统电路板在单片机开发市场和大学生电子设计方面十分流行。
本次课程设计包括STC89S52电路及供电系统、4×4矩阵键盘、独立6个8段LED数码管显示电路以及DS18B20温度传感器。
利用相关Keil软件编程以及Proteus借此巩固单片机应用、模拟电路、数字电路课程及学会各种工程软件的使用。
关键字:单片机最小系统矩阵键盘 Protues keilAbstractMCU minimum system,regardless of the singlechip novice staff or staff development,who can use minimum system program for industrial control,has very important sense.MCU minimum system board in the MCU develop market and college students electronic design is very popular. The curriculum design, including STC89S52MCU minimum system ( including a reset and clock circuit and power supply system ),4 x4 matrix keyboard, the independent 6 LED digital tube display circuit and a DS18B20 temperature sensor. Using circuit design software schematic design, using Keil software and Protues software simulation, we consolidate the MCU application, analog circuit, digital circuit course and learn all kinds of engineering software use.Key Words:MCU minimum system matrix keyboard Keil Protues1.任务要求及说明(1)键盘一个4X4的矩阵键盘,其中,10个按键是0~9数字键;另外6个是功能键,用于功能选择和控制,如“数据输入”、“数据显示”、“串行通信”功能选择键,以及“回车”、“清除”、控制键。
(2)显示电路由6个7段LED数码管组成的显示电路。
(3)串口串行通信利用51的串口实现串行通信接口电路。
完成ISP下载电路的设计、焊接完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计,实现如下功能(1)功能选择通过功能选择键,使得单片机处于不同的工作状态并通过LED显示相应的内容;可选择的功能包括:数据输入;数据显示;串口通信(2)数据输入通过功能选择键选择“数据输入”后,可分次输入10个4位十进制数据,并将输入的数据保存在内部RAM中。
数据输入要求:1)第一步输入序号0~9,表明输入的是第几个4位十进制数据;2)第二步按下回车键,完成序号输入;3)第三步输入最多4位的十进制数据;4)第四步按下回车键,完成数据输入;5)重复第一步,开始新数据的输入;6)输入数据的显示格式是:最左边是序号,然后是空格,之后是从右到左的最多4位十进制数;7)若在输入过程中(第一步或第三步)出现错误,按“清除”键,重新从第一步开始输入数据。
或者,自己设计10个十进制数的输入及显示方式。
(3)数据显示通过功能选择键选择“数据显示”后,可显示之前输入的10个4位十进制数据中的任一个,要求:1)第一步输入序号0~9,表明显示的是第几个4位十进制数据;2)第二步显示相应的数据;3)重复第一步、第二步,显示其他的数据;4)数据的显示格式是:最左边是序号,然后是空格,之后是要显示的数据,从右到左最多4位十进制数。
或者,自己设计数据的显示方式。
(4)数据通信将两个单片机最小系统通过串口连接起来,其中一个作为主系统,另一个作为辅系统。
当通过功能选择键选择“串行通信”后,当在主系统上按下数字键后主系统的LED按从左向右移东的方式显示按键输入的数字,同时辅系统的LED上显示与主系统同样的内容。
(5)利用仿真软件完成系统仿真工作(6)在单片机最小系统硬件上实现任务3中规定的功能2.硬件电路原理与设计2.1硬件电路原理2.1.1最小系统单片机最小系统包括振荡器电路,复位电路,单片机EA端接高电平(Vcc),P0口需要接上拉电阻(10K)。
振荡器电路选用12MHz晶振,两个30pf电容,振荡器电路接单片机XTAL1和XTAL2引脚。
单片机最小系统原理图如下。
图1 单片机最小系统1、MCU控制器简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
2.复位电路单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
复位电路由按键复位和上电复位两部分组成。
①上电复位STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K 和10uF。
②按键复位按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
电路图如图2所示图2 按键复位电路3.振荡电路单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
其电路原理图如3所示。
图3 晶体振荡电路2.2数码管显示电路LED数码管显示是利用半导体发光制成条形的发光二极管,封装在一起组成数字或其他符号形状。
数码管根据公共端不同,分为共阴极和共阳极两种形式。
根据设计需要,本次选用共阴极数码管。
由于一个数码管不能实现多位数显示,同时从节省I/O端口考虑,结合数电知识,利用两片74HC573扩展单片机的IO口,两片74HC573的输出分别接6位7段共阴数码管的段选端和公共端。
74HC573是8数据锁存器。
主要用于数码管、按键等等的控制,其输出受输出允许端OE 和锁存允许端LE的控制,当LE为高时锁存器输出为高阻态,当OE为低,LE也为低时,输入端的信号输出到输出端。
图4 数码管显示电路图2.3串口通信电路串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:地线、发送、接收。