XXXXX 大学单片机最小应用系统
设
计
报
告
指导老师:XXXXX
学生:XXXX
学号:XXXX
XXXXX学院
XXX年XX月
单片机最小应用系统设计报告
一、设计题目 (1)
二、设计内容与要求 (1)
三、设计目的意义 (1)
3.1设计目的 (1)
3.2系统设计意义 (1)
四、系统硬件电路图 (2)
五、系统流程图与源程序 (3)
5.1 系统程序流程图 (3)
5.2 系统汇编源程序 (4)
六、系统功能分析与说明 (4)
6.1 MCS-51单片机结构和原理 (4)
6.2时钟电路 (7)
6.3复位电路 (8)
6.4键盘的工作原理 (9)
6.5独立式按键 (11)
6.6实训设备与元器件 (11)
6.7设计步骤 (12)
6.8电路板的制作 (12)
6.9系统连线说明 (13)
6.10系统PCB图设计 (14)
6.11系统功能分析与说明 (14)
七、设计体会 (15)
八、参考文献 (15)
一、设计题目
按键识别控制
二、设计内容与要求
用8031单片机控制用一键实现多功能按键识别。将开关SP1接P3.7,P1口接四个发光二极管。上电时,接P1.0 的发光二极管亮;按下开关SP1时,接P1.1 的发光二极管亮;再按下开关SP1时,接P1.2 的发光二极管亮;再按下开关SP1时,接P1.3 的发光二极管亮。再按下开关SP1时,接P1.0 的发光二极管亮,如此循环。
三、设计目的意义
3.1设计目的
(1)了解单片机的基本组成及功能
(2)通过最小应用系统实例了解单片机的基本工作过程
(3)掌握指令格式及表示方法
(4)掌握常用指令的功能及应用
(5)掌握汇编语言的基本结构
(6)了解汇编语言程序设计的基本方法和思路
(7)了解按键识别方法
3.2系统设计意义
(1)在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。
(2)完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。(3)完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。(4)进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。(5)通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。
四、系统硬件电路图
五、系统流程图与源程序
5.1 系统程序流程图
5.2 系统汇编源程序
ORG 0000H
MAIN: MOV R0, #00H ; 计数显示初始化
MOV P1, #0FEH ; 点亮P1.0口的发光二极管
MOV DPTR, #TAB
DISP: JB P3.7, DISP; 监测按键信号
ACALL DELAY; 消抖延时
JB P3.7, DISP; 确认低电平信号
DISP1: JNB P3.7, DISP1 ; 监测按键信号
ACALL DELAY; 消抖延时
JNB P3.7, DISP1 ; 确认高电平信号
INC R0 ; 确认按键按下,准备点亮下一个灯
CJNE R0,#4,NEXT ; 计数不到四次,点亮下一个灯
MOV R0,#0 ; 计数到四次,点亮第一个灯
NEXT: MOV A, R0
MOV R0, A
MOVC A,@A+DPTR ; 查表
MOV P1, A
AJMP DISP
TAB: DB 0FEH, 0FDH, 0FbH, 0F7H
DELAY: MOV R2, #14H ; 10ms延时
DELAY1: MOV R3, #0FAH
DJNZ R3, $
DJNZ R2, DELAY1
RET
END
六、系统功能分析与说明
6.1 MCS-51单片机结构和原理
单片微型计算机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU、随机存储器、只读存储器、基本输入输出接口电路、定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。单片机实质上是一个芯片。在实际应用中,通常很少将单片机直接和被控对象进行电气连接,必须外加各种扩展口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
MCS-51单片机的典型芯片是8031、8051、8751。8051内部有4KB ROM, 8751内部有4KB EPROM,8031内部没有ROM,除此之外,三者的内部结构及引脚完全相同。以8051为例,说明本系列单片机的基本组成及信号引脚。
6.1.1 8051单片机的基本组成
8051单片机的基本组成如图6.1所示。
图6.1 MCS-51单片机结构框图
(1)中央处理器(CPU)
中央处理器是单片机的核心,完成运算和控制功能。MCS-51的CPU能处理8位二进制数或代码。
(2)内部数据存储器(内部RAM)
8051芯片内部共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
(3)内部程序存储器(内部ROM)
8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。
(4)定时/计数器
8051共有两个16为的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
(5)并行I/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。(6)串行口
MCS-51单片机有一个全双工的串行口,以实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
(7)中断控制系统
MCS-51单片机的中断功能较强,以满足控制功能的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。
(8)时钟电路
MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6MHz和12MHz。
从上述内容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部
件它都包括,因此,实际上它已是一个简单的微型计算机系统了。
6.1.2 引脚介绍
MCS-51是标准的40引脚双列直插式集成电路芯片。引脚排列见图6.2。
图6.2 MCS-51引脚图
P0.0~P0.7:P0口8位双向口线。
P1.0~P1.7:P1口8位双向口线。
P2.0~P2.7:P2口8位双向口线。
P3.0~P3.7:P3口8位双向口线。
ALE:地址锁存控制信号。
PSEN:外部程序存储器读选通信号。在读外部RAM时,PSEN有效(低电平),以实现外部ROM单元的读操作。
EA:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为低电平时,对ROM的读操作是从内部存储器开始,并可延伸至外部程序存储器。
RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平即为有效,用以完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:地线。
VCC:+5V电源。
6.1.3信号引脚的第二功能
(1)P3口线的第二功能
P3口的8条口线都定义有第二功能,见表6.1
表6.1 P3口各引脚的第二功能
(2)EPROM存储器程序固化所需要的信号。有内部EPROM的单片机芯片(例如8751),为写入程序提供专门的编程脉冲和编程电源,这些信号也是由信号引脚以第二功能的形式提供的,即:编程脉冲:30脚(ALE/PROG),编程电压(25V):31脚(EA/VPP)。
(3)备用电源引入
MCS-51单片机的备用电源也是以第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。
对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。
6.2时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,而时序研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在惟一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为芯片引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。如图6.3所示。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。一般电容C1和C2取30pF左右,晶体的振荡频率范围是1.2MHz~12 MHz。晶体振荡频率高,则系统的时钟频率也越高,单片机运行速度也就快。MCS51在通常应用情况下,使用振荡频率为6MHz或12MHz。
图6.3 时钟电路
6.3复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。单片机复位的条件是:必须使RST/VPD或RST引脚加上持续两个机器周期的高电平。单片机常见的复位电路如图6.4和6.5所示。
图6.4为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC 相同,随着充电电容的减少,RESET端的电位逐渐下降。只要保证RESET端为高电平的时间
大于两个机器周期,便能正常复位。
图6.4 上电复位电路
图 6.5为按键复位电路。该电路除具有上电复位功能外,若要复位,只需按图中的SP2键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。本最小系统设计就是采用该电路。
.
图6.5按键复位电路
6.4键盘的工作原理
键盘是由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说,键盘是一组规则排列的开关。
6.4.1按键的分类
按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键、磁感应按键等。前者造价低,后者寿命长。目前,微机系统中常见的是触点式开关按键。
按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘是由软件来实现键盘的定义与识别。
全编码键盘能够有硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多建、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。
6.4.2键输入原理
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。
对于一组键或一个键盘,总有一个接口电路CPU相连。CPU可以采用查询或中断方式了解有无按键输入,并检查是哪一个键按下,将该信号送累加器ACC,然后通过跳转指令转入执
行该键的功能程序,执行完成在返回主程序。
6.4.3按键结构与特点
微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。它能提供标准的TTL逻辑电平,以便与通用数字系统的逻辑电平相容。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的机械抖动,然后其触点才稳定下来。其抖动过程如图6.6所示,抖动时间的长短与开机的机械特性有关,一般为5~10mS。
图6.6 按键触点的机械抖动
在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采用去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。
在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图6.7是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。
图6.7 双稳态去抖电路
该电路工作过程如下:按键未按下时,a=0,b=1,输出Q=1。按键按下时,因按键的机械弹性作用的影响,使按键产生抖动。当开关没有稳定到达b端时,因与非门2输出为0反馈到与非门1的输入端,封锁了与非门1,双稳态电路的状态不会改变,输出保持为1,输出Q 不会产生抖动的波形。当开关稳定到达b端时,因a=1,b=0,使Q=0,双稳态电路的状态发生翻转。当释放按键时,在开关未稳定到达a端时,因Q=0,封锁了与非门2,双稳态电路的状态保持不变,输出Q保持不变,消除了后沿的抖动波形。当开关稳定到达a端时,因a=0,b=1,使Q=1,双稳态状态发生翻转,输出Q重新返回原状态。由此可见,键盘输出经双稳态电路之后,输出已变为规范的矩形方波。
软件上采取的措施是:在检测到有按键按下时,执行一个10mS左右的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采相同的步骤进行确认,从而可消除抖动的影响。
6.4.4按键编码
一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器数值相对应的键值,以实现按键功能程序的跳转。
6.4.5编制键盘程序
一个完善的键盘控制程序应具备以下功能:
(1)检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。(2)有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。
(3)准确输出按键值(或键号),以满足跳转指令要求。
6.5独立式按键
单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。
独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O 口线,每个按键的工作不会影响其它I/O口线的状态。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
本设计中按键输入采用低电平有效,按键的软件采用查询式结构。按键开关SP1与单片机的P3.7端口相连,如该端口输入为低电平,则可确认该端口所对应的按键已按下,然后,再转向该键的功能处理程序。
6.6实训设备与元器件
电路板1个,MCS-51单片机1个,发光二极管5个,按键2个,晶振1个,22F
μ电容1
k电阻2个,导线若干,电烙铁,个,30pF电容2个,560Ω电阻4个,200Ω电阻1个,1Ω
万用表。
6.7设计步骤
(1)理解设计任务要求
(2)对总体方案进行分析论证
(3)设计系统硬件电路图和PCB封装图
(4)根据系统硬件电路图和PCB封装图制作印制板,然后焊接元器件
(5)设计系统控制软件,确定主程序流程框图,并根据软件流程框图用汇编语言编写主程序和延时子程序
(6)系统软硬件的调试
(7)编写课程设计说明书
(8)答辩验收
6.8电路板的制作
Protel99功能强大,为我们进行电子电路原理图和印制板图的设计提供了良好的操作环境。用Protel99进行电路设计分为两大部分:原理图的设计和电路板的设计。原理图的设计实在SCH系统中进行的,电路原理图是印刷板电路设计的基础,只有设计好原理图才有可能进行下一步的电路板设计。
用protel99进行电路板设计的第一步是其原理图的设计。显然,原理图决定整个电路的基本功能,也是接下来生成网络表和设计印刷板电路的基础。具体步骤如下:
(1)图面设置
Protel99允许用户根据电路的规模设置图面的大小,按照偏好和习惯设置图面的样式。实际上,设置图面就是设置了一个工作平面,以后的工作就要在这个平面上进行。所以图面应该设置得足够大,为进一步工作提供一个足够大的工作空间。
(2)放置元件
所谓放置元件就是从元件库中选取所需得元件,将其布置到图面上合适的位置,有时还要重定义元件的编号、封装。元件的封装很重要,要根据元件的实际尺寸和实际封装来决定,要是元件没封装好,将会给以后电路板的制作带来很大的麻烦。这些都是下一步工作的基础。Protel99为用户提供了一个非完备的元件库,并且允许用户对这个元件库进行编辑或者新建自己的元件库。
电路板的制作过程如下:
(1)打印
将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。
(1)熨烫
将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。
(3)腐蚀
把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。如果时间过长,需剩下的铜线也可能被腐蚀。
(4)打孔
打孔时注意钻头尺寸,本次用的钻头大小是0.712mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。
(5)放置元件
放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)。放置元件时注意集成块的管脚,二极管和电解电容的正负,这些都是平时比较容易出错的地方。
(6)焊接
焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。
(7)检查
检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。检查完毕就能进行调试了。
6.9系统连线说明
(1)把单片机的P3.7端口连接到独立式键盘区域中的按键开关SP1端口上。
(2)把单片机的P1.0~P1.3端口分别连接四个发光二极管,发光二极管采用共阳极接法。当某输端口为低电平时,该端所连接的发光二极管导通并点亮。
(3)单片机的引脚XTAL1和XTAL2之间连接时钟电路。
(4)单片机的引脚VCC、RESET、VSS之间接复位电路。
6.10系统PCB图设计
6.11系统功能分析与说明
(1)该最小系统设计的源程序所实现的功能是:用一键实现多功能按键识别。将开关SP1接P3.7,P1口的P1.0~P1.3分别接四个发光二极管。上电时,接P1.0 的发光二极管亮;按下开关SP1时,接P1.1 的发光二极管亮;再按下开关SP1时,接P1.2 的发光二极管亮;再按下开关SP1时,接P1.3 的发光二极管亮。再按下开关SP1时,接P1.0 的发光二极管亮,如此循环。
(2)在源程序中,先进行初始化,点亮第一个发光二极管,等确认按键按下后,计数器值加1,点亮下一个发光二极管,如果计数器的值不为4,则继续加1,点亮下一个发光二极管,直到计数器的值为4时,将计数器清0,重新点亮第一个发光二极管。如此循环。(3)机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的机械抖动,然后其触点才稳定下来。其抖动时间一般为5~10mS。因此,在本设计中,编写了一段10mS的延时程序。该延时程序如下:
DELAY: MOV R2, #14H
DELAY1: MOV R3, #0FAH
DJNZ R3, $
DJNZ R2, DELAY1
RET
END
七、设计体会
在本次设计系统设计的过程中,我的题目是按键识别控制。经过这次课程设计,我了解了51单片机的基本原理,学会了用Protel99绘制原理图和PCB图。通过查阅相关的书籍,设计了电路原理图,经过仿真和反复的修改电路中元器件的参数得到了可行的电路图。
设计好硬件电路原理图和PCB图之后,接下来就是制作电路板了,需要经过熨烫、腐蚀、打孔等一系列过程。在制作板子的过程中,要注意线宽的设置、熨烫时间的长短、腐蚀液的浓度等重要问题。经过制作电路板,大大的提高了我的动手能力,我体会到了理论与实践相互结合的重要性,要想把书本知识运用到实践中去并不是那么简单,需要不断地努力。在用电烙铁焊接元器件的过程中,需要注意的问题是如何保持焊点的美观,防止桥连、虚焊等缺陷。接下来是电路板的调试,将软硬件相结合,烧录程序,使我了解了常用指令和编写汇编语言程序的基本方法。另外,经过本设计,我还了解了一键多功能控制发光二极管的基本原理。
总之,经过学习单片机接口实验这门课,我对单片机有了更深入的了解,提高了我的动手能力。很感谢在整个课程学习中同学的指导与热心帮助。
八、参考文献
[1]刘守义.单片机应用技术.西安电子科技大学出版社
[2]周立功.单片机实验与实践.北京航空航天大学出版社
[3]邓红,张越.单片机实验与应用设计教程.冶金工业出版社
[4]朱定华.单片机原理及接口技术实验. 北方交通大学出版社
[5]陈明荧.8051单片机课程设计实训教材.清华大学出版社
[6]莫力.Protel电路设计.国防工业出版社
[7]肖玲妮,袁增贵.Protel99SE. 清华大学出版社
[8]何立民.单片机应用系统设计系统配置与接口技术.北京航空航天大学出版
[9]胡汉才.单片机原理及其接口技术.清华大学出版社
[10]张友德.单片微型机原理、应用与实验. 复旦大学出版社