第一章系统概述.docx
《第一章系统概述.docx》由会员分享,可在线阅读,更多相关《第一章系统概述.docx(183页珍藏版)》请在冰点文库上搜索。
第一章系统概述
第一章系统概述
1.1系统组成
Dais系列单片机微机仿真实验系统的51单片机实验与仿真由管理CPU、目标CPU和通用电路、接口实验电路及稳压电源组成,通过RS232C串行接口与PC微机相连,系统硬件主要内容如下:
CPU
管理CPU、目标CPU8032/78E438/STC系列单片机
系统存储器
监控管理程序在管理CPU的FLASH中、RAM61256二片(64K)、BPRAM61256(32K)。
接口芯片
及单元实验
8251、8253、8255、8259、ADC0809、DAC0832、164、74LS273、74LS244、电子发声单元,电机控制单元,开关及发光二极管、单脉冲触发器、继电器控制等
外设接口
打印接口,RS232C串口、51仿真接口
显示器
6位LED、二路双踪示波器
键盘
32键自定义键盘
EPROM编程器
对EPROM2764/27128快速读出
系统电源
+5V/2A,±12V/0.5A
1.2系统功能与特点
⑴自带键盘、显示器,能独立运行,也可以PC机为操作平台。
两种工作方式任意选择,均全面支持《单片机原理与应用》等课程的实验教学。
⑵系统采用紧耦合多CPU技术,用STC89C58作为系统管理CPU,8032/78E438/STC系列单片机作为目标机仿真与实验CPU,其软硬件资源100%出借。
⑶目标CPU采用主频为11.0592MHz,支持扩展仿真(即RAM仿真),亦支持ROM仿真(即FLASH下载式仿真)。
在ROM仿真模式下,可实现对P0、P2的I/O口功能。
⑷配有二片61C256静态存储器构成系统的64K程序空间,地址范围为0000H~0FFFFH,还配一片61C256(32K)作为用户设置的断点区(BPRAM)。
⑸实验项目完整丰富,与课程教学紧密结合,同时配有直流电机、步进电机、音响等实验对象,可支持控制应用类综合实验。
⑹系统接口实验电路为单元电路方式,电路简捷明快,一体机的8位数据总线以扁平线或排线形式引出,这样既减轻繁琐的连线工作,又提高学生的实验工作能力。
⑺通过RS232通信接口,在Windows集成软件的支持下,利用上位机丰富的软件硬件资源,实现用户程序的编辑、编译、调试运行,提高实验效率。
⑻具有最丰富的调试手段,系统全面支持硬件断点,可无限制设置断点,同时具有单步、宏单步、连续运行及无限制暂停等功能,100%保护用户现场,返回监控。
⑼向用户提供ISA总线接口及PARK板接口,为研发与创新实验的实施创造了必备的拓展环境。
⑽向用户提供KEIL驱动程序,将Dais驱动程序加入KEIL的配置文件,即可实现Dais仿真实验系统与最优秀的KEIL无缝连接。
1.3系统资源分配
实验系统寻址范围定义如下:
空间地址
器件选用
用途与说明
0000H~7FFFH
6116
监控程序空间
0000H~0FFFFH
PROM
目标机程序空间
0000H~0FFFFH
实验接口电路
数据及IO空间
系统已定义的I/O地址如下:
接口芯片
口地址
用途
74LS273
0FFDDH
字位口
74LS273
0FFDCH
字形口
74LS245
0FFDEH
键入口
8255A口
0FFD8H
EP总线
8255B口
0FFD9H
EP地址
8255C口
0FFDAH
EP控制
8255口
0FFDBH
控制字
第二章安装使用
2.1硬件安装
⑴电源连接:
通过随机所配的三芯电源线接入AC220V电网。
⑵打开电源开关系统应显示闪动的“P.”,若否应按下RESET键,如仍不显示闪动的“P.”,应立即切断电源,检查后重新进行或与本公司驻当地销售服务中心联系。
⑶系统功能自检
在闪动的“P.”状态下按键:
[MOVE]→0000→[STEP]→[EXEC],系统以连续方式运行“8”字循环右移程序,若6位LED出现跑“8”显示,说明系统已进入正常工作状态,可按RESET键返“P.”待令。
2.2快捷使用
1.Windows环境
⑴在桌面上点击图标
然后选择以实验系统所插串口一致的选项,点击“确定”便进入Dais集成调试环境。
⑵点击工具条中“
”图标,在打开对话框中双击LED51.asm文件,进入实验源程序的编辑窗口。
⑶点击工具条中“
”图标,进行源文件的编译、装载,在出现编译成功的对话框后点击“OK”框自动进入源文件调试状态。
⑷在工具条中点击所需的运行方式:
“
”单步、“
”宏单步、“
”运行。
⑸若需要以断点方式运行,可直接点击源语句行前的“
”图标来完成所需断点的设置与清除,然后再点击“
”图标进入断点运行状态。
⑹系统一旦进入运行状态后若需终止该程序的运行请点击“
”图标退出当前操作返回待令状态。
2.LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入实验项目所需的程序入口地址,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
⑶若需要以断点方式运行,请在“P.”状态下键入断点地址然后按“SRB”键确认,再键入实验程序入口地址按“EXEC”进入实验项目的断点运行。
⑷系统一旦进入运行状态后若需终止该程序的运行请按“STOP”退出当前操作返回待令状态。
第三章MCS-51单片机实验指导
本实验指导是为适应各大、中专院校开设单片机原理与应用方面的课程设置需要而编写,供学生编程用。
完成本实验指导中的实验,可使学生基本掌握MCS-51单片机的结构原理、程序框图和实验步骤。
免除了主讲教师和实验辅导老师为设计、准备调试实验线路和实验程序所需的工作量,节约宝贵的时间。
一、实验指导书中所列的实验程序已经固化到系统管理CPU中,在“P.”状态下,按动“0”键→再按“EV/UN”键,将程序传送到以0000H为起始地址的RAM中。
因实验程序中采用子程序形式较多,要互相调用,所以必须把程序全部传送到实验系统中,对中断入口等地址的指令按照实验要求输入。
其中MCS-51实验程序地址范围:
0000~1FFFH,您可以通过系统自带的键盘显示输入各种命令运行系统RAM中的实验程序,显示实验结果完成各个实验项目。
二、实验接线图上的粗实线表示用户在实验时要用导线连接起来。
三、所有实验都是相互独立的,次序上也没有固定的先后关系,在使用本书进行教学时,教师可根据贵校(院)的教学要求,选择相应实验。
四、对同一问题的解决办法往往不是唯一的欢迎用户在使用本书过程中提出最为优秀的实验方案,指示错误和不足,希望用户反馈给我们,以便及时修改。
五、每个实验程序的序号、实验名称、入口地址见下表。
软件部分实验
实验序号
软件实验名称
入口地址
实验一
清零程序
0640H
实验二
拆字程序
0660H
实验三
拼字程序
0680H
实验四
数据区传送子程序
07B0H
实验五
数据排序实验
09B0H
实验六
查找相同数个数
0AA0H
实验七
无符号双字节快速乘法子程序
0970H
实验八
多分支程序
0A10H
实验九
脉冲计数(定时/计数器实验)
06E0H
实验十
电脑时钟(定时器、中断综合实验)
0030H
实验十一
二进制到BCD转换
联机操作
实验十二
二进制到ASCII转换
联机操作
实验十三
八段数码管显示程序
联机操作
实验十四
键盘扫描显示实验
联机操作
硬件部分实验
实验序号
硬件实验名称
入口地址
实验一
P1口亮灯实验
0790H
实验二
P1口转弯灯灯实验
0C30H
实验三
P3口输入P1口输出
0810H
实验四
工业顺序控制实验
0190H
实验五
8255ABC口输出方波
0580H
实验六
PA口控制PB口实验
0770H
实验七
8255控制交通灯
0BB0H
实验八
简单I/O扩展实验
0B80H
实验九
0809A/D转换实验
05A0H
实验十
0832D/A输出方波实验
调零0617H,方波061FH
实验十一
电子音响实验
music.bin
实验十二
继电器控制实验
0F00H
实验十三
步进电机实验
0CA0H
实验十四
8253方波实验
0EC0H
实验十五
串并转换实验
0F30H
实验十六
外部数据存储器扩展
0F50H
实验十七
8032串行口应用实验
(一)—双机通信
发送0F80H、接收_0FC0H
实验十八
8032串行口应用实验
(二)—与PC机通信
发送0F80H、接收_0FC0H
实验十九
小直流电机调速实验
05E0H
实验二十
LED16×16点阵显示实验
0188H
实验二十一
2×16LCD液晶显示接口实验
0FFCH
实验二十二
红外收发实验
1000H
实验二十三
数字温度传感实验
1003H
实验二十四
外部中断处理(急救车与交通灯实验)
联机操作
多CPU系列教学实验系统状态设置
Dais-多CPU实验系统有多种工作模式,系统对各模式的状态设置定义如下:
1.接口实验模式:
上电或复位系统无条件进入接口实验模式,显示闪动的“P.”。
2.串口出借模式:
在“P.”状态按F2功能键,系统进入串口出借模式,显示“P......”,该状态用户可以自行定义串行口。
按F1功能键或按复位按钮,均使系统返回初始状态“P.”。
3.下载仿真模式:
在“P.”状态按F1功能键,系统进入下载式仿真模式,显示“H.”,在该状态只有按F2功能键才能返回状态“P.”。
在联机状态下,通过菜单栏“设置→仿真模式”,在对话框中设置:
1.接口实验模式:
片外RAM=系统,片外ROM=系统
2.串口出借模式:
片外RAM=用户,片外ROM=系统
3.下载仿真模式:
片外RAM=系统,片外ROM=用户
软件实验
本节共编了十四个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图扩展外部数据存储器。
外部数据存储器电路图
⑴将DMA单元的D0~D7总线接口用8芯扁平线与数据总线单元D0~D7的任一接口相连,DMA单元的A0~A7地址接口与地址总线单元(低八位)A0~A7的任一接口相连,DMA单元的A8~A12地址接口与地址总线单元(高八位)A8~A12的任一接口相连。
⑵DMA单元的MWR插孔与六位LED左下方的IOW插孔相连。
⑶DMA单元的MRD插孔连到六位LED左下方的IOR插孔。
⑷DMA单元的MACS插孔连到六位LED右下方的A15插孔。
实验一 清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000~20FFh的内容清零。
三、程序框图
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时,每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH中执行程序前后的内容变化。
五、程序清单
ORG0640H
0640:
7800SE01:
MOVR0,#00H
06429020000MOVDPTR,#2000H;(2000H)送DPTR
0645E4LOO1:
CLRA
0646F0MOVX@DPTR,A;0送(DPTR)
0647A3INCDPTR;DPTR+1
064808INCR0;字节数加1
0649B800F9CJNER0,#00H,LOO1;不到FF个字节再清
064C80FELOOP:
SJMPLOOP
六、思考
假使把2000H~20FFh中的内容改成FFh,如何修改程序。
实验二 拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入0660,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se02.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~2002h中内容变化情况。
五、程序清单
ORG0660H
SE02:
MOVDPTR,#2000H
MOVXA,@DPTR
MOVB,A;(2000)→A→B
SWAPA;交换
ANLA,#0FH;屏敝高位
INCDPTR
MOVX@DPTR,A;送2001H
INCDPTR
MOVA,B
ANLA,#0FH;(2000)内容屏敝高位
MOVX@DPTR,A;送2002H
SJMP$
END
六、思考
如何用断点方式调试本程序。
实验三 拼字程序
一、实验目的
进一步掌握汇编语言设计和调试方法。
二、实验内容
把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按"0→EV/UN",装载实验所需的代码程序。
⑵在“P.”状态下键入0680,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se03.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2002h内容变化情况。
五、程序清单
;拼字程序
ORG0680H
SE03:
MOVDPTR,#2000H
MOVXA,@DPTR
ANLA,#0FH;(2000H)内容屏敝高位
SWAPA;交换
MOVB,A;保存
INCDPTR
MOVXA,@DPTR;(2001H)内容送A
ANLA,#0FH;屏敝高位
ORLA,B;或
INCDPTR
MOVX@DPTR,A;送2002H
SJMP$
END
实验四 数据区传送子程序
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵对R2、R3所定义的源地址单元从首址开始依次写入00、11、22、……、0FF。
⑶在“P.”状态下键入07B0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se04.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查由R4、R5所定义的目的地址单元从首址开始的内容依次应为00、11、22、……、0FF。
五、程序清单
;数据区传送子程序
ORG07B0H
MOVR2,00H
MOVR3,#00H
MOVR4,#10H
MOVR5,#00H
MOVR6,#00H
MOVR7,#08H
SE22:
MOVDPL,R3
MOVDPH,R2;建立源程序首址
MOVXA,@DPTR;取数
MOVDPL,R5
MOVDPH,R4;目的地首址
MOVX@DPTR,A;传送
CJNER3,#0FFH,LO42
INCR2
LO42:
INCR3;源地址加1
CJNER5,#0FFH,LO43
INCR4
LO43:
INCR5;目地址加1
CJNER7,#00H,LO44
CJNER6,#00H,LO45;字节数减1
SJMP$
NOP
LO44:
DECR7
SJMPSE22
LO45:
DECR7
DECR6
SJMPSE22;未完继续
END
实验五 数据排序实验
一、实验目的
熟悉MCS-51指令系统,掌握程序设计方法。
二、实验内容
编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。
三、程序框图
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵对片内RAM地址50h~5AH进行不规则置数。
⑶在“P.”状态下键入09B0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se05.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查片内50~5Ah中内容是否按从小到大排列。
五、程序清单
;数据排序实验
;数据排序实验
ORG09B0H
QUE:
MOVR3,#50H
QUE1:
MOVA,R3;指针送R0
MOVR0,A
MOVR7,#0AH;长度送R7
CLR00H;标志位为0
MOVA,@R0
QL2:
INCR0
MOVR2,A
CLRC
MOV22H,@R0
CJNEA,22H,QL3;相等吗?
SETBC
QL3:
MOVA,R2
JCQL1;大于交换位置
SETB00H
XCHA,@R0
DECR0
XCHA,@R0
INCR0;大于交换位置
QL1:
MOVA,@R0
DJNZR7,QL2
JB00H,QUE1;一次循环中有交换继续
SJMP$;无交换退出
END
六、思考
修改程序把50~5Ah中内容按从小到大排列。
实验六 查找相同数个数
一、实验目的
熟悉汇编语言编程。
二、实验内容
在2000~200Fh中查出有几个字节是零,把个数放在2100h中。
三、程序框图
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在2000~200Fh的几个单元中填入零
⑶在“P.”状态下键入0AA0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se06.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2100h中是几个单元数。
五、程序清单
;查找相同数个数
ORG0AA0H
L5800:
MOVR0,#10H;查找16个字节
MOVR1,#00H
MOVDPTR,#2000H
L5811:
MOVXA,@DPTR
CJNEA,#00H,L5816;取出内容与00H相等吗?
INCR1;取出个数加1
L5816:
INCDPTR
DJNZR0,L5811;未完继续
MOVDPTR,#2100H
MOVA,R1
MOVX@DPTR,A;相同数个数送2100H
L581E:
SJMPL581E
END
六、思考
修改程序,查找其他内容。
实验七 无符号双字节快速乘法子程序
一、实验目的
掌握MCS-51汇编语言程序设计方法。
二、预备知识
本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的:
(R2R3)×(R6R7)
=((R2)×28+(R3))×((R6)×28+(R7))
=(R2)×(R6)×216+(R2)×(R7)+(R3)×(R6)×28+(R3)*(R7)
三、实验内容
将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中。
四、程序框图
五、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵对R2、R3所定义的源地址单元从首址开始输入无符号整数。
⑶在“P.”状态下键入0970,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se07.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查R4R5R6R7中内容。
六。
程序清单
;无符号双字节快速乘法子程序
ORG0970H
QKUL:
MOVA,R3
MOVB,R7
MULAB;R3*R7
XCHA,R7;R7=(R3*R7)低字节
MOVR5,B;R5=(R3*R7)高字节
MOVB,R2
MULAB;R2*R7
ADDA,R5
MOVR4,A
CLRA
ADDCA,B
MOVR5,A;R5=(R2*R7)高字节
MOVA,R6
MOVB,R3
MULAB;R3*R6
ADDA,R4
XCHA,R6
XCHA,B
ADDCA,R5
MOVR5,A
MOVPSW.5,C;存CY
MOVA,R2
MULAB;R2*R6
ADDA,R5
MOVR5,A
CLRA
MOVACC.0,C
MOVC,PSW.5;加上次加法的进位