实验指导书单片机原理电子通信综述.docx
- 文档编号:11878475
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:28
- 大小:1.03MB
实验指导书单片机原理电子通信综述.docx
《实验指导书单片机原理电子通信综述.docx》由会员分享,可在线阅读,更多相关《实验指导书单片机原理电子通信综述.docx(28页珍藏版)》请在冰豆网上搜索。
实验指导书单片机原理电子通信综述
实验一WAVE软件的使用及简单编程
一、实验目的
1、学习WAVE软件进行单片机仿真调试。
2、学习简单汇编编程。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机、WAVE软件环境
三、实验内容
1、Wave软件环境的熟悉与操作
2、在wave软件环境下编写并调试简单汇编程序
四、实验原理
五、实验步骤
1、学习WAVE软件的使用方法。
2、调试汇编指令(五类各调试一个)。
3、将单片机内部RAM区50H,51H的内容相加,结果存放在52H单元中。
4、将外部RAM区的0010H,0011H的低4位取出,拼成一个字节数据存入外部RAM区的0012H。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、概括汇编程序的基本格式。
2、描述汇编程序的编译过程。
2、实验总结(实验调试过程中的问题和调试体会)。
实验二分支和循环程序设计
一、实验目的
1、学习WAVE软件进行单片机仿真调试。
2、学习分支和循环结构汇编编程。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机、WAVE软件环境
三、实验内容
1、Wave软件环境的熟悉与操作
2、在wave软件环境下编写并调试分支和循环结构的汇编程序
四、实验原理
汇编语言源程序设计通常采用结构化设计方法,任何复杂的程序都可分解为:
a.顺序结构部分
b.分支结构部分
c.循环结构部分
d.子程序部分
1.顺序结构:
最简单的程序结构,其特点:
程序中的语句由前向后顺序执行,直到最后,这种程序中无分支、循环和子程序调用。
2.分支结构:
通过条件转移指令实现的,根据程序执行中的条件对程序进行判断,满足条件则进行程序转移,不满足条件就顺序执行。
分支程序分为单分支和多分支结构。
3.循环结构:
程序设计中,经常需要连续重复执行某段程序,解决这种问题最好采用循环结构的程序来完成,这种设计方法可大大地简化程序。
循环程序一般如下四部分组成:
①.置循环初值
用来设置循环初值,如:
预置变量,计数器数据指针初值等,为循环作准备。
②.循环体
循环体指要求重复执行的程序段,通过它完成对数据进行实际处理的任务。
③.修改控制变量
一般用一个工作寄存器Rn作为对循环次数的计数,每循环一次计数器减一,即修改循环控制变量。
④.循环控制部分
控制循环次数,当循环一定的次数后当满足循环结束条件时,停止循环。
4.子程序结构:
按功能分为中断子程序和功能子程序。
调用子程序时要注意:
(1)中断子程序调用由单片机自身产生,执行RETI指令返回;功能子程序调用由主程序执行LCALL或ACALL指令产生,执行RET指令返回。
(2)在子程序中,应包含有现场保护和现场恢复两部分。
(3)主程序和子程序约定好交换数据的地址单元或存储器,其为主、子程序共有部分。
(4)子程序可以对另外的子程序调用,称为子程序嵌套。
五、实验步骤
1、学习WAVE软件的使用方法。
2、调试:
设变量X存于内部RAM20H单元,函数值Y存于21H单元,试按照下式要求对Y赋值。
Y=X+3X>0;Y=20X=0;Y=XX<0
3、调试:
内部RAM40H与41H单元中有两个无符号数,现将其大者存入40H中,小者存入41H中。
4、调试:
P10、P11口控制红色LED和绿色LED交替1秒亮灭(1亮0灭)。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、画出步骤2的流程框图。
2、计算:
步骤4延时1秒的时间。
3、实验总结(实验调试过程中的问题和调试体会)。
实验三I/O口扩展实验
一、实验目的
1、学习P1口既做输入又做输出的使用方法。
2、学习I/O口数据输入、输出程序的C51编程方法。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验内容
1、P10、P11口作为输入口,输入开关的状态。
2、P12、P13、P14、P15口作为输出口,输出四个LED的亮灭状态。
3、C51编程实验开关量输入,并控制LED亮灭。
四、实验原理
1.I/O口
MCS-51系列单片机共有4个I/O口,分别是P0、P1、P2、P3,此四个接口都可以单独的做输入或输出使用。
实际应用中,P0口用于输出外部数据存储器的低8位,并分时复用作为与外部连接的数据总线口;P2口用于输出高8位地址;P3口常操作于定义的第二功能;P1口一般为留给用户使用的基本I/O口。
在单片机C语言中,对于端口(位)的使用可以使用sbit来定义,如:
sbitP10=P1^0//定义变量P10指向P1端口的第0位
在程序中就可以使用P10变量来访问P1口的第0位。
对于P0口、P2口,一般在访问外部数据空间时使用,在单片机C语言中的使用方法可以看下例:
#include
#include
#defineINPORTXBYTE[0XCFA8]//定义变量INPORT指向外部空间0XCFA8
#defineOUTPORTXBYTE[0XCFB0]//定义变量OUTPORT指向外部空间0XCFB0
voidmain(void)
{
OUTPORT=INPORT;
……
}
该例实现了将外部空间0xCFA8的数据转存入外部空间0xCFB0的功能,注意的是,在单片机C语言中,对于外部空间的使用,需要用XBYTE关键字来定义,而且程序要包含absacc.h这一函数库。
本实验利用单片机P1口扩展,实现由单片机I/O口读取开关量状态,同时将状态数据由单片机I/O口输出到LED显示。
其中两个开关的不同组合,对应不同LED显示状态。
本实验程序为减少总线口读写的频繁程度,需要增加一段延时程序,不会影响显示的稳定。
单片机C语言中延时的方法可以采用:
for循环、定时器定时。
2、仿真调试
单片机C语言的实验将以EL-MUT-III型单片机实验箱为硬件调试平台,以EL型教学实验环境软件为调试工具,实现本课程所有实验的仿真、调试任务。
首先打开实验台的电源,打开PC机进入桌面。
然后点击桌面快捷图标MCS51,以默认的通信方式点击确定。
在点击确定按钮的同时,立即打开实验台左上方的POWERSWITCH开关,此时,调试软件能够正确地进入调试环境,如图1所示。
图1新建C51文件
如图1所示点击:
文件\新建\C51文件,建立新C51文件,即可进入编辑环境,编辑C51语言代码,如图2所示。
图2编辑源代码
编辑完成代码后,可点击:
文件\保存,并选择保存路径和设定文件名,就可实现文件的保存。
注意的是,文件保存的路径不可太深,且不要有中文目录,文件名也不要太长,可参照下例:
D:
\work\ex1.c
源代码编辑完成后,进行编译、链接调试,如图3所示。
只要依次点击:
编译、链接按钮即可,也可以直接点击编译链接按钮。
编译、链接按钮都有快捷键方式,可以使用快捷键,实现同样的功能。
图3编译、链接
在编译、链接的过程中,会弹出对话框,可观察源代码中是否有错,如果有错,可修改源代码,重新编译、链接,直至正确为止。
上面的过程实际上是软件调试的过程,接下来要进行硬件调试。
首先在断电的情况下将实验箱对应电路连线,组成需要的硬件电路,然后按上面步骤做好软件调试,正确无误后,开始进行硬件调试。
如图4所示,点击调试按钮,实现程序的编译、链接代码HEX文件下载到实验箱单片机的程序区。
图4调试
程序下载完成后,进行硬件调试,实现程序对应的功能。
如图5所示,对应一系列的按钮,完成各种调试功能,一般情况下如果程序完全正确无误后,可直接点击运行按钮,此时,程序以全速的方式运行,我们就可以观察实验箱的实验现象。
实验中,我们还要注意的是,如果硬件调试有问题,经过修改程序需要重新硬件调试的时候,可以使用如下方法实现快速的重新调试:
如图4点击单片机复位按钮,弹出确定提示框,根据提示按一下实验箱左下方的RESET按钮,并立刻点击确定按钮,如果实验箱上的六个数码管显示C_,表明复位且通信良好,此时就可重新进行硬件调试了,如果显示P_,表示复位或者通信存在问题,需要重新操作。
图5运行
五、实验步骤
1、P10、P11接开关的K1~K2。
2、P12、P13、P14、P15接发光二极管的L3~L6。
3、按实验内容编写程序,实现:
K1、K2同时接低电平,L3~L6灭;K1、K2同时接高电平,L3~L6亮;K1、K2一个接低电平一个接高电平,L3、L4亮,L5、L6灭,并交替(注:
以for循环方式实现延时)。
4、仿真调试(参照实验原理),拨动开关K1~K2,观察发光二极管状态的变化。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、写出此实验对应的汇编程序。
2、实验总结(实验调试过程中的问题和调试体会)。
实验四定时器及外部中断实验
一、实验目的
1、熟练在单片机系统中扩展简单I/O接口的方法。
2、熟练C51语言数据输出程序的设计方法。
3、学习模拟交通灯控制的C51实现方法。
4、学习外部中断技术及定时器中断的C51基本使用方法。
5、学习中断处理程序C51编程方法。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验内容
本实验的原理图如下:
1.扩展实验箱上的74LS273作为输出口,控制八个发光二极管亮灭,模拟交通灯管理。
2.在上述实验内容的基础上增加允许急救车优先通过的要求。
具体要求为:
当有急救车到达时,东西和南北方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
本实验以单脉冲为中断申请,表示有急救车通过。
四、实验原理
1、实验方案
本实验的设计可以有两种设计方案:
方案一:
用十二个发光二极管分别表示南面路口的绿灯、黄灯、红灯,东面路口的绿灯、黄灯、红灯,北面路口的绿灯、黄灯、红灯,西面路口的绿灯、黄灯、红灯。
方案二:
虽然实际交通灯的数量是十二个,但是因为南北路口的两个红灯、绿灯以及黄灯的亮灭 规律相同,其它路口的灯也满足同样的规律,所以用六个发光二极管也能模拟交通灯。
由原理图可定义如下:
LED1、LED2、LED3→东西方向的红灯、绿灯、黄灯
LED5、LED6、LED7→南北方向的红灯、绿灯、黄灯
要完成本实验,首先必须了解交通路灯的亮灭规律,本实验的亮灭规律如下:
1、初始态是两个方向路口的红灯全亮。
2、东西路口的绿灯亮,南北路口的红灯亮,东西方向通车。
3、延时一段时间后,东西路口绿灯灭,黄灯开始闪烁、闪烁若干次。
4、东西路口红灯亮,同时南北路口绿灯亮,南北方向开始通车。
5、延时一段时间后,南北路口绿灯灭,黄灯开始闪烁、闪烁若干次。
6、切换到东西路口方向,如此反复下去。
本实验以单脉冲为中断申请,表示有急救车通过。
特别注意的是中断现场的保护。
要求用软件或者定时器来完成延时。
2、实验说明
本实验74LS273芯片对于单片机而言,为外扩的外部资源,其对应的地址由片选信号CS273控制,本实验74LS273的片选CS273接片选信号CSO,则74LS273项对于单片机的外部空间抵制为0xCFA0,C51语言定义如下:
#defineOUTPORTXBYTE[0xCFA0]
因此交通灯(发光二极管)的显示数据可以赋给OUTPORT变量,实现结果的输出。
本实验中还要注意的是,交通灯的每一种状态的显示,都需要延时一段时间再切换到另一种状态,从而实现每一种状态的稳定显示。
其C51语言的实现方法如下:
OUTPORT=x;//显示交通灯某一状态数据x
Delay
(1);//延时1ms
OUTPORT=y;//显示交通灯另一状态数据y
Delay
(1);//延时1ms
……
实验中涉及到急救车通过,要求使用外部中断的方式实现。
在本实验中我们可以利用单片机的外部中断INT0实现。
也就是说,急救车通过时,首先利用INT0外部中断给单片机发脉冲,告知单片机,急救车要求通过,然后单片机接收到脉冲,并做出判断并使东西和南北方向上的红灯亮,同时延时10秒,10秒后表明急救车已经通过,此时单片机恢复原状态。
利用C51语言可定义外部中断如下:
voidRescure_bus()interrupt0
{
EA=0;//关闭中断,即不允许其它中断
OUTPORT=0x11;//0x11为东西和南北方向上红灯亮的状态数据
Delay(10000);//延时10s
……
EA=1;//开启中断
}
在调用外部中断0时,一定要注意的是中断现场的保护,要就是说,中断完成后,一定能够恢复中断前的状态,那么在中断程序中使用的变量、外部端口、内部资源,如果在中断前正在使用,那么在中断开始前一定要保护,中断后一定要恢复。
同时,注意的是由于在实验中使用到单片机资源外部中断0,需要对对应的特殊寄存器作一定的配置。
首先需要定义特殊寄存器变量:
sfrIE=0xA8;
sbitEA=IE^7;
sbitEX0=IE^0;
当然,这些特殊寄存器的定义实际上在reg51.h库中定义了,因此在C51编程时,只要包含上reg51.h即可,如下所示:
#include
本实验需要使用到这些特殊寄存器,就是在程序初始化时需要对这些寄存器赋初值,才可保证对应的INT0中断正常工作。
本实验赋初值如下:
IT0=1;
EX0=1;
EA=1;
本实验可以根据实际实验箱的配置来选择以上方案中的任意一种。
本实验按照方案二来设计,选用实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
例如将L1(红)、L2(绿)、L3(黄)作为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)作为南北方向的指示灯,同学们还可以用别的设计方法。
各发光二极管的阳极通过保护电阻接到+5V的电源上,阴极接到输入端上,因此使其点亮应使相应输入端为低电平。
五、实验步骤
1、将74LS273的输出O0~O7接发光二极管L1~L8,74LS273的片选CS273接片选信号CSO,此时74LS273的片选地址为CFA0H。
2、脉冲输入端P_接8051CPU模块上的INT0,用来表示救护车的急救信号。
3、按实验内容及方案二(实现2、4、6步规律),并采用定时器延时,编写程序。
4、仿真调试,观察LED显示情况是否与实验内容相符。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、本实验作了哪些中断现场保护,并解释其保护的过程?
2、实验总结(实验调试过程中的问题和调试体会)。
实验五8255扩展八段数码管实验
一、实验目的
1、学习8255芯片的结构及编程方法。
2、掌握八段数码管的使用方法,及动态显示的编程方法。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验内容
实验的原理图如下所示:
本实验通过单片机控制8255芯片,利用8255的PA口输出数码管的段码,PB口输出数码管的位码。
编写C51程序实现六个数码管以固定时间间隔交替动态显示“012345”和“ABCDEF”。
四、实验原理
8255芯片是单片机通用的并行接口扩展芯片,可扩展PA、PB、PC三个8位并行口。
对于单片机而言,如果外接8255芯片,那么8255所对应的外部空间地址不再是固定为一个值了。
本实验8255的片选信号接CS0,则表明8255相对于单片机的外部地址范围是0xCFA0-0xCFA7,此时8255的PA口、PB口、PC口、控制字寄存器对应于单片机的外部地址为:
0xCFA0、0xCFA1、0xCFA2、0xCFA3,其对应C51定义可如下例:
#definePAXBYTE[0xCFA0]
#definePBXBYTE[0xCFA1]
#definePCXBYTE[0xCFA2]
#definePCTLXBYTE[0xCFA3]
对于八段数码管,显示数据时需要同时送入段码和位码,位码就是选择哪一个数码管接收段码数据,段码就是需要显示的字符的编码。
在C51中段码可定义如下:
unsignedcharcodetable[17]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7f,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
上面定义的是字符0-9、A-F以及黑屏的段码数据,而且是共阴极八段数码管的段码数据。
当需要显示某一个字符时,只要查询table[]数组即可,如:
显示A字符,直接调用table[10]即可。
对于单片机控制8255,实现依次点亮数码管的方法,可参照下例程序:
main
{……
m=1;
PCTL=0x80;//设置PA、PB的工作方式
while
(1)//保证0-5字符能够稳定显示在数码管上
{
for(i=0;i<=5;i++)
{
PA=table[i];//六个数码管依次点亮0-5
PB=255-(m<
0字符由数码管1点亮
Delay
(1);//延时1ms
}
}
}
对于8255芯片的控制字的各个位含义以及对应的方式可查阅8255芯片的资料。
五、实验步骤
1、实验连线:
PA0~PA7接LED-A~LED-DP,PB0~PB5接LED1~LED6,8255cs接片选信号CS0,LEDJUMP的帽全部去掉。
2、按实验内容编写程序,实现八位数码管交替动态显示“012345”和“ABCDEF”。
3、仿真调试,观察数码管的显示情况。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、本实验如果实现“012345”从右向左依次进入六个数码管动态显示,该如何完成?
编写显示部分函数。
2、实验总结(实验调试过程中的问题和调试体会)。
实验六8279键盘显示扩展实验(综合性)
一、实验目的
1、了解8279键盘/显示控制器的工作原理,掌握其编程方法。
2、了解键盘电路工作原理及编程方法。
3、熟悉LED显示接口电路及工作原理和编程方法。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验内容
本实验的原理图如下所示:
8279与一个16个键的小键盘相连,16键的编码为0、1、2、3、4、5、6、7、8、9、A、B、C、D实验要求和内容如下:
1、如果按下的是数字键,则在显示器上将该数字依次显示。
2、如果按下的是“C”键,则显示器全灭。
本实验中各个按键还可以实现其它的功能,可以自行设计安排,并编程实现。
四、实验原理
8279是一种可编程键盘/显示器接口芯片,利用它的扫描传感器阵列方式,可实现多路开关变位信号采集及处理,然后将处理结果送到CPU,这样可节省CPU资源。
其功能有:
接收来自键盘的输入数据,并作预处理;数据显示的管理和数据显示器的控制等。
8279的引脚功能、控制字以及对应的工作方式可查阅8279芯片的资料。
本实验中已经将键盘控制芯片8279的地址固定为0xCFE8、0xCFE9,即8279的数据端口地址对应0xCFE8,8279的命令字和状态字的地址为0xCFE9。
可定义如下:
#definecomXBYTE[0xCFE9]
#definedataportXBYTE[0xCFE8]
实验中键盘接口与8279的回复线RL0~RL7、扫描线SL0~SL2相连,组成键盘输入电路,六个数码管与8279的OUTA0~OUTA3、OUTB0~OUTB3以及驱动电路组成显示回路。
8279芯片在C51编程中是较为复杂的,因为它有较多的控制命令字和状态字,学会使用这些命令字是很重要的.例如,8279初始化时首先需要执行清除命令:
com=0xd1;//总清除命令
do{ACC=com;}//读取8279状态
while(ACC^7==1)//等待清除结束
同时,需要设置键盘工作方式、显示方式、时钟分频等命令字,使8279工作在要求的方式中:
com=0x00;//8个字符显示,左入口;编码扫描键盘,双键锁定
com=0x2a;//10分频
键盘有无键按下的判断可以如下判断:
k=com;//读取状态字
while((k&0f)==0);//判断是否为0:
=0等待;≠0有键按下,往下执行
……
实现读取键盘值的命令可参照如下例程:
com=0x40;//读FIFORAM命令,地址0x0000
i=dataport;//读取一个键盘数据
i=i&0x3f;//取低6位为键盘值
8279的显示功能的实现可借鉴如下程序:
for(i=0;i<8;i++)
{com=i+80;//写显示RAM命令,显示区地址由i控制
dataport=table[i];//显示的字符编码输出到数据端口
}
本实验,是上面各种命令字的一种综合应用的实例,大家可以查阅8279芯片资料,学会使用各种具体的命令,从而完成对应的任务。
五、实验步骤
1、将键盘KA10~KA12接8279的KA0~KA2;RL10~RL17接8279的RL0~RL7。
2、按实验内容编写程序,实现按下数字键,则在显示器上将该数字依次显示,按下“C”键,则显示器全灭。
3、仿真调试,按动键盘,观察显示的键值与给定键值是否相符。
六、实验报告要求
1、写出实验目的、实验设备、实验内容,分析实验原理,总结实验步骤。
2、将实验源程序以附页的方式粘在报告上,并加上注释。
3、对实验思考题加以分析,按照要求做出回答。
七、实验思考题
1、假定实现按下“D”键,6个LED显示123456的功能。
编写此功能函数。
2、实验总结(实验调试过程中的问题和调试体会)。
实验七点对点异步串口实验(设计性)
一、实验目的
1、掌握串行口工作方式的程序设计,掌握单片机通讯程序的编制。
2、了解实现串行通讯的硬件环境,数据格式、数据交换的协议。
3、掌握串行通讯中波特率的设置。
4、在给定通讯波特率的情况下,会计算定时时间常数。
二、实验设备
EL-MUT-III型单片机实验箱、8051CPU模块、PC机
三、实验原理
MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 单片机 原理 电子 通信 综述