单片机实验指导书定稿.docx
- 文档编号:9204855
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:222.21KB
单片机实验指导书定稿.docx
《单片机实验指导书定稿.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书定稿.docx(25页珍藏版)》请在冰豆网上搜索。
单片机实验指导书定稿
单片机原理及应用
实验指导书
福州大学阳光学院电子信息工程系
2012年6月
目录
第一章实验系统简介及相关实验电路1
§1.1实验系统简介1
§1.2相关实验电路模块2
第二章实验系统软件及使用说明8
§2.1系统的安装和启动8
§2.2WAVE6000集成开发环境9
第三章实验项目及实验指导11
实验一简单程序的编写与调试11
实验二P1口输入/输出实验14
实验三定时器/计数器应用实验17
实验四外部中断实验20
实验五串行口通讯实验22
实验六允许急救车先行的交通灯控制实验25
第一章实验系统简介及相关实验电路
§1.1实验系统简介
本课程实验采用LAB6000改进型伟福单片机仿真实验系统。
该实验系统上有丰富的实验电路模块,还提供了强大的软、硬件调试手段,能够方便、灵活地完成各种实验。
本实验系统提供了逻辑电平输入开关等35个基本实验电路模块,可以灵活地构建各种实验方案,减少了繁琐的连接线过程,方便进行相应的编程实验。
板上还提供了DIP40/28/24/20/16/14插孔和CPU的地址数据总线引出插孔,供学生自己扩展其它实验,培养实际动手能力,加强对实验电路的理解。
本实验系统通过配置EX51B仿真板,可进行8051的实验。
本实验系统支持多种语言,适应不同层次的学生的编程需要。
高级语言编写应用程序,可使学生掌握高级语言的编程方法,而汇编语言又能让学生了解机器深层的原理。
本仿真实验系统具有三种使用方式:
第一种方式:
无系统机,仅用实验仪的板上仿真器进行仿真和实验。
实验系统自带键盘、显示器和系统监控程序,因此在无系统机的情况下,同样能够进行各种学习和实验。
第二种方式:
有系统机,用系统机上的集成调试软件驱动板上仿真器进行仿真和实验。
在有系统机的情况下,通过板上仿真器实现64K全空间的硬件断点和仿真。
第三种方式:
无实验仪、无仿真器,仅在系统机上采用软件模拟方式进行仿真。
PC机和系统机软件具有全集成化仿真环境,支持软件仿真与硬件仿真两种模式,软件仿真即在无仿真器的情况下进行。
§1.2相关实验电路模块
本实验系统上具有丰富的实验电路模块和灵活的组成方法来完成相应的实验。
还具有逻辑分析仪、波形发生器和程序跟踪器等强大的分析功能,让学生在做实验时不仅能了解程序的执行过程,更能直观地看到程序运行时的时序或者电路上的信号。
下面主要介绍与本课程实验相关的电路模块:
1.逻辑电平开关电路
图1逻辑电平开关电路
本实验系统上有8只开关S0―S7,并有与之相对应的S0―S7引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“1”,向下拨相应插孔输出低电平“0”。
2.LED电平显示电路
实验系统上装有8只发光二极管及相应驱动电路。
见图2,L0-L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1”时发光二极管点亮。
可以通过P1口对其直接进行控制:
点亮或者熄灭。
图2LED电平显示电路
3.单脉冲电路
图3单脉冲发生电路
单脉冲电路由按键(PULSE)和去抖动电路组成,每按一次(PULSE)键产生一个单脉冲。
板上有单脉冲的输出信号插孔,图为“
”和“
”,分别为正脉冲和负脉冲。
4.音频放大电路
图4音频放大滤波电路
5.继电器输出电路
图5继电器控制电路
当控制端电平置高,公共触点与常开端吸合。
我们可以将常开端接入一发光二极管,公共端接+5V电平,通过对控制端进行控制,观察发光二极管的状态。
6.逻辑门电路
或门与门非门
图6逻辑门电路
本实验系统提供系列门电路:
非门,或门,与门,D触发器。
逻辑门电路由7400和7404组合实现。
7.逻辑测量(逻辑笔)电路
图7逻辑笔电路
本实验系统上有逻辑测量电路,如图11。
可用于测量各种电平,其中红灯亮表示高电平,绿灯亮表示低电平。
如果两灯同时闪动,表示有脉冲信号;两灯都不亮时,表示浮空(高阻态)。
8.4 MHz脉冲信号源和多级分频电路
下图是4MHz脉冲信号输出电路。
可将4MHz脉冲信号接到分频电路上,经分频后可得到2M、1M、500K、250K、125K、62.5KHz多种频率的脉冲信号。
图8-2脉冲分频电路
图8-14 MHz脉冲产生电路
图9PWM转换电路
9.PWM转换电路
10.可调模拟量输入电路
图11:
8255端口扩展电路
图10电位器
电位器电路用于产生可变的模拟量(0-5V)。
11.8255端口扩展电路
图12直流电机/霍尔器件电路
12.直流电机电路
图13步进电机驱动电路
13.步进电机电路
14.存储器电路
本实验系统上有一片32K存储器61256。
提供给学生做存储器实验,由于地址译码为4K一段,所以只能提供4K容量使用,地址从0000H~0FFFH。
用RAMCS来选择不同的地址段,以适应不同的应用电路。
15.实验电路插座
本实验系统具有1个40芯通用电路插座,每个插座的全部引脚都被引出到相应的插孔,40芯通用插座可兼容28芯、24芯、16芯和14芯插座。
利用这个插座,可对双列直插式的各种微机芯片进行实验。
16.总线插孔
本实验系统上有三排总线插座,用于引出各种总线信号,其中AD0~AD7为8根数据总线,A0~A15为16根地址总线。
另外ALE,RD,WR为控制总线。
与CPU相关的一些控制信号和I/O信号例如P1口、RXD、TXD等信号在相应的仿真板上。
17.地址译码插孔
片选号
地址范围
CS0
08000H~08FFFH
CS1
09000H~09FFFH
CS2
0A000H~0AFFFH
CS3
0B000H~0BFFFH
CS4
0C000H~0CFFFH
CS5
0D000H~0DFFFH
CS6
0E000H~0EFFFH
CS7
0F000H~0FFFFH
第二章实验系统软件及使用说明
§2.1系统的安装和启动
1、集成开发环境的安装
使用实验设备自带的系统光盘完成仿真开发系统集成调试软件(WAVE6000集成开发环境)的安装。
2、和主机联机硬件安装(注意不要带电安装)
(1)、用户根据实验要求,在实验系统主机上插上相应的仿真板。
本课程主要进行MCS-51单片机的实验,应插上EX51B仿真板。
本课程主要采用1.1节中介绍的第二种方式,即在有系统机的情况下,利用WAVE集成调试软件进行80C51系列单片机实验的联机调试与仿真。
因此,为保证仿真板工作在该种方式下,应该将板上的跳线器J301开路,并且短接J302跳线器。
(2)、将随机配备的串行通讯电缆的一端与实验仪上的“仿真器串口”9芯D形插座相连,另一端与PC机的串行口(COM1/COM2任选)相连。
一般选择COM1口进行连接。
(3)、将实验台的电源线与220V电源相连。
(实验结束后应拔下)
3、系统的启动
打开实验箱的电源开关,红色电源指示灯亮。
仿真开发器初始化成功后,数码管会显示“8051”字样,表示仿真系统正常。
至此,可以打开PC机,执行WAVE6000集成调试软件,完成相应的实验的编程、调试等。
注意:
1、论是集成电路的插拔、通讯电缆的连接、跳线器的设置还是实验线路的连接,都应确保在断电情况下进行,否则可能造成对设备的损坏。
2、实验线路连接完成后,应仔细检查无误后再接通电源。
§2.2WAVE6000集成开发环境
在保证所有实验线路的连接无误后,即可执行WAVE6000集成开发环境,进行实验的编程与调试。
具体的实验步骤如下:
1、设置WAVE6000集成开发环境的仿真器。
设置如下:
仿真器型号:
伟福Lab6000实验仪;
仿真头型号:
MCS51实验(8031/32)。
2、新建文件,并在该文件中按照实验要求编写程序。
如果使用汇编语言编写程序,保存该文件时的后缀名为.asm。
3、编译、链接文件,检查语法错误。
编译文件不成功时,在界面最下端的观察窗口里会标出错误的位置及原因,双击此处,则程序窗口中出错的行将被标红,根据要求相应修改后再进行编译一次。
如果仍然存在错误,则重复上述过程。
如果编译文件成功,则说明该文件已无语法错误(但不意味着程序运行结果准确)。
对编译生成的.OBJ文件进行重新定位和链接,并将输出的绝对目标文件通过RS-232接口装载到仿真存储器中执行,即可对程序进行调试,观察运行结果。
4、综合利用多种执行方式,并观察各种窗口结果,调试程序至满意为止。
WAVE6000集成开发环境提供了跟踪、单步、断点和全速运行等方式调试程序,每种方式的作用分别如下:
(1)、跟踪执行
逐条执行程序,每执行一条指令,可逐条检查用户程序的执行情况。
跟踪执行时如果遇到调用指令,仿真器将使程序的指针进入被调用的程序段内部,仍然一步一步地执行。
(2)、单步执行
单步执行程序的作用与跟踪执行相仿,区别是单步执行遇到调用时,将自动连续地执行调用内部的所有指令,然后停在调用执行后的第一条指令上,可继续单步执行。
(3)、断点执行
设置中断程序运行的地址,使程序执行到中断地址处停止执行,在中断地址处检查程序的运行情况,并等待新的执行命令。
(4)、全速执行
用仿真器调试程序时,设置好执行的初始地址后,可自动执行程序。
当需从用户指定的程序地址处开始全速运行整个程序,或全速运行到断点处时,可采用全速执行方式。
当运用上述的各种执行方式运行程序时,需要及时地了解程序执行的结果,而运行结果很大程度上是由单片机内部各个部分的当前值来反映的。
仿真器提供了查看单片机(由仿真器模仿)内部各个部分情况的功能,检查执行结果的主要任务就是查看单片机内部的情况。
WAVE6000集成开发环境提供了可视化的界面窗口,可以直观地检查程序执行后单片机内部的情况,通常主要观察以下事项:
(1)、检查和修改单片机内部寄存器数据;
(2)、检查和修改8051单片机内部专用寄存器(SFR)数据;
(3)、检查和修改单片机程序存储器和外部数据存储器。
第三章实验项目及实验指导
实验一简单程序的编写与调试
一、实验目的
1、熟悉编程环境和程序的调试方法。
2、学习编写简单的80C51单片机汇编语言程序,并运用单片机实验教学系统进行调试、运行,检查其结果。
二、实验内容
1、通过对提供的程序文件进行编译、链接及运行,熟悉本实验教学系统、编程环境的使用,掌握程序的调试、运行方法,观察其结果。
提供的程序文件是利用8255可编程并行口芯片实现数据输入/输出的实验。
实验中用8255PB口作输入,读取拨键状态;PA口作输出,控制LED灯,模拟跑马灯过程。
2、编程实现将指定源地址和长度的存储块搬移到指定目标位置。
三、实验电路及连线
实验内容1中需要进行以下线路的连接:
连线
连接孔1
连接孔2
连线
连接孔1
连接孔2
1
L0
8255-PA0
10
K0
8255-PB0
2
L1
8255-PA1
11
K1
8255-PB1
3
L2
8255-PA2
12
K2
8255-PB2
4
L3
8255-PA3
13
K3
8255-PB3
5
L4
8255-PA4
14
K4
8255-PB4
6
L5
8255-PA5
15
K5
8255-PB5
7
L6
8255-PA6
16
K6
8255-PB6
8
L7
8255-PA7
17
K7
8255-PB7
9
CS0
8255CS
实验2不需要进行特别的线路连接。
四、实验说明
实验内容1中,进行相应的连线后,装入提供的如下程序,并编译、链接及运行,观察实验箱上的执行结果。
实验中认真记录程序在编译、链接和调试过程中出现的问题以及解决的方法。
modeequ082h;方式0,PA,PC输出,PB输入
PortAequ8000h;PortA
PortBequ8001h;PortB
CAddrequ8003h;控制字地址
org0h
mova,#mode
movdptr,#CAddr
movx@dptr,a;输出控制字
;PortB输入PortA输出
EX_B:
movdptr,#PortB
movxa,@dptr;读入PortB
movdptr,#PortA
movx@dptr,a;输出到PortA
movr5,#2
calldelay
ljmp0;循环,模拟跑马灯
delay:
movr7,#0
ddd:
djnzr7,ddd
djnzr5,ddd
ret
end
实验内容2实现数据块的搬移:
将内部RAM30H~3FH单元的内容分别置为00H~0FH,再将内部RAM30H~3FH单元的内容搬移到外部RAM4000H~400FH单元中。
最后将外部RAM4000H~400FH单元的内容搬移到内部RAM60H~6FH中。
程序运行后检查结果是否正确?
五、实验程序框图
六、实验报告要求
采用统一印发的“实验报告”用纸,逐项填写完整,要求字迹工整,数据真实。
认真记录程序在编译、链接和调试过程中出现的问题以及解决的方法;描述实验过程中观察到的结果,并分析实验结果是否与设计思想一致?
如果不一致,请说明原因何在?
报告中应附上编制的程序清单,同时总结通过本实验所获得的心得与体会。
实验二P1口输入/输出实验
一、实验目的
1、学习P1口的使用方法。
2、学习延时子程序的编写和使用。
二、实验内容
1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、P1.0、P1.1作输入口分别接两个拨动开关,P1.2、P1.3作输出口,分别接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。
编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
三、实验电路及连线
四、
实验说明
1、P1口是准双向口。
它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
2、8051延时子程序的延时量计算问题。
对于下面的程序,查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:
Delay:
MOVR6,#0H
MOVR7,#0H
DelayLoop:
DJNZR6,DelayLoop
DJNZR7,DelayLoop
RET
(256×255+2)×2×12÷6≈261ms
五、实验程序框图
六、实验报告要求
认真填写“实验报告”中各项内容。
如实记录实验中观察到的现象,掌握80C51单片机I/O口的准双向特性,尤其注意I/O口作为输入口时的用法。
报告中应附上编制的程序清单,并总结通过本实验所获得的心得体会。
实验三定时器/计数器应用实验
一、实验目的
1、学习80C51内部定时器/计数器的使用及编程方法。
2、学习中断处理程序的编程方法。
二、实验内容
1、用单片机内部的T0或T1定时,实现:
在P1.7引脚上输出一个矩形波,该矩形波的宽度为500ms,周期为1.5s。
2、用80C51内部定时器T1,按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
要求编写程序模拟一个时序控制装置。
开机后第一秒L1,L3亮,第二秒L2,L4亮,第三秒L5,L7亮,第四秒L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒L2,L4,L6,L8亮,第七秒八个二极管全亮,第八秒全灭,以后又从头开始,一直循环下去。
3、(可选作)80C51内部T0按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。
使用80C51的T1作定时器,0.1s中断一次,看T0内每0.1s来了多少脉冲,将其数值按二进制数在P1口驱动LED灯上显示出来,5秒后再次测试。
连线
连接孔1
连接孔2
1
P1.0
L0
2
P1.1
L1
3
P1.2
L2
4
P1.3
L3
5
P1.4
L4
6
P1.5
L5
7
P1.6
L6
8
P1.7
L7
三、实验电路及连线
实验内容1:
P1.7引脚波形
实验内容3:
外部计数脉冲输入
实验内容2、3:
P1口输出点灯
四、实验说明
1、内部定时器在单片机中有定时器和计数器两个功能。
关于内部定时器的编程主要是定时常数的设置和有关控制寄存器的设置。
2、T0、T1用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器周期。
因为实验系统的晶振是6MHZ,定时器工作于方式1,0.1s中断一次,所以定时常数的设置可按以下方法计算:
机器周期=12÷6MHZ=2uS
(65536-定时常数)×2uS=0.1s
定时常数=03CB0H。
然后对0.1s中断计数1000次,就是1秒钟。
3、在定时器的中断服务程序中,设置定时常数前要先关对应的中断,置数完之后再打开相应的中断。
4、(可选作)实验3中内部T0起计数器的作用。
外部事件计数脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。
这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
五、实验程序框图
六、实验报告要求
认真填写“实验报告”中各项内容。
描绘实验过程中在示波器上观察到的波形,并分析波形的参数是否与设计思想一致?
如果不一致,请说明原因何在?
如实记录实验中时序装置观察到的现象,掌握80C51单片机内部定时器的程序设计方法。
如果有选作计数器的实验,也应在报告中填写相应的实验结果。
报告中应附上编制的程序清单,并总结通过本实验所获得的心得体会。
实验四外部中断实验
一、实验目的
1、学习外部中断的基本使用方法。
2、进一步掌握中断处理程序的编制方法。
3、深刻理解中断程序与顺序、循环、查询程序有着本质的不同。
二、实验内容
1、将实验二中的实验内容1改为用外部中断触发,当有一次外部中断,发光二极管从左到右轮流点亮一遍。
2、将实验二中的实验内容2改为:
当有外部中断时才读取一次开关状态,并控制LED的亮暗。
平时开关状态的改变不影响LED的亮暗状态。
3、将实验三中的实验内容2中的LED点亮状态由定时器控制改为由外部中断控制。
每出现一次外部中断,LED状态向前推进一步,进而不断循环。
三、实验电路及连线
相关电路的连接同实验二、实验三;外部中断的触发信号由单脉冲输出产生,即将其连到P3.2(INT0)或P3.3(INT1)。
四、实验说明
中断服务程序的关键是:
1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
一般中断服务程序在进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器,并且在退出前恢复了这些寄存器。
2、必须在中断程序中设定是否允许中断重入,即设置EX0位。
如果中断服务程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。
本例中没有涉及这种情况。
五、实验程序框图
六、实验报告要求
认真填写“实验报告”中各项内容。
如实记录实验中观察到的现象,掌握外部中断的使用及其程序设计方法。
回顾实验过程中所遇到的问题及解决的方法,报告中应附上编制的程序清单,并总结通过本实验所获得的心得体会。
实验五串行口通讯实验
一、实验目的
1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。
2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。
3、学习串口通讯的中断方式的程序编写方法。
二、实验内容
利用单片机串行口,实现两个实验台之间的串行通讯。
其中一个实验台作为发送方,另一侧为接收方。
发送方读入存储区的值(01H,02H,04H,……,80H),并发送给接收方,接收方收到数据后,通过I/O口送出在LED灯上显示。
甲方乙方
三、实验电路及连线
LED灯与I/O口的连接参考实验二。
连线
连接孔1
连接孔2
1
甲方TXD
乙方RXD
2
甲方RXD
乙方TXD
3
甲方GND
乙方GND
四、实验说明
1、8051的RXD、TXD接线柱在POD51仿真板上。
2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。
也可以将本机的TXD接到RXD上,这样收到的数值,就会在本机LED灯上显示出来。
3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。
可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。
可以用实验仪上的逻辑分析仪采样串口通信的波形。
五、实验程序框图
六、实验报告要求
认真填写“实验报告”中各项内容。
如实记录实验中观察到的现象,掌握80C51单片机串行口的多机通信方式。
回顾实验过程中所遇到的问题及解决的方法,报告中应附上编制的程序清单,并总结通过本实验所获得的心得体会。
实验六允许急救车先行的交通灯控制实验
一、实验目的
1、学习利用8255芯片扩展单片机I/O口的方法。
2、进一步学习外部中断技术的基本使用方法
3、学习模拟交通灯控制的编程方法。
二、实验内容
本实验模拟交通信号灯控制。
一般情况下正常显示,交通灯的变化规律如下:
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转为状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转为状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
本实验要求:
应允许急救车先行,即有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。
设急救车通过路口时间为10秒,急救车通过后,交通恢复正常。
本实验用单次脉冲申请外部中断,表示有急救车通过。
三、实验电路及连线
连线
连接孔1
连接孔2
1
8255_CS
CS0
2
PA0
L0
3
PA1
L1
4
PA2
L2
5
PA3
L3
6
PA4
L4
7
PA5
L5
8
单脉冲输出
INT0(51)
四、实验说明
1、可编程通用接口芯片8255有三个八位的并行I/O口,如果8255的CS接地址译码CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为80001H,PC口地址为8002H。
8255有三种工作方式,本实验采用的是方式0:
PA输出。
五、实验程序框图
六、实验报告要求
认
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书 定稿
![提示](https://static.bdocx.com/images/bang_tan.gif)