3系统分析
3.1涉及的基础知识
8051单片机原理。
8051单片机硬件接口技术:P2口外接八个LED灯和P3口外接按键,以及P0口和P1口分别接共阳极的数码管。
8051单片机指令系统:规定8051单片机内操作的语句或命令。 八段数码管的显示:向数码的显示送数,控制系统的显示部分。
3.28051单片机引脚图及引脚功能介绍
本次实习的目的在于加深8051单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:
图3-1 80C51的引脚图
80C51有40条引脚,共分为端口线、电源线和控制线三类。
1.端口线(4×8 = 32条):I/O端口:P0、P1、P2、P3口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。 2.电源线(2条):VCC为+5V电源线,VSS为接地线。
3.控制线(6条):(1)ALE/PROG——————:地址锁存允许/编程线。ALE功能:用来锁存P0口送出的低8位地址;PROG——————功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 (2)PSEN:外ROM读选通信号。
(3)RST/VPD:复位/备用电源。RST(Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。
(4)EA———/Vpp:内外ROM选择/片内EPROM编程电源。EA———功能:内外ROM选择端。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。 4.XTAL1、XTAL2 :晶体振荡电路反相输入端和输出端。
3.3解决问题的基本思路
预先按键选择三种不同等级速度中的一种,编一个实现延时控制的调用程序,来提供亮灯速度的控制。
选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。
4系统设计
4.1硬件设计
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。8051单片机是本次课程设计运用的主要原件。流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
4.2软件设计
单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。
循环移位法是采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。另外,由于80C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。单片机原理及其接口技术课程设计
6
4.3硬件原理图
图4-1硬件原理图
4.4设计主要功能
打开电路开关,按下三个速度等级控制按键(P3.4,P3.5,P3.6所接按键)中一个,选择一种固定速度等级模式,P0口所接数码管显示等级1,等级2,或者等级3。在之前基础上,按下LED显示模式按键,第一个模式,8个LED灯会从右向左一个接着一个亮灯,P1口连接的数码管会显示数字“1”来表示当前的亮灯方式是模式1。在8个LED灯停止亮后再次按下LED显示模式按键,8个LED灯会从左向右2个一组的一次亮灯,同时数码管会显示数字“2”来表示当前的亮灯方式是模式2。以此类推,一共有5种显示模式。若要选择另外的速度等级,需要先按下复位按钮,即8051单片机RET端口外接的手动按键复位按钮,复位后可按照之前所述先选择速度等级,而后依次显示五种LED亮灯模式,当然可以明显感觉到亮灯方式相同但速度不同的模式。
5代码编写
ORG 0000H ;设置主程序开始地址 LJMP START ORG 0100H
START: MOV SP, #80H MOV R5, #00H CLR C
MOV P3, #0FFH
MAIN:JNB P3.4,Q1 ;进行速度等级的选择 JNB P3.5,Q2 JNB P3.6,Q3 JMPMAIN
Q1:MOVP0,#0F9H JMPQ
Q2:MOVP0,#0A4H JMPQ
Q3:MOVP0,#0B0H Q:ACALL DELAY1 INC R5
BEGIN: CJNE R5, #5,X1 AJMP C5
X1: CJNE R5, #4,X2 AJMP C4
X2: CJNE R5, #3, X3 AJMP C3
X3: CJNE R5, #2,X4 AJMP C2
X4: CJNE R5, #1,X5 AJMP C1
X5: MOV R5, #1H LJMP BEGIN
C1: MOV P1, #0F9H ;把06H送p0口,数码管显示1 LCALL DELAY ;数码管亮后的缓冲 M1: MOV A, #01H ;赋值 MOV R2, #8 MOV R4, #10
LOOP1: MOV P2,A ;值给LED灯 RL A ;左移
LCALL V ;调用延时子程序 DJNZ R2, LOOP1
MOV R2, #8单片机原理及其接口技术课程设计
8