单片机实验.docx
- 文档编号:23799505
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:32
- 大小:408.35KB
单片机实验.docx
《单片机实验.docx》由会员分享,可在线阅读,更多相关《单片机实验.docx(32页珍藏版)》请在冰豆网上搜索。
单片机实验
单片机实验报告
仪器科学与工程学院
姓名:
学号:
同组人员:
软件实验一程序跳转表
一、实验要求
在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
二、实验目的
1、了解程序的多分支结构
2、了解多分支结构程序的编程方法
三、实验说明
多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
四、程序框图
五、参考程序
(略)
六.实验现象及分析
软件实验二内存块移动
一、实验要求
将指定源地址和长度的存储块移到指定目标位置
二、实验说明
了解内存的移动方法。
加深对存储器读写的认识。
三、实验说明
块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。
本程序是给出起始地址,用地址加一方法移动块,请思考:
给出块结束地址,用地址减一方法移动块的算法。
另外,若源块地址和目标块地址有重叠,该如何避免?
四、实验框图
五.参考代码(略)
六.实验现象及分析
软件实验三数据排序
一、实验要求
给出一组随机数,将此组数据排序,使之成为有序数列
二、实验说明
本程序用的是“冒泡排序”法,是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。
再进行下一轮比较,找出第二大数据,直到全部数据有序。
三、程序框图
四.参考代码(略)
五.实验现象及分析
硬件实验六8255输入、输出实验
一、实验要求
利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。
二、实验目的
1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
三、实验电路及连线
8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。
PA0-PA7(PA口)接LED0-LED7(LED)PB0-PB7(PB口)接K0-K7(开关量)。
数据线、读/写控制、地址线、复位信号板上已接好。
连线
连接孔1
连接孔2
1
CS0
8255CS
2
L0
8255-PA0
3
L1
8255-PA1
4
L2
8255-PA2
5
L3
8255-PA3
6
L4
8255-PA4
7
L5
8255-PA5
8
L6
8255-PA6
9
L7
8255-PA7
10
K0
8255-PB0
11
K1
8255-PB1
12
K2
8255-PB2
13
K3
8255-PB3
14
K4
8255-PB4
15
K5
8255-PB5
16
K6
8255-PB6
17
K7
8255-PB7
四、实验说明
可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。
本实验采用的是方式0:
PA,PC口输出,PB口输入。
很多I/O实验都可以通过8255来实现。
五、实验框图
六.实验现象及分析
硬件实验七串行数转换并行数实验
一、实验要求
利用单片机的串行口和I/O端口串行输出,利用板上的74HC164串转并电路,移位转换成并行数据,接在LED灯上显示。
二、实验目的
1、掌握MCS51/MCS96串行口方式0工作方式及编程方法。
2、掌握用MCS51/MCS96的P1口的I/O功能,输出串行数据。
3、掌握利用串行口入I/O口,扩展I/O通道的方法。
三、实验电路及连线
1、用串口方式0,串行输出数据/时钟2、用I/O口串行输出数据/时钟
四、实验说明
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为Fosc/12。
(A)串口方式0输出程序框图(B)P1口输出数据/时钟程序框图
六.实验现象及分析
硬件实验八并行数转换串行数实验
一、实验要求
利用板上的74HC165并转串电路,读入外部的并行数据,移位转换成串行数,利用单片机串行口和P1口串行读入。
二、实验目的
1、掌握MCS51串行口方式0工作方式及编程方法。
2、掌握用MCS51的P1口的I/O功能,读入串行数据。
3、掌握利用串行口及I/O口,扩展I/O通道的方法。
三、实验电路及连线
连线
连接孔1
连接孔2
1
K0
165-P0
2
K1
165-P1
3
K2
165-P2
4
K3
165-P3
5
K4
165-P4
6
K5
165-P5
7
K6
165-P6
8
K7
165-P7
9
P1.1
165-Q7
10
P1.2
165-CLK
11
P1.0
165-LOAD
连线
连接孔1
连接孔2
1
K0
165-P0
2
K1
165-P1
3
K2
165-P2
4
K3
165-P3
5
K4
165-P4
6
K5
165-P5
7
K6
165-P6
8
K7
165-P7
9
RXD
165-Q7
10
TXD
165-CLK
11
P1.0
165-LOAD
1、用串口方式0,串行输入数据/时钟2、用I/O口串行输入数据/时钟
四、实验说明
与上个实验一样,这个实验主要是用串并转换方法扩展I/O口。
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率Fosc/12。
五、实验框图
(A)串口方式0读入程序框图(B)P1口读入数据程序框图
六.实验现象及分析
硬件实验九计数器实验
一、实验要求
MCS51内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。
将其数值按二进制数在P1口驱动LED灯上显示出来。
二、实验目的
学习单片机内部定时/计数器使用方法。
三、实验电路及连线
连线
连接孔1
连接孔2
1
P1.0
L0
2
P1.1
L1
3
P1.2
L2
4
P1.3
L3
5
单脉冲输出
P3.4(T0)
四、实验说明
本实验中内部计数器起计数器的作用。
外部事件计数脉冲由P3.4引入定时器T0。
单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。
这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。
同时这就决定了输入波形的频率不能超过机器周期频率。
五、
实验框图
六、实验现象及分析
硬件实验十外部中断
一、实验要求
本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。
设急救车通过路口时间为10秒,急救车通过后,交通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。
二、实验目的
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
三、实验电路及连线
四、实验说明
中断服务程序的关键是:
1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2、必须在中断程序中设定是否允许中断重入,即设置EXO位。
本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。
本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。
另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。
本例中没有涉及这种情况。
对于MCS51CPU外部中断由INTO(P3.2)端接入。
中断信号由单次脉冲发生器产生。
五、实验框图(下页)
六、实验现象及分析
外部中断子程序框图
主程序框图
硬件实验十一定时器实验
一、实验要求
用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转.
二、实验目的
1、学习单片机内部计数器/定时器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
三、实验电路及连线
连线
连接孔1
连接孔2
1
P1.0
L0
四、实验说明
1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
本实验使用的是定时器。
2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
3、内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器周期。
因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式定时器,定时器100us中断一次,所以定时常数的设置可按以下方法计算:
机器周期=12÷6MHZ=2uS
(256-定时常数)×2uS=100us定时常数=206.然后对100us中断次数计数10000次,就是1秒钟.
4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
五、实验框图
Y
主程序框图定时中断子程序框图
开始
置T0中断工作方式
设置定时常数
设置初始状态位
设置秒计数值
定时中断入口
遇
保护现场
秒计数值减1
重新设置秒计数值
状态位取反
恢复现场
中断返回
是否到1秒
是
否
中断允许
输出状态位
等待中断
六。
实验现象及分析
硬件实验十二D/A数模转换实验
一、实验要求
利用DAC0832,编制程序产生锯齿波、三角波、正弦波。
三种波轮流显示,用示波器观看。
二、实验目的
1、了解D/A转换的基本原理。
2、了解D/A转换芯片0832的性能及编程方法。
3、了解单片机系统中扩展D/A转换的基本方法。
三、实验电路及连线
连线
连接孔1
连接孔2
1
DA_CS
CS2
2
-5V-+5V
电压表
用电压表或示波器探头接-5V~+5V输出,观察显示电压或波形。
四、实验说明
1、D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。
要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。
2、产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。
要产生正弦波,较简单的方法是造一张正弦数字量表。
即查函数表得到的值转换成十六进制数填表。
D/A转换取值范围为一个周期,采样点越多,精度越高些。
本例采用的采样点为256点/周期。
3、8位D/A转换器的输入数据与输出电压的关系为
U(0∽-5V)=Uref/256×N
U(-5V∽+5V)=2·Uref/256×N-5V(这里Uref为+5V)
五、实验框图
六.实验现象及分析
硬件实验十三A/D模数转换实验
一、实验要求
利用实验板上的ADC0809做A/D转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,用8255的PA口输出到发光二极管显示。
二、实验目的
1、掌握A/D转换与单片机的接口方法。
2、了解A/D芯片ADC0809转换性能及编程。
3、通过实验了解单片机如何进行数据采集。
三、实验电路及连线
CS0
电位器
连线
连接孔1
连接孔2
1
IN0
电位器输出
2
AD_CS
CS0
3
EOC
INT0
4
8255_CS
CS1
5
PA0
L0
6
PA1
L1
7
PA2
L2
8
PA3
L3
9
PA4
L4
10
PA5
L5
11
PA6
L6
12
PA7
L7
四、实验说明
A/D转换器大致有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次一般需100us。
本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,将其与CPU的外部中断相接,有兴趣的同学可以试试编程用中断方式读回A/D结果.
五、实验框图
六、实验现象及分析
主程序框图
硬件实验十四八段数码管显示
一、实验要求
利用实验仪提供的显示电路,动态显示一行数据.
二、实验目的
1、了解数码管动态显示的原理。
2、了解用总线方式控制数码管显示
三、实验线路及连线
连线
连接孔1
连接孔2
1
KEY/LED_CS
CS0
四、实验说明
注意:
当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。
本实验仪提供了6位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
8位段码、6位位码是由两片74LS374输出。
位码经MC1413或ULN2003倒相驱动后,选择相应显示位。
本实验仪中8位段码输出地址为0X004H,位码输出地址为0X002H。
此处X是由KEY/LEDCS决定,参见地址译码。
做键盘和LED实验时,需将KEY/LEDCS接到相应的地址译码上。
以便用相应的地址来访问。
例如,将KEY/LEDCS接到CS0上,则段码地址为08004H,位码地址为08002H。
七段数码管的字型代码表如下表:
显示字形
g
f
e
d
c
b
a
段码
0
0
1
1
1
1
1
1
3fh
a
fb
g
ec
d
。
dp
1
0
0
0
0
1
1
0
06h
2
1
0
1
1
0
1
1
5bh
3
1
0
0
1
1
1
1
4fh
4
1
1
0
0
1
1
0
66h
5
1
1
0
1
1
0
1
6dh
6
1
1
1
1
1
0
1
7dh
7
0
0
0
0
1
1
1
07h
8
1
1
1
1
1
1
1
7fh
9
1
1
0
1
1
1
1
6fh
A
1
1
1
0
1
1
1
77h
b
1
1
1
1
1
0
0
7ch
C
0
1
1
1
0
0
1
39h
d
1
0
1
1
1
1
0
5eh
E
1
1
1
1
0
0
1
79h
F
1
1
1
0
0
0
1
71h
五、程序框图
六.实验现象及分析
硬件实验十五键盘扫描显示实验
一、实验要求
在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
实验程序可分成三个模块。
①键输入模块:
扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
②显示模块:
将显示单元的内容在显示器上动态显示。
③主程序:
调用键输入模块和显示模块。
二、实验目的
1、掌握键盘和显示器的接口方法和编程方法。
2、掌握键盘扫描和LED八段码显示器的工作原理。
三、实验电路及连线
这里只是键盘草图,详细原理参见图1
四、实验说明
本实验仪提供了一个6×4的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。
如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。
这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
地址中的X是由KEY/LEDCS决定,参见地址译码。
做键盘和LED实验时,需将KEY/LEDCS接到相应的地址译码上。
以便用相应的地址来访问。
例如将KEY/LEDCS信号接CS0上,则列扫描地址为08002H,行码地址为08001H。
列扫描码还可以分时用作LED的位选通信号。
连线
连接孔1
连接孔2
1
KEY/LED_CS
CS0
数据总线
读回行码
(0X001H)
列码
(0X002H)
五、实验框图
实验框图
显示程序框图见前个实验
六.实验现象及分析
硬件实验十七单片机串行口通讯实验
一、实验要求
利用单片机串行口,实现两个实验台之间的串行通讯。
其中一个实验台作为发送方,另一侧为接收方。
发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。
二、实验目的
1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。
2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。
3、学习串口通讯的中断方式的程序编写方法。
三、实验电路
显示电路和键盘电路见硬件实验十六和硬件实验十七。
甲方乙方
连线
连接孔1
连接孔2
1
甲方TXD
乙方RXD
2
甲方RXD
乙方TXD
3
甲方GND
乙方GND
4
KEY/LED_CS
CS0
四、实验说明
1、MCS51的RXD、TXD接线柱在POD51/96仿真板上。
2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。
也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。
3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。
可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。
可以用实验仪上的逻辑分析仪采样串口通信的波形
五、实验框图(下页)
六.实验现象及分析
主程序
串口中断子程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验