单片机实验指导书—2013 - 图文
更新时间:2023-03-08 07:50:22 阅读量: 综合文库 文档下载
- 单片机实验指导书答案推荐度:
- 相关推荐
单片机系统设计实验指导书
(硬件部分)
东华大学信息学院自动化系
2013.6
单片机实验指导书 第1页
第一部分 硬件系统介绍
一、系统资源分配
1.存储器地址分配
程序存储器和数据存储器统一编址,最多可达64K,板载ROM(监控程序)12K;RAM1(程序存储器6264)8K供用户下载实验程序,RAM2(数据存储器6264)8K供用户程序使用。
在程序存储器中,0000H~2FFFH为监控程序存储区,用户不可用。
用户I/O区 系统I/O区 用户I/O区 RAM2 用户实验程序区 RAM1 用户实验数据区 ROM 系统监控程序区
图1-1 存储器系统组织图
FFFFH CFBEH CFBEH 7FFFH 4FFFH 2FFFH 0000H
2. 中断资源
单片机系统中可使用的中断信号方式有外中断、定时器中断、串行口中断,相应的中断入口地址如表1-1所示。另外还可以使用实验箱的8259中断控制器扩展中断资源。
表1-1用户中断程序入口表 中断名称 外中断0 定时器0中断 定时器1中断 串行口中断
单片机实验指导书 第2页
中断入口地址 0003H 000BH 001BH 0023H
3.地址资源分配
本系统采用可编程逻辑器件(CPLD)EPM7128作为地址译码器,此单元分为两部分:一部分为系统CPLD,完成系统器件如存储器、系统显示控制器、系统串行通讯控制器的地址译码功能,同时将部分地址译码后输出(插孔CS0~CS7)给用户使用。它们的地址固定,用户不可改变。另一部分为用户CPLD,它们完全对用户开放,用户可在一定地址范围内,进行编码,输出为插孔LCS0~LCS7的地址选通信号。详细信息如表1-2所示。
表1—2:CPLD地址分配表
地址范围 输出孔/映射器件 性质(系统/用户) 0000H---2FFFH 监控程序存储器 系统 * 3000H---3FFFH 数据存储器 系统 * 4000H---BFFFH 用户程序存储器 系统 * C000H---CF9FH LCS0~LCS7 用户 CFE0H PC机串行通讯芯片8250 系统 * CFE8H 显示、键盘芯片8279 系统 CFA0H---CFA7H CS0 系统 CFA8H---CFAFH CS1 系统 CFB0H---CFB7H CS2 系统 CFB8H---CFBFH CS3 系统 CFC0H---CFC7H CS4 系统 CFC8H---CFCFH CS5 系统 注:系统地址中,除带“*”用户既不可用,也不可改外,其他系统地址用户可用但不可改。
二、仿真芯片资源介绍:
本实验采用仿真芯片代替实际的8051芯片,仿真芯片具有以下特点: 1、 支持Keil C环境下的汇编、C; 2、 完全仿真P0、P1、P2口;
3、 可以设置单步全速断点运行方式; 4、 可以查阅变量RAM、xdata等数据;
5、 仿真器占用了单片机的串行口和定时器2的资源以及部分程序空间。
单片机实验指导书 第3页
6、 从0地址开始仿真。用汇编时,注意中断矢量单元为标准设置(如:外部中
断0为0003H,T0溢出中断为000BH)。
三、实验箱面板布局:
片选信号8279信号 插孔 单片机仿真器 DA信号 8255信号 8253信号 A/D信号 8259信号 I/O扩展芯片信号 LED及开关信号 复位及单脉冲按钮
第二部分 软件说明
本次实验采用Keil C软件作为源代码的编辑、编译、调试工具。其基本操作方法如下。
1、 打开Keil C环境。
单片机实验指导书 第4页
2、 新建工程或打开工程文件:在主菜单上选“Project”项,在下拉列表中选
择“New Project”新建工程,浏览保存工程文件为扩展名为“.Uv2”的文件。或在下拉列表中选择“Open project”打开已有的工程文件。
3、环境设置:新建工程文件后,在工具栏中选择如下图选项设置调试参数及运行环境
,或从主菜单“Project”项中选择
“Options for Target ‘Target1’”,打开如下图设置窗口。
单片机实验指导书 第5页
第三部分 基础实验
实验1 P1口实验一
一、实验目的: 1. 2.
学习P1口的使用方法。 学习延时子程序的编写和使用。
二、实验设备:
CPU挂箱、8031CPU模块 三、实验内容: 1. 2.
P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程
序读取开关状态,在发光二极管上显示出来。 四、实验原理:
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。本实验由于延时时间较短,故采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。现要写一个延时0.1s的程序,可大致写出如下:
MOV R7,#X (1) DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256 +X(1÷0.256 + 200×1÷0.256+ 1÷0.256)=0.1×10?
单片机实验指导书 第11页
指令(1) 指令(2) 指令(3) 指令(4) 所需时间 所需时间 所需时间 所需时间
X=(0.1××10?-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH 经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。 五、实验原理图:
P1口输出实验
P1口输入实验
六、实验步骤:
执行程序1(T1_1.ASM)时:P1.0~P1.7接发光二极管L1~L8。
执行程序2(T1_1.ASM)时:P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。
七、程序框图:
单片机实验指导书 第12页
程序初始化,设置P1口寄存器的初值为FEH延时0.1 秒,使显示稳定将P1口寄存器的数值逐位左移1位 循环点亮发光二极管
程序初始化,设置P1口为输入口将P1口数值读入累加器A将累加器A的数值送到273显示
通过发光二极管将P1口的状态显示
八、参考程序:
1、循环点亮发光二极管(T1_1.ASM)
NAME T1_1 ;P1口输实验 CSEG AT 0000H LJMP START CSEG AT 4100H START: MOV A,#0FEH
LOOP: RL A ; 左移一位,点亮下一个发光二极管 MOV P1,A LCALL DELAY JMP LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DELAY: MOV R1,#127 ; 延时0.1秒 DEL1: MOV R2,#200 DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
单片机实验指导书 第13页
;延时 0.1秒
END
2、通过发光二极管将P1口的状态显示(T1_2.ASM)
NAME T1_2 ;P1口输入实验 OUT_PORT
EQU
0CFA0H
CSEG AT 0000H LJMP START CSEG AT 4100H
START: MOV P1,#0FFH ;复位P1口为输入状态 MOV A,P1
;读P1口的状态值入累加器A
MOV DPTR,#OUT_PORT ;将输出口地址赋给地址指针DPTR MOVX @DPTR,A ;将累加器A的值赋给DPTR指向的地址 JMP START ;继续循环监测端口P1的状态 END
思考题:
将P1口读入的开关状态用LED闪烁显示,闪烁的方式为每间隔一秒显示一次。
单片机实验指导书 第14页
实验2 P1口实验二
一、实验目的: 1. 2.
学习P1口既做输入又做为输出的使用方法。 学习数据输入、输出程序的设计方法。
二、实验设备:
CPU挂箱、8031CPU模块 三、实验原理:
P1口的使用方法这里不讲了。有兴趣者不妨将实验例程中的“SETB P1.0, SETB P1.1”中的“SETB”改为“CLR”看看会有什么结果。
另外,例程中给出了一种N路转移的常用设计方法,该方法利用了JMP @A+DPTR的计算功能,实现转移。该方法的优点是设计简单,转移表短,但转移表大小加上各个程序长度必须小于256字节。 四、实验原理图:
P1口输入、输出实验
五、实验步骤:
平推开关的输出K1接P1.0;K2接P1.1;
单片机实验指导书 第15页
发光二极管的输入L1接P1.2;L2接P1.3;L5接P1.4;L6接P1.5。
运行实验程序,K1做为左转弯开关,K2做为右转弯开关。L5、L6做为右转弯灯,L1、L2做为左转弯灯。
结果显示:1:K1接高电平K2接低电平时,右转弯灯(L5、L6)灭,左转弯灯(L1、L2)以一定频率闪烁;
2:K2接高电平K1接低电平时,左转弯灯(L1、L2)灭,右转弯灯(L5、
L6)以一定频率闪烁;
3:K1、K2同时接低电平时,发光二极管全灭; 4:K1、K2同时接高电平时,发光二极管全亮。
六、参考程序:T2.ASM
NAME T2 ;P1口输入输出实验 CSEG AT 0000H
LJMP START CSEG AT 4100H
START: SETB P1.0
SETB P1.1 ;用于输入时先置位口内锁存器 MOV A,P1
ANL A,#03H ;从P1口读入开关状态,取低两位 MOV DPTR,#TAB ;转移表首地址送DPTR MOVC A,@A+DPTR JMP @A+DPTR TAB: DB PRG0-TAB DB PRG1-TAB DB PRG2-TAB DB PRG3-TAB
PRG0: MOV P1,#0FFH ;向P1口输出#0FFH,发光二极管全灭 ;此时K1=0,K2=0 JMP START
PRG1: MOV P1,#0F3H ;只点亮L5、L6,表示左转弯 ACALL DELAY ;此时K1=1,K2=0 MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY ;延时0.5秒 JMP START
PRG2: MOV P1,#0CFH ;只点亮L7、L8,表示右转弯 ACALL DELAY ;此时K1=0,K2=1 MOV P1,#0FFH ;再熄灭0.5秒 ACALL DELAY
单片机实验指导书 第16页
JMP START PRG3: MOV P1,#00H ;发光二极管全亮,此时K1=1,K2=1 JMP START
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DELAY: MOV R1,#5 ;延时0.5秒 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 DJNZ R1,DEL1 RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; END 七、程序框图:
单片机实验指导书 第17页
上电,程序初始化,设置P1口为输入、输出双线口(P1.0、P1.1为输入口,P1.2、P1.3、P1.4、P1.5为输出口采集P1.0、P1.1输入口的值进入A累加器,根据累加器A的值调转到相应的子程序入口A=00A=01A=10A=11给P1口赋值0FFH(四个发光二极管全灭)依次给P1口赋值0F3H和0FFH,每种状态延时0.5秒依次给P1口赋值0CFH和0FFH,每种状态延时0.5秒给P1口赋值00H(四个发光二极管全亮)
思考题:
修改程序,使K1,K2接高电平时,所有发光二极管闪烁。
单片机实验指导书 第18页
实验3 简单I/O口扩展实验一
——交通灯控制实验
一、实验目的:
1. 学习在单片机系统中扩展简单I/O接口的方法。 2. 学习数据输出程序的设计方法。 3. 学习模拟交通灯控制的实现方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验内容:
扩展实验箱上的74LS273做为输出口,控制八个发光二极管亮灭,模拟交通灯管理。 四、实验原理:
要完成本实验,首先必须了解交通路灯的亮灭规律。本实验需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。而交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验原理图
单片机实验指导书 第19页
六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO.
运行实验程序,观察LED显示情况是否与实验内容相符。
七、程序框图:
单片机实验指导书 第20页
八、参考程序:T3.ASM
NAME T3 ;I/O口扩展实验一 PORT EQU 0CFA0H ;片选地址CS0 CSEG AT 0000H LJMP START CSEG AT 4100H
START: MOV A,#11H ;两个红灯亮,黄灯、绿灯灭 ACALL DISP
;调用273显示单元(以下雷同)
单片机实验指导书 第21页
ACALL DE3S ;延时3秒
LLL: MOV A,#12H ;东西路口绿灯亮;南北路口红灯亮 ACALL DISP
ACALL DE10S ;延时10秒
MOV A,#10H ;东西路口绿灯灭;南北路口红灯亮 ACALL DISP
MOV R2,#05H ;R2中的值为黄灯闪烁次数 TTT: MOV A,#14H ; ACALL DISP
ACALL DE02S ; MOV A,#10H ; ACALL DISP
ACALL DE02S ; DJNZ R2,TTT ; MOV A,#11H ; ACALL DISP
ACALL DE02S ; MOV A,#21H ; ACALL DISP
ACALL DE10S ; MOV A,#01H ; ACALL DISP
MOV R2,#05H ;GGG: MOV A,#41H ; ACALL DISP
ACALL DE02S ; MOV A,#01H ; ACALL DISP
ACALL DE02S ; DJNZ R2,GGG ; MOV A,#03H ;东西路口黄灯亮;南北路口红灯亮 延时0.2秒
东西路口黄灯灭;南北路口红灯亮 延时0.2秒
返回TTT,使东西路口黄灯闪烁五次 两个红灯亮,黄灯、绿灯灭 延时0.2秒
东西路口红灯亮;南北路口绿灯亮 延时10秒
东西路口红灯亮;南北路口绿灯灭 黄灯闪烁五次
东西路口红灯亮;南北路口黄灯亮 延时0.2秒
东西路口红灯亮;南北路口黄灯灭 延时0.2秒
返回GGG,使南北路口;黄灯闪烁五次 两个红灯亮,黄灯、绿灯灭
单片机实验指导书 第22页
ACALL DISP
ACALL DE02S ;延时0.2秒 JMP LLL ;转LLL循环 DE10S: MOV R5,#100 ;延时10秒 JMP DE1
DE3S: MOV R5,#30 ;延时3秒 JMP DE1
DE02S: MOV R5,#02 ;延时0.2秒 DE1: MOV R6,#200 DE2: MOV R7,#126 DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RET
DISP: MOV DPTR,#PORT ;273显示单元
CPL A MOVX @DPTR,A RET
END
思考题:
修改程序,要求将红绿灯控制循环中,红绿灯转换时,黄灯闪烁5次后的“红灯亮,黄、绿灯全灭”状态,改为“红绿灯全灭,东西、南北方向黄灯闪烁10次”。
单片机实验指导书 第23页
实验4 简单I/O口扩展实验二
一、实验目的:
1. 学习在单片机系统中扩展简单I/O口的方法。 2. 学习数据输入,输出程序的编制方法。 二、实验设备:
CPU挂箱、8031CPU模块
三、实验原理:
MCS-51外部扩展空间很大,但数据总线口和控制信号线的负载能力是有限的。若需要扩展的芯片较多,则MCS-51总线口的负载过重,74LS244是一个扩展输入口,同时也是一个单向驱动器,以减轻总线口的负担。
程序中加了一段延时程序,以减少总线口读写的频繁程度。延时时间约为0.01秒,不会影响显示的稳定。 四、实验内容:
利用74LS244做为输入口,读取开关状态,并将此状态通过发光二极管显示出来。
五、实验原理图:
简单I/O实验2
六、实验步骤:
1. 74LS244的IN0~IN7接开关的K1~K8,片选信号CS244接CS1。
单片机实验指导书 第24页
2. 74LS273的O0~O7接发光二极管的L1~L8,片选信号CS273接CS2。 3. 编程、全速执行。
4. 拨动开关K1~K8,观察发光二极管状态的变化。 七、程序框图:
八、参考程序:T4.ASM
NAME T4 ;I/O口扩展实验 CSEG AT 0000H LJMP START CSEG AT 4100H
INPORT EQU 0CFA8H ;74LS244端口地址 OUTPORT EQU 0CFB0H ;74LS273端口地址 START: MOV DPTR,#INPORT
LOOP: MOVX A,@DPTR ;读开关状态 MOV DPTR,#OUTPORT
MOVX @DPTR,A ;显示开关状态 MOV R7,#10H ;延时 DEL0: MOV R6,#0FFH DEL1: DJNZ R6,DEL1 DJNZ R7,DEL0 JMP START END
单片机实验指导书 第25页
实验5 中断实验
———有急救车的交通灯控制实验
一、实验目的:
1. 学习外部中断技术的基本使用方法。 2. 学习中断处理程序的编程方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验内容:
在实验三的内容的基础上增加允许急救车优先通过的要求。当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本实验以单脉冲为中断申请,表示有急救车通过。 四、实验原理:
交通灯的燃灭规律见实验三。
本实验中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能回到交通灯中断前的状态。要保护的地方,除了累加器ACC、标志寄存器PSW外,还要注意:一是主程序中的延时程序和中断处理程序中的延时程序不能混用,本实验给出的程序中,主程序延时用的是R5、R6、R7,中断延时用的是R3、R4和新的R5。第二,主程序中每执行一步经74LS273的端口输出数据的操作时,应先将所输出的数据保存到一个单元中。因为进入中断程序后也要执行往74LS273端口输出数据的操作,中断返回时如果没有恢复中断前74LS273端口锁存器的数据,则显示往往出错,回不到中断前的状态。还要注意一点,主程序中往端口输出数据操作要先保存再输出,例如有如下操作:
MOV A,#0F0H (0) MOVX @R1,A (1) MOV SAVE,A (2)
程序如果正好执行到(1)时发生中断,则转入中断程序,假设中断程序返回主程序前需要执行一句MOV A,SAVE指令,由于主程序中没有执行(2),故SAVE中的内容实际上是前一次放入的而不是(0)语句中给出的0F0H,显示出错,将(1)、(2)两句顺序颠倒一下则没有问题。发生中断时两方向的红灯一起亮10秒,然后
单片机实验指导书 第26页
返回中断前的状态。
五、实验原理图:(同实验三) 六、实验步骤:
74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273\\接片选信号CS2,此时74LS273的片选地址为CFB0H~CFB7H之间任选。单脉冲输出端P-接CPU板上的INT0。
七、程序框图: 主程序框图 中断程序框图
单片机实验指导书 第27页
八、参考程序:T5.ASM
NAME T5 ;中断控制实验 OUTPORT EQU 0CFB0H ;端口地址
SAVE EQU 55H ;save保存从端口cfa0输出的数据 CSEG AT 0000H LJMP START CSEG AT 0003H
LJMP INT CSEG AT 4100H
START: SETB IT0 SETB EX0 SETB EA
MOV A,#11H ; MOV SAVE,A ; ACALL DISP ; ACALL DE3S ;LLL: MOV A,#12H ; MOV SAVE,A ACALL DISP
ACALL DE10S ; MOV A,#10H ; MOV SAVE,A ACALL DISP
MOV R2,#05H ;TTT: MOV A,#14H MOV SAVE,A ACALL DISP ACALL DE02S MOV A,#10H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,TTT
MOV A,#11H ; MOV SAVE,A ACALL DISP
ACALL DE02S ; MOV A,#21H ; MOV SAVE,A ACALL DISP
置首显示码 保存 显示输出 延时3秒
东西路口绿灯亮,南北路口红灯亮 延时10秒
东西路口绿灯灭 东西路口黄灯闪烁5次 红灯全亮 延时0.2秒
东西路口红灯亮,南北路口绿灯亮 单片机实验指导书 第28页
ACALL DE10S ;延时10秒
MOV A,#01H ;南北路口绿灯灭 MOV SAVE,A ACALL DISP
MOV R2,#05H ;南北路口黄灯闪烁5次 GGG: MOV A,#41H MOV SAVE,A ACALL DISP ACALL DE02S MOV A,#01H MOV SAVE,A ACALL DISP ACALL DE02S DJNZ R2,GGG
MOV A,#11H ;红灯全亮 MOV SAVE,A ACALL DISP
ACALL DE02S ;延时0.2秒 JMP LLL ;转LLL循环 DE10S: MOV R5,#100 ;延时10秒 JMP DE1
DE3S: MOV R5,#30 ;延时3秒 JMP DE1
DE02S: MOV R5,#02 ;延时0.2秒 DE1: MOV R6,#200 DE2: MOV R7,#126 DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RET
INT: CLR EA
PUSH ACC ;中断处理 PUSH PSW MOV A,R5 PUSH ACC
MOV A,#11H ;红灯全亮,绿、黄灯全灭 ACALL DISP
DEL10S: MOV R3,#100 ;延时10秒 DEL1: MOV R2,#200 DEL2: MOV R5,#126
单片机实验指导书 第29页
DEL3: DJNZ R5,DEL3 DJNZ R4,DEL2 DJNZ R3,DEL1
MOV A,SAVE ;取SAVE中保存数据输出到cfa0端口 ACALL DISP
POP ACC ;出栈 MOV R5,A POP PSW POP ACC
SETB EA ;允许外部中断 RETI
DISP: MOV DPTR,#OUTPORT CPL A
MOVX @DPTR,A RET END
思考题:
修改程序,要求按下单脉冲按钮Pulse后,红灯状态由常亮方式改为闪烁方式,时间10秒,然后恢复原状态。
单片机实验指导书 第30页
实验6 定时器实验
———循环彩灯实验
一、实验目的:
1. 学习8031内部计数器的使用和编程方法。 2. 进一步掌握中断处理程序的编写方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验原理:
1. 定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样, 为振荡频率的1/12。本实验中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10?)=2us
设计数初值为X,则(2e+16-X)×2×10=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH 2. 初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行
正确的设置,并将时间常数送入定时器中。由于只有定时器中断,IP便不必设置。
3. 设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。主程序则用来控制发光二极管按要求顺序燃灭。 四、实验题目
由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。P1口的P1.0~P1.7分别接发光二极管的L1~L8。要求编写程序模拟一循环彩灯。彩灯变化花样可自行设计。例程给出的变化花样为:①L1、L2、?L8依次点亮;②L1、L2、?L8依次熄灭;③L1、L2、?L8全亮、全灭。各时序间隔为0.5秒。让发光二极管按以上规律循环显示下去。
-6
单片机实验指导书 第31页
五、实验电路:
六、实验步骤:
P1.0~P1.7分别接发光二极管L1~L8即可。
七、程序框图:T6.ASM
主程序框图 中断程序框图
单片机实验指导书 第32页
七、参考程序:T6.ASM
NAME T6 ;定时器实验
CSEG AT 0000H LJMP START
CSEG AT 001BH ;定时器/计数器1中断程序入口地址 LJMP INT
CSEG AT 4100H
START: MOV A,#01H ;首显示码 CPL A
MOV R1,#03H ;03 MOV R0,#05H ;05 MOV TMOD,#10H ; MOV TL1,#0AFH ; MOV TH1,#03CH
ORL IE,#88H ;CPU ;1 SETB TR1 ;LOOP1: CJNE R0,#00,DISP
MOV R0,#05H ;R0 INC R1 ; CJNE R1,#15H,LOOP2
MOV R1,#03H ;LOOP2: MOV A,R1 ; MOVC A,@A+PC CPL A JMP DISP
DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH DB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H
DISP: MOV P1,A ; JMP LOOP1
INT: CLR TR1 ; DEC R0 ; MOV TL1,#0AFH ; MOV TH1,#03CH
SETB TR1 ; RETI ;END
是偏移量,即从基址寄存器到表首的距离 是计数值 计数器置为方式1 装入时间常数 中断开放标志位和定时器 溢出中断允许位均置位 开始计数 计数计完一个周期,重置初值 表地址偏移量加1 如到表尾,则重置偏移量初值 从表中取显示码入累加器 将取得的显示码从P1口输出显示 停止计数 计数值减一
重置时间常数初值 开始计数 中断返回 单片机实验指导书 第33页
思考题:
修改程序,使彩灯变化花样为:①L1、L2、?L8依次点亮;②L1、L2、?L8依次熄灭;③以双灯方式L1L2、L3L4、?依次点亮;④以双灯方式L8L7、L6L5、?依次熄灭。
单片机实验指导书 第34页
实验7 8255A可编程并行接口实验一
一、实验目的:
1. 了解8255A芯片的结构及编程方法。 2. 掌握通过8255A并行口读取开关数据的方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验原理:
设置好8255A各端口的工作模式。实验中应当使三个端口都工作于方式0,并使A口为输出口,B口为输入口。 四、实验内容:
利用8255A可编程并行接口芯片,重复实验四的内容。实验可用B通道作为开关量输入口,A通道作为显示输出口。
五、实验电路:
单片机实验指导书 第35页
六、实验步骤:
8255A的PA0~PA7接发光二极管L1~L8;PB0~PB7接开关K1~K8;片选信号8255CS接CS0。 七、程序框图:
系统初始化,设置8255的A口输出,B口输入。通过8255的B口将开关的状态读入CPU中通过8255的A口将读入的开关状态送给发光二极管显示延时10ms
八、参考程序:T7.ASM
NAME T7 ;8255A实验一
CSEG AT 0000H LJMP START CSEG AT 4100H PA EQU 0CFA0H PB EQU 0CFA1H PCTL EQU 0CFA3H
START: MOV DPTR,#PCTL ;置8255A控制字,A、B、C口均工作 ;方式0,A、C口为输出,B口为输入 MOV A,#82H MOVX @DPTR,A
LOOP: MOV DPTR,#PB ;从B口读入开关状态值 MOVX A,@DPTR
MOV DPTR,#PA ;从A口将状态值输出显示 MOVX @DPTR,A
MOV R7,#10H ;延时
单片机实验指导书 第36页
DEL0: MOV R6,#0FFH DEL1: DJNZ R6,DEL1 DJNZ R7,DEL0 JMP LOOP END
思考题:
修改连线,使PA口接开关,PB口接LED发光二极管;并修改程序,使开关在推上时,LED亮;使开关在拨下时,LED灭。
单片机实验指导书 第37页
实验8 8255A可编程并行接口实验二
——键盘实验 一、实验目的:
1. 掌握8255A编程原理。 2. 了解键盘电路的工作原理。 3. 掌握键盘接口电路的编程方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验原理:
1.识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验例程采用的是行反转法。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2.程序设计时,要学会灵活地对8255A的各端口进行方式设置。
3.程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。 实验题目
利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。 四、实验步骤:
将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
单片机实验指导书 第38页
五、实验电路:
单片机实验指导书 第39页
六、程序框图T8.ASM
单片机实验指导书 第40页
正在阅读:
单片机实验指导书—2013 - 图文03-08
如何培养学生良好的学习习惯02-11
2018年县人民医院党建工作总结03-12
2018下学期班级期末复习 2013-2014学年第二学期宝安区期末调研测试卷02-01
客房部主管述职09-05
病危通知书格式02-23
中级摄影师理论考试复习题10-11
完全装逼指南——我来教你怎么去装逼02-15
《新天龙八部之天山童姥》影评精选10篇12-12
《个人与团队管理》模拟试题及答案03-08
- 计算机试题
- 【2012天津卷高考满分作文】鱼心人不知
- 教育心理学历年真题及答案--浙江教师资格考试
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- 洪林兴达煤矿2018年度水情水害预测预报
- 基本要道讲义
- 机电设备安装试运行异常现象分析与对策
- 《有机化学》复习资料-李月明
- 非常可乐非常MC2--非常可乐广告策划提案 - 图文
- 2011中考数学真题解析4 - 科学记数法(含答案)
- 企业人力资源管理师三级07- 09年真题及答案
- 基于单片机的光控自动窗帘控制系统设计说明书1 - 图文
- 20160802神华九江输煤皮带机安装方案001
- (共53套)新人教版一生物必修2(全册)教案汇总 word打印版
- 2014行政管理学总复习
- 中国银监会关于加强地方政府融资平台贷款风险监管的指导意见
- 民宿酒店核心竞争与研究
- 游园活动谜语大全2012
- 河南省天一大联考2016届高三英语5月阶段性测试试题(六)(A卷)
- 小型超市管理系统毕业论文详细设计4
- 指导书
- 单片机
- 实验
- 图文
- 2013
- 2013年关于“2+2”报名通知
- 关于省属国有企业领导班子建设调研的报告
- 鼓风机施工方案
- 第23讲周期工程问题
- 校园暴力心得体会
- 水泵站45学时大纲
- 图书馆在培养高职学生学习兴趣和学习动力方面作用的研究
- 家长及学生投诉处理制度及实施办法
- 2010年苍南县“姜立夫杯”数学竞赛
- 《蜗居》台词100句血淋淋的经典
- 安徽茶叶生产现状、特点及发展建议
- 毕业设计论文-校园网络办公系统
- 融资租赁的常见运营风险及管理
- 人教版三年级语文上册期末试卷1
- 2009年云南师范大学思想政治考研(马克思主义发展史)题目及参考
- 牛津初中英语8BUnit1—Unit6 知识点归纳
- 日本枫古铜枫的主要病虫害与防治
- 2013年全国初中数学联赛选拔赛详解 2
- 京沪高铁建设项目项目
- 文明停车,别给幸福“添堵”