<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
MCS – 51单片机原理及接口技术
实验指导书
王淑敏 郭玉明 编
张家栋 赵嘉蔚 审
北方交通大学机电学院
二零零四年二月
目 录
一、MCS-51单片机应用板系统结构说明……………………………………….2
二、MCS-51单片机应用板的使用说明……………………………………………….3
三、附表一:接线端子序号定义表………………………………………………4
实验一、学习DICE仿真系统的使用及简单编程……………………………….5
实验二、运算处理程序设计与调试…..……….…………………………………6
实验三、数据存储器扩展实验……………………………………………………6
实验四、LED显示器实验 …………..……………………………7
实验五、8031单片机定时/计数器应用实验……………………………………..7
实验六、模/数与数/模转换实验………………………………………………….8实验七、串行口双机通讯实验…………………………………………………...10
实验八、打印机接口实验………………………………………………………. .10
附录一:动态显示参考程序……………………………………………………..13
一、MCS-51单片机应用板系统结构说明
MCS-51单片机应用板上具有A/D、D/A转换、打印机接口,并行输入输出,定时计数功能和六位显示,八个开关键盘,该板上还扩充了程序存储区8K的EPROM2764一片,数据存储区8K的RAM6264芯片一片,该应用板下边自左至右为接线端子序号1~72。附表一为该板上接线端子序号与该引脚定义内容的一览表,为了明显起见,下面把用户常用的一些资源及其地址罗列出来,供用户使用时参阅。
(一) 单片机8031部分:
1、 8031单片机,上电复位和按钮复位两种复位方式,主频晶振6MHZ。
2、 INT1外部中断输入信号,已被A/D芯片0809的EOC信号所占用。
3、P1口的八位I/O线由板上开关KA控制可有两种用途,一是当KA对应位,置于ON的状态时,P1口的该位I/O线去控制板上的对应位的发光二极管,当KA上该位处于“OFF”状态时,该位I/O线引到接线端子上供用户使用。
4、T1实时计数器:T1受KB开关上的第二位控制,当KB2处于“ON”时,T1可以做为计数工作方式,用来统计板上按钮开关J按动的次数,为学生计数实验所设计,当KB2处于“OFF”时,T1引到接线端子上供用户使用。
5、除上述之外,其它有关8031的引脚已全部引到接线端子上,供用户选用。
(二)应用系统扩展部分
1、74LS138译码器地址:8031的P2.5~P2.7分别接于74LS138的A、B、C译码地址线上,其真值表如下:
74LS138的输出 | P<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2.7 C | P2.6 B | P2.5 A | 芯 片 地 址 |
Y0 | 0 | 0 | 0 | 0000H~1FFFH 6264 |
Y1 | 0 | 0 | 1 | 2100H 8155 |
Y2 | 0 | 1 | 0 | 4000H DAC0832 |
Y3 | 0 | 1 | 1 | 6000H ADC0809 |
Y4 | 1 | 0 | 0 | 8000H 打印机 |
Y5 | 1 | 0 | 1 | 接线端子 56 |
Y6 | 1 | 1 | 0 | 接线端子 45 |
Y7 | 1 | 1 | 1 | 接线端子 44 |
2、8155芯片:
命令/状态寄存器的地址:2100H
A口地址:2001H 接线端子的65~72位
B口地址:2102H PB0~PB6分别用于显示器的a~g字型选择输出
C口地址:2103H PC0~PC5分别用于显示器字位选择输出
3、EPROM 2764 地址:0000H~1FFFH
(三) 开关、键说明:
1、K1~K8拨码开关:作为8路开关量输出。置于ON端为高电平输出,置于OFF端为低电平输出。对应于接线端子的4~11号位。
2、KA1~KA8拨码开关:分别控制8个发光二极管L1~L8。置于ON状态时,8031P1口P1.0~P1.7分别控制发光二极管的L1~L8。置于OFF状态时,P1.0~P1.7与L1~L8断开,分别引到接线端子的第18~25号位。
3、KB1~KB2拨码开关:KB1置于ON状态时,RST复位键与8031第9脚RESET接通。置于OFF状态时RST复位键与8031 RESET脚断开。此时8031的第9脚RESET接于接线端子第26号位。KB2置于ON状态时,计数按钮开关J与8031的T1定时计数器引脚连通,KB2置于OFF状态时,8031的T1与接线端子31号位相接。
4、J:计数用按钮开关。
5、RST:复位按钮开关。
6、W1电位器:A/D转换时0809模拟量输入的调节。
二、MCS-51单片机应用板的使用说明
MCS-51单片机应用板应用时,要与单片机开发系统和计算机配套使用。目前实验室用得计算机型号为PC586,单片机开发系统型号为DICE-5928H(使用说明另查附件),其它型号的MCS-51系列开发系统也可与其连接。另外还需要一直流5V电源。使用时,将开发系统的40芯仿真探头插到应用板上的8031插座上,将开发系统上的通讯线连接到计算机上的串行口1上或串行口2上,将开发系统的电源线和MCS-51单片机的电源线同时接通5V电源,就可以调试使用了,如下图所示。注意插接时看清方向不能插反,当作D/A转换实验时需再将一个+15V和一个 - 5V直流电源接到接线端子上。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />
该板上的打印机接口电路设计是与μP – 40 打印机相配合的,实验时应把打印机电源接到系统电源上,把打印机上的20芯扁平电缆线插到实验板对应的20芯插座上,即可调试。
CZ1 为8051仿真口
CZ2 为8098仿真口
DZ1 为电源及通讯接口
附表一:
接线端子序号定义表
序号 名称 序号 名称
1 —— ADC0809的 IN3 37 —— P2.3
2 —— ADC0809的 IN2 38 —— P2.4
3 —— ADC0809的 IN1 39 —— P2.5
4 —— 键盘开关输入端K1 40 —— P2.6
5 —— 键盘开关输入端K2 41 —— P2.7
6 —— 键盘开关输入端K3 42 —— 程序区读信号PSEN
7 —— 键盘开关输入端K4 43 —— 锁存信号ALE
8 —— 键盘开关输入端K5 44 —— 译码器74LS138输出 Y7
9 —— 键盘开关输入端K6 45 —— 译码器74LS138输出 Y6
10 —— 键盘开关输入端K7 46 —— 数据线 D0
11 —— 键盘开关输入端K8 47 —— 数据线 D1
12 —— ADC0809的IN0 48 —— 数据线 D2
13 —— 电源地 49 —— 数据线 D3
14 —— 电源+5V 50 —— 数据线 D4
15 —— 电源+15V 51 —— 数据线 D5
16 —— DAC0832OUT 52 —— 数据线 D6
17 —— 电源 –5V 53 —— 数据线 D7
18 —— P1.0 54 —— 8155 的OUT
19 —— P1.1 55 —— 8155的IN
20 —— P1.2 56 —— 译码器74LS138的Y5
21 —— P1.3 57 —— 经锁存后的地址线A0
22 —— P1.4 58 —— A1
23 —— P1.5 59 —— A2
24 —— P1.6 60 —— A3
25 —— P1.7 61 —— A4
26 —— 复位脚 62 —— A5
27 —— 串行口 RXD 63 —— A6
28 —— 串行口 TXD 64 —— A7
29 —— 外部中断INT0 65 —— 8155的PA口的PA0
30 —— 定时计数器T0 66 —— PA1
31 —— 定时计数器T1 67 —— PA2
32 —— 读信号 RD 68 —— PA3
33 —— 写信号 WR 69 —— PA4
34 —— P2.0 70 —— PA5
35 —— P2.1 71 —— PA6
36 —— P2.2 72 —— PA7
实验一、开发系统的应用与简单程序设计
一、实验目的:
1、了解DICE仿真器的结构和功能;
2、掌握DICE仿真器的基本操作和使用方法;
3、利用已学过的MCS-51单片机的指令系统,进行一些简单的程序设计,并通过实验熟悉调试程序的过程。
二、实验设备:
1、DICE仿真器一台;
2、DICE仿真器专用电源一台;
三、实验内容及要求:
1、打开DICE仿真器专用电源,仿真器上显示器的最左端显示提示符,一个闪动的“P”子符,表示仿真器系统基本正常(如果没有一个闪动的“P”,按一下“总清”键),等待你的操作;
2、 打开计算机电源,在C盘上运行下列命令:
C:\>CD\DICE51<CR>回车,便进入DICE51子目录。
C:\> DICE51>AMOUSE<CR>回车(执行鼠标程序);
C:\>DICE51>M51<CR>回车,便进入汇编模式下调试环境。
在运行M51.EXE命令时,如果屏幕上出现 “Linked CPU error”说明联机不成功。这时可检查 CPU 开关是否在 51 位置;开发系统的电源是否已打开;通讯线连接是否正确;串行口设置是否正确。
3、如果联机错误,这可能是串行口设置不对,可通过系统机[F10]键,打开“Options”子菜单(也可用ALT-O打开),选择“ports”选项,设置所对应的串行口。这时可通过“ALT-X”退出,重新运行M51.EXE命令,屏幕显示集成调试环境。
4、这时可执行“File”文件管理中的“New”建立新文件,按老师的要求将要调试的源文件输入计算机,源文件的格式如下(可参考附录一):
ORG 0000H
AJMP MN
ORG 0100H
MN: MOV SP,#60H
MOV A,#02H
.
.
.
.
HERE: SJMP HERE
END
5、文件输入完后,便可以对它进行绘编、连接、装载。可通过[F9]键或用鼠标点“Compile”选项来完成。
6、按完[F9]键后便可对所打开的文件进行调试。通过[F10]键主菜单命令键打开“Debug”子菜单,便可以进行断点的设置、断点的清除、断点数量显示、单步、跟踪单步、自动单步、程序运行到光带处、全速运行等。
7、 程序运行完后,由特殊功能寄存器窗口或数据区窗口查看程序执行结果。
四、实验报告内容:
1、 画出程序流程图;
2、 写出程序清单;
3、 写出调试过程及程序执行结果。
实验二、应用程序设计及调试
一、实验目的:
利用已学过的MCS-51单片机的指令系统,进行一些较复杂的程序设计,并通过实验,进一步熟悉调试程序的过程。
二、实验设备:
同实验一
三、实验内容及要求:
将30H~39H中10个无符号数,剔除最大值和最小值,求平均数,并转换成BCD码,存入50H中。
四、实验报告内容:
同实验一
实验三、数据存储器扩展实验
一、 实验目的:
1、 了解微机存储器的组成;
2、 掌握存储器与CPU之间的接口方法;
3、 掌握存储器容量的扩展方法。
二、 实验设备:
1、 MCS-51单片机应用板一块;
2、 DICE仿真器一台;
3、 DICE仿真器专用电源一台;
4、 数据存储器 6264RAM一片
三、 实验内容:
1、MCS-51单片机应用板上已有8K 的数据存储空间,其地址为0000H~1FFFH。本实验要求另外再扩展一片RAM6264,地址安排在C000H~DFFFH。为此,首先应该设计一个CPU与RAM芯片之间的接口电路,这个接口电路与8031单片机各种总线相接,使8031能够按照要求的地址范围对RAM6264进行读写操作。
首先应该熟悉RAM6264芯片的各管脚定义及逻辑要求,然后确定译码电路。将应用板上的74LS138译码输出脚Y6接到RAM6264的片选脚,。译码确定之后,按照6264的接线要求,将系统提供的地趾线、数据线和控制线分别接到RAM6264的对应脚,确认连接无误后,方可调试。
2、编一测试程序,将立即数35H送入RAM6264的C000H~DFFFH各单元,送后检查,若都对,将立即数09H送入CPU的50H,若有不对的,将其地址的DPH值送入50H,DPL值送入51H。
四、 实验步骤:
1、将面包板上的RAM6264芯片与接口电路和CPU连接好;
2、将应用板与仿真器相接,并接通电源;
3、将测试程序输入计算机,执行程序后,在数据区窗口看执行结果,以确定扩展是否成功。
五、 实验报告要求:
1、画出详细的8031单片机与6264芯片的连线图;
2、写出调试过程中发现的问题及解决的方法;
3、若改变6264地址,哪些连线需做改动,试举例说明。
4、满足实验报告其它要求。
实验四、 LED显示器实验
一、 实验目的:
1、掌握显示程序的设计方法和8155控制字的设定;
2、复杂程序设计并显示的综合练习。
二、
实验电路:
三、实验内容及要求:
1、编写动态显示程序,8155的PB口控制各位显示器的字形,PC口控制各位显示器的阴极电位,使用六位共阴极显示器,显示缓冲区为79H~7EH(参考程序见附录一)。
2、利用所学过的知识,编写运算处理程序并显示程序运算结果。
实验五、定时器/计数器的应用
一、 实验目的:
1、掌握定时器/计数器在定时工作和计数工作时控制寄存器TCON的用途及方式控制字TMOD各控制位的设定和含义;
2、中断允许寄存器IE各控制位的设定和含义;
3、中断的响应过程及中断源入口地址。
二、实验设备:
同实验一
三、实验电路:
计数/定时电路示意图
四、 实验内容及要求:
1、将T1设定为计数器方式工作,将按钮开关J按下(接通)抬起(断开)次数作为外部事件脉冲从T1输入,将T0设定为定时功能,每按一次按钮开关J键,实现每隔一秒钟使P1.0、P1.1、P1.2……P1.7依次输出高电平送到发光二极管上显示出来。
*2、用单片机内部定时器T0来产生时间基准,通过实验板上的六位数码管显示器模拟时钟,显示时、分、秒,即随时显示当地时间,如同一般的电子钟。
为了实现上述设想,在RAM区中应按排两个数据区,一个是显示数据缓冲区,共占六个单元,与显示器一一对应,始终存放着要显示的内容。另一个是计数缓冲区,用来存放时、分、秒的十进制数值,以便进行计时。此外还要设一个单元用来存放十分之一秒的计数结果。因为定时器不可能直接产生秒信号,但可以产生十分之一秒(0.1秒)信号,若用软件计数10次,即为一秒,所以,第二个缓冲区占用四个单元,十分之一秒、秒、分、时。然后,根据单片机的时钟频率,确定产生0.1秒的时间常数。该应用板的晶振为6MHZ。
本实验需要两个子程序和一个中断服务程序。其中中断服务程序用来修改时、分、秒、1/10秒的单元内容,并转换成BCD码,分半程序用来把时、分、秒的内容分半后放入显示缓冲区,显示子程序用来把显示缓冲区的内容从数码显示器上显示出来。除此之外,主程序用来初始化T0和缓冲区单元,并调用各子程序,形成一个完整的应用程序。
4、 编写秒表显示程序,数码管的前四位显示0000,数码管的后两位显示秒表。
实验六、A / D 与D/A 转换器实验
一、 实验目的:
1、 掌握A/D和D/A的转换原理;
2、 熟悉A/D和D/A接口电路及接线方法;
3、 掌握A/D和D/A转换的编程方法。
二、 实验设备:
1、 示波器;
2、 -5V电源;
3、 其余设备同实验三。
三、实验电路
D/A转换电路示意图
|
A/D转换电路示意图
四、实验内容及要求
1、编写程序,当调节应用板上电位器W1时,即改变了0809输入端IN0的输入电压信号,记录下该模拟量转换成数字量值的大小,放入30H单元。
2、利用板上给定的DAC0832转换器,产生不同频率的波形,如锯齿波,三角波,方波,矩形波等,周期自定,波形在示波器上输出显示。锯齿波产生的原理是:每隔一定的时间往D/A转换器送一数值,且该数值逐渐提高,达到一定值后,又回到最小值重复上述过程,因为转换器输出的模拟信号与输入的数字信号成正比,所以输出的波形类似于锯齿形状,所以称为锯齿波。编程过程中需要注意的是每送完一个数需要一段软件延时,延时的长短决定了周期的大小。
3、编写程序,将A/D转换的数字量作为D/A转换的延时常数,当调节单片机应用板上的电位器W1时,D/A转换的锯齿波的频率也随之变化。
实验七、串行口双机通讯实验
一、实验目的:
1、 掌握8031单片机串行口的使用方法;
2、 掌握串行口工作波特率的设计方法;
3、 通讯系统编程练习。
二、实验设备:
1、 MCS-51单片机应用板二块;
2、 DICE仿真器二台;
3、 DICE仿真器专用电源二台。
三、实验电路:
四、实验内容:
如图所示,要求利用串行口方式2或方式3主机向从机传送数据。
主机显示时钟(时、分、秒)值,并每秒向从机发送一次时钟值,从机每秒接收一次主机发来的时钟值也从显示器上显示出来。若通讯正确,两机显示内容相同。
五、实验步骤:
1、连好系统,接好电源;
2、两位同学同时输入程序,进行调试;
3、从机首先运行,主机再运行查看结果是否正确。
实验八、打印机接口实验
一、实验目的:
1、学会TPUP40A型打印机与单片机的接口方法;
2、掌握打印程序的编写。
二、 实验设备:
1、 TPUP40A型打印机一台;
2、 其余设备同实验三。
三、实验电路
打印机接口电路示意图
表8–1 UP40命令代码一览表
命 令 代 码 | 功 能 | 格 式 | 说 明 |
01 | 字符、图符增宽 | 0101 0102 0103 0104 | 为5×7点阵字符(基准字符) 横向为基准字符2倍即10×7点阵 横向为基准字符3倍即15×7点阵 横向为基准字符4倍即20×7点阵 |
02 | 字符、图符增高 | 0201 0202 0203 0204 | 为5×7点阵字符(基准字符) 纵向为基准字符2倍即5×14点阵 纵向为基准字符3倍即5×21点阵 纵向为基准字符4倍即5×28点阵 |
03 | 字符、图符增大 | 0301 0302 0303 0304 | 为5×7点阵字符(基准字符) 纵向为基准字符2倍即10×14点阵 纵向为基准字符3倍即15×21点阵 纵向为基准字符4倍即20×28点阵 |
04 | 更换行间距 | 04××(××为00-FF点行) | 例0402为更换行间距为02点行 |
05 | 用户自定义字符点阵命令 | 05××YY1YY2YY3YY4YY5YY6 | ××为被定义代码10-1FH有效YY1—YY6为6个点阵字节 |
06 | 换码 | 06X1X1YnYn | X1X1代换码10H—1FH之一YnYn被代换码 |
07 | 水平跳区 | 07 |
|
08 | 垂直跳行 | 08×× | ××为空行数01-0FFH |
0A | 空格回车换行 | 0A | 送空格符20H后回车换行 |
0D | 回车换行 | 0D | 回车换行06命令结束码 |
0E | 重复打印同一字符命令 | 0E××YY | 重复打印YY个(00—FFH)××为被重复的代码 |
0F | 打印位点阵图命令 | 0F××YY1—YYn | ××点阵图宽度(1—240D)YY1—YYn点阵字节(1—240字节)数目与××相等 |
表8-2 UP40打印机标准ASCⅡ代码
低字节
高字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|
2 3 4 5 6 7 |
0 @ P 、 P | ! 1 A Q a q | ′ 2 B R b r | # 3 C S c s | $ 4 D T d t | % 5 E U e u | & 6 F V f v | 。 7 G W g w | ( 8 H X h x | ) 9 I Y i y | * : J Z j z | + ; K [ k { | , <
L \ l | | - = M ] m } | . >
N ↑ n ~ | / ? O ← o ※ |
|
表8-3 UP40打印机非ASCⅡ代码表
低字节
高字节 | 0 1 2 3 4 5 6 7 8 9 A B C D E F |
8 9 A B C D | 0 一 二 三 四 五 六 七 八 九 十 元 年 月 日 …
|
四、实验内容及要求:
编写打印程序,用16 X 16点阵打印自己姓名中的任意一个汉字。如果打印出的结果与要求不符,要修改程序,直到结果正确为止。将修改后的程序连同打印结果附在实验报告上。
附录一:
动态显示参考程序 (FBDIR.ASM)
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H
MOV DPTR,#2100H
MOV A,#0EH
MOVX @DPTR,A
MOV 5AH,#56H
MOV 5BH,#34H
MOV 5CH,#12H
LOOP: ACALL FB
ACALL DIR
AJMP LOOP
ORG 0200H
FB: MOV R0,#5CH
MOV R1,#79H
MOV R3,#03H
LP2: MOV A,@R0
MOV R2,A
SWAP A
ANL A,#0FH
MOV @R1,A
INC R1
MOV A,R2
ANL A,#0FH
MOV @R1,A
INC R1
DEC R0
DJNZ R3,LP2
RET
ORG 0300H
DIR: MOV R0,#79H
MOV R2,#01H
MOV A,R2
LD0: MOV DPTR,#2103H
MOVX @DPTR,A
MOV DPTR,#2102H
MOV A,@R0
ADD A,#0FH
MOVC A,@A+PC
DIR1: MOVX @DPTR,A
MOV R7,#02H
ACALL DL
INC R0
MOV A,R2
JB ACC.5,LD1
RL A
MOV R2,A
AJMP LD0
LD1: RET
DSEG0: DB 3FH,06H,5BH,4FH,66H,6DH
DSEG1: DB 7DH,07H,7FH,6FH,77H,7CH
DSEG2: DB 39H,5EH,79H,71H,73H,21H
DSEG3: DB 31H,6EH,40H,3EH,00H,00H
DL: MOV R6,#0FFH
DL6: DJNZ R6,DL6
DJNZ R7,DL
END
该程序执行后,数码管显示 1 2 3 4 5 6 。
实验参考文献:
[1] 何立民编,《MCS—51系列单片机应用系统设计》,北航出版社
[2] 何立民编,《单片机应用系统设计—系统配置与接口技术》,北航出版社
[3] 何立民编,《单片机应用系统设计》,北航出版社
[4] 张家栋编,《单片机原理接口及应用实验指导书》,北方交通大学
[5] 李华编,《MCS-51系列单片机实用接口技术》,北航出版社
文章评论(0条评论)
登录后参与讨论