《单片机技术》实验指导书.docx
- 文档编号:25203095
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:89
- 大小:707.38KB
《单片机技术》实验指导书.docx
《《单片机技术》实验指导书.docx》由会员分享,可在线阅读,更多相关《《单片机技术》实验指导书.docx(89页珍藏版)》请在冰豆网上搜索。
《单片机技术》实验指导书
《单片机技术》
实验指导书
机械电子工程系
2011年9月
实验一数据传送(RAM–>XRAM)
一、实验目的
1、熟悉星研集成环境软件或熟悉KeilC51集成环境软件的使用方法。
2、掌握80C51内部RAM和外部RAM之间的数据传送方法;掌握这两部分RAM存贮器的特点与应用,掌握各种数据传送方法。
3、熟悉80C51汇编指令,能自己编写简单的程序,掌握数据传输的方法。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、熟悉星研集成环境软件或熟悉KeilC51集成环境软件的安装和使用方法。
2、编写并调试一个数据传送程序:
将30H~3FH数据送到数据存贮器1000H~100FH中。
实现内外部数据段的传送、校验。
四、实验框图
五、实验步骤
1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择1000H)。
2、在内部RAM30H~3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H~100FH中的内容。
3、熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。
【注意】实验箱中已经将单片机最小电路(电源、时钟电路及复位电路)连接完成,因此,该部分不再需要连线。
六、程序清单
;将内部RAMAddress1开始的16个字节送到外部RAM从Address2开始的单元里,
;再作比较。
Address1
DATA
30H
;内部ROM存放数据起始地址
Address2
XDATA
1000H
;外部ROM存放数据起始地址
ORG
0000H
LJMP
STAR
ORG
0100H
STAR:
MOV
SP,#60H
;初始化堆栈指针
MOV
R0,#Address1
MOV
DPTR,#Address2
MOV
R7,#10H
STAR1:
MOV
A,@R0
;传送
MOVX
@DPTR,A
INC
R0
INC
DPTR
DJNZ
R7,STAR1
MOV
R0,#Address1
MOV
DPTR,#Address2
MOV
R7,#10H
STAR2:
MOV
B,@R0
;比较
MOVX
A,@DPTR
CJNE
A,B,STAR3
INC
R0
INC
DPTR
DJNZ
R7,STAR2
SJMP
$
;传送正确
STAR3:
SJMP
$
;传送错误
END
七、思考题
编写程序分别实现以下功能:
①将外部数据存贮区1000H~100FH中的数据送到80C51内部RAM40~4FH中。
②将外部数据存贮区1000H~100FH的内容写入外部RAM3030~303FH中。
实验二P1口数据输入、输出实验(跑马灯实验)
一、实验目的
1、通过实验了解单片机最小系统。
2、了解P1口作为输入、输出方式使用时,CPU对P1口操作方法。
3、学习延时子程序的编写和使用。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、P1口做输出口,接G6区的八个发光二极管(其输入端为低电平时发光二极管点亮),编写程序,使发光二极管循环点亮(瞬间只有一个灯亮)。
2、P1.0、P1.1作输入口接两个拨动开关S21、S22;P1.2,P1.3作输出口,接两个发光二极管DS35、DS36,编写程序读取开关状态,将此状态在发光二极管上显示出来。
【注意】P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口用作输入口时,编程时必须先对口的锁存器写“1”;若不先对它写“1”,读入的数据是不正确的。
四、实验原理图
【注意】本实验指导书中的原理图只给出了重要部分原理图,单片机最小系统均未给出,请学生参考教材补充完整。
P1口循环点灯原理图
P1口输入输出原理图
五、实验流程图
六、实验步骤
㈠P1口输出实验
1、连线说明:
A3区:
JP51
——
G6区:
JP65
【注意】实验箱上单片机的P1口(A3区JP51插槽)分别接八个发光二极管(G6区JP65插槽),使用一根8线的扁平电缆连接即可。
2、编写程序。
3、实验结果:
通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。
㈡P1口输入、输出实验
1、连线说明:
A3区:
JP51
——
G6区:
JP80
JP55
——
G6区:
JP65
2、编写程序。
3、实验结果:
改变S21、S22两个拨动开关的状态,观察LED指示灯的变化。
七、源程序
㈠P1口输出实验
ORG
0000H
LJMP
START
ORG
0100H
START:
MOV
SP,#60H
MOV
A,#0FFH
MOV
P1,A
;P1口输出数据时,该句可省略。
;P1口输入数据时,该句必须保留。
CLR
C
START1:
RLC
A
MOV
P1,A
ACALL
Delay
SJMP
START1
Delay:
MOV
R5,#2
;延时
Delay1:
MOV
R6,#0
Delay2:
MOV
R7,#0
DJNZ
R7,$
DJNZ
R6,Delay2
DJNZ
R5,Delay1
RET
END
㈡P1口输入、输出实验
【源程序略,由学生自行设计】
八、思考题
1、在80C51系统中,MOV指令需用1个机器周期,DJNZ指令需用2个机器周期,RET指令需用2个机器周期。
STARES598PCI实验仪中单片机的晶振为12MHz,请计算源程序中软件延时(第12行~第18行)的时长是多少秒?
2、编程实现下表所示的发光二极管点亮时序,注意延时时间的设置(采用软件延时)。
时序
8个发光LED的状态
1
8个LED同时亮,延时0.5s
2
8个LED同时灭,延时0.5s
3
自左向右,每隔0.5s循环点亮一个(单个亮)
4
自右向左,每隔0.5s循环点亮一个(单个亮)
5
自左向右,每隔0.5s循环相邻两个点亮一次(相邻两个亮,其余灭)
实验三P1口数据输出实验(交通灯控制实验)
一、实验目的
1、了解单片机的工作原理,熟悉其编程方法以及输入、输出程序设计技巧。
学会使用并行口实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉单片机程序存储器的查表指令,熟悉表格的设计及使用技巧。
熟练设计并使用软件延时子程序。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、编写程序:
使用80C51的P1口控制8个LED指示灯,实现交通灯功能。
2、连接线路、验证该功能,并熟悉P1口的使用方法。
四、实验原理
交通灯控制原理图
该实验中单片机P1口与8个发光二极管相连。
实验箱上的8个发光二极管的排列顺序是“绿、黄、红、红、绿、黄、红、红”,这相当于两组“绿、黄、红”交通指示灯,可以模拟十字路口的东西向和南北向交通灯。
由于每组红灯有两个,可把将两个红灯看作是一个红色指示灯,让它们同时亮灭。
一个周期内交通指示灯的所有状态,如下表所示:
序号
东西向交通灯
南北向交通灯
状态码
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
绿
黄
红
红
绿
黄
红
红
0
0
1
1
1
1
1
0
0
7CH
1
1
0
1
1
1
1
0
0
0BCH
2
1
1
0
0
0
1
1
1
0C7H
3
1
1
0
0
1
0
1
1
0CBH
将状态码放入一段连续的ROM单元,可以构成一段数据表(用DB伪指令定义数据表,如“DB7CH0BCH0C7H0CBH”)。
利用数据指针DPTR,将其指向数据表的首地址,再将各个状态的序号依次放入累加器A中,通过查表指令便可找到各个状态码,最后将状态码送入P1口显示并做相应的延时处理,发光二极管上即可反映出相应的交通指示灯状态。
当一个周期结束后,再用一条长跳转指令返回首个状态,就可实现交通指示灯的连续工作。
五、实验流程图
六、实验步骤
1、连线说明:
A3区:
JP51(P1口)
——
G6区:
JP65
2、观察实验结果,验证模拟交通灯控制过程的正确性。
七、源程序
ORG
0000H
LJMP
MAIN
ORG
0100H
MAIN:
MOV
DPTR,#TABLE
;数据指针指向表的首字节地址单元
LOOP:
MOV
R7,#data8
;data8由交通灯的状态个数定
MOV
R0,#0
D1:
MOV
A,R0
MOVC
A,@A+DPTR
;查表取状态字节
MOV
P1,A
;送P1口显示
INC
R0
LCALL
DELAY
DJNZ
R7,D1
LJMP
LOOP
TABLE:
DB
【略】
;状态字节【学生自行设计】
DELAY:
【略】
;延时子程序【学生自行设计】
END
八、思考题
1、如何使用该控制策略实现对霓虹灯或跑马灯的设计?
2、如何实现对绿灯、红灯和黄灯的时间分别进行控制,以及黄灯闪烁3次的实现?
实验四外部中断实验(急救车与交通灯)
一、实验目的
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、编写程序:
在实验四的基础上增加允许急救车优先通过的要求,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。
设急救车通过路口时间为10秒,急救车通过后,交通恢复正常。
2、本实验用单次脉冲(由轻触按键产生)申请中断,表示有急救车通过。
3、连接线路、验证该功能,并熟悉外部中断的使用方法。
四、实验原理
1、编制中断处理程序要注意的问题是:
①保护进入中断时的状态(保护现场),并在退出中断之前恢复进入时的状态(恢复现场)。
②必须在中断程序中设定是否允许中断重入,即设置EX0位。
2、本实验中使用了INT0中断,一般中断处理程序进入时应保护PSW、ACC以及中断处理程序使用但非其专用的寄存器。
本实验的INT0程序中应保护PSW、ACC等,以便保护中断前红绿灯的状态(保护现场),并且在退出前恢复原来红绿灯状态(恢复现场)。
3、INT0端(P3.2)接轻触按键K5。
五、实验流程图
六、实验步骤
1、连线说明:
A3区:
JP51
——
G6区:
JP65
JP61
——
JP74
【注意】当响应中断时,应按下JP74中K5按键。
2、观察实验结果,验证模拟交通灯控制过程的正确性。
七、源程序
【源程序略,由学生自行设计】
实验五8279键盘显示实验
一、实验目的与要求
1、了解8279与单片机的接口逻辑;掌握对8279的显示子程序Dispaly8的使用方法,掌握使用8279扩展显示器的方法。
2、认真预习,做好实验前的准备工作,自行编写程序,填写实验报告。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、编写程序:
利用8279实现对G5区的8位数码管的显示控制,要求最右边LED从0~9循环显示,其余7个LED均不显示。
2、按图连线,运行程序,观察实验结果,能熟练运用8279的显示子程序Dispaly8。
四、实验原理图
五、实验流程图
六、实验步骤
1、连线说明:
E5区:
CS、A0
——
A3区:
CS5、A0
E5区:
CLK
——
B2区:
2M
E5区:
A、B、C、D
——
G5区:
A、B、C、D
2、运行程序,观察实验结果(8个LED显示器会按要求显示出来),可依此验证对8279芯片操作的正确性。
七、源程序
EXTRN
CODE(Display8)
BUFFER
DATA
30H
;8字节显示缓冲区
ORG
0000H
LJMP
STAR
ORG
0100H
STAR:
MOV
SP,#5FH
MOV
R0,#BUFFER
MOV
A,#10H
;其余7位LED不显示
CLRR:
INC
R0
MOV
@R0,A
CJNE
R0,#37H,CLRR
LOOP:
MOV
R7,#10
;循环次数,10次
MOV
R6,#0
INCC:
MOV
30H,R6
LCALL
DELAY
INC
R6
MOV
R0,#BUFFER
LCALL
Display8
DJNZ
R7,INCC
AJMP
LOOP
END
八、思考题
1、如何实现8个LED数码管循环显示程序。
2、不使用8279,编程实现数码管的显示功能。
实验六电子钟(定时器、中断综合实验)
一、实验目的
熟悉80C51中CPU的定时器、中断系统编程方法,了解定时器的应用、实时程序的设计和调试技巧。
二、实验内容
编写一个时钟程序,使用定时器产生一个50ms的定时中断,对定时中断计数,通过8279将时、分、秒显示在数码管上。
三、程序框图
四、实验步骤
1、连线说明:
E5区:
CLK
——
B2区:
2M
E5区:
CS
——
A3区:
CS5
E5区:
A0
——
A3区:
A0
E5区:
A、B、C、D
——
G5区:
A、B、C、D
2、时间显示在数码管上
五、程序清单
ms50
DATA
31H
;存放多少个50ms
sec
DATA
32H
;秒
min
DATA
33H
;分
hour
DATA
34H
;时
buffer
DATA
35H
;显示缓冲区
EXTRN
CODE(Display8)
ORG
0000H
LJMP
STAR
ORG
000BH
;定时器T0中断处理入口地址
LJMP
INT_Timer0
ORG
0100H
STAR:
MOV
SP,#60H
;堆栈
MOV
ms50,A
;清零ms50
MOV
hour,#12
;设定初值:
12:
59:
50
MOV
min,#59
MOV
sec,#50
MOV
TH0,#60
;定时中断计数器初值
MOV
TL0,#176
;定时50ms
MOV
TMOD,#1
;定时器0:
方式一
MOV
IE,#82H
;允许定时器0中断
SETB
TR0
;开定时器T0
STAR1:
LCALL
Display
;调用显示
JNB
F0,$
CLR
F0
SJMP
STAR1
;需要重新显示时间
;中断服务程序
INT_Timer0:
MOV
TL0,#176-5
MOV
TH0,#60
PUSH
01H
MOV
R1,#ms50
INC
@R1
;50ms单元加1
CJNE
@R1,#20,ExitInt
MOV
@R1,#0
;恢复初值
INC
R1
INC
@R1
;秒加1
CJNE
@R1,#60,ExitInt1
MOV
@R1,#0
INC
R1
INC
@R1
;分加1
CJNE
@R1,#60,ExitInt1
MOV
@R1,#0
INC
R1
INC
@R1
;时加1
CJNE
@R1,#24,ExitInt1
MOV
@R1,#0
ExitInt1:
SETB
F0
ExitInt:
POP
01H
RETI
HexToBCD:
MOV
B,#10
DIV
AB
MOV
@R0,B
INC
R0
MOV
@R0,A
INC
R0
RET
Display:
MOV
R0,#buffer
MOV
A,sec
ACALL
HexToBCD
MOV
@R0,#10H
;第三位不显示
INC
R0
MOV
A,min
ACALL
HexToBCD
MOV
@R0,#10H
;第六位不显示
INC
R0
MOV
A,hour
ACALL
HexToBCD
MOV
R0,#buffer
LCALL
Display8
RET
END
六、思考题
1、定时器0初始化时,为什么设置TL0为176,TH0为60?
2、电子钟走时精度与哪些有关系?
中断程序中给TL0赋值为什么与初始化程序中不一样?
3、使用定时器方式二,重新编写该程序。
4、如何利用定时、中断实现交通灯的控制功能?
实验七双机通讯实验
一、实验目的与要求
1、了解单片机串行口的内部结构、工作原理;使用串行口方式二进行两个单片机之间的串行通信。
2、认真预习,做好实验前的准备工作,填写实验报告。
二、实验设备
STARES598PCI实验仪两套、PC机两台
三、实验内容
1、编写程序:
A机向B机发送一个字节的数据,B机接收到后,将该数据显示在B机P1口的发光二极管上,再将该数据发送给A机,A机接收到B机发回的数据后,显示在A机P1口的发光二极管上。
2、按图连线,运行程序,观察实验结果,掌握8250的各项功能及编程方法。
四、实验原理图
五、实验步骤
1、连线说明:
①A、B机实验仪上均连线:
A3区:
JP51
——
G6区:
JP65
②A机与B机交叉连线:
A机
A3区:
RXD
——
B机
A3区:
TXD
A3区:
TXD
——
A3区:
RXD
C1区:
GND
——
C1区:
GND
2、运行程序
3、改变传输数据的数目,重复实验,观察结果。
六、源程序
;A机程序
ORG
0000H
LJMP
MAIN
ORG
0100H
MAIN:
MOV
SP,#5FH
MOV
SCON,#80H
;设定串行口工作于方式2
MOV
PCON,#00H
;SMOD=0
SETB
REN
;允许串行口接收
MOV
A,#55H
MOV
SBUF,A
JNB
TI,$
CLR
TI
JNB
RI,$
CLR
RI
MOV
A,SBUF
MOV
P1,A
AJMP
$
END
【注意】源程序中只给出A机程序,要求学生编写出B机程序。
七、思考题
1、单片机的其它三种串行口工作方式可否实现双机通讯?
2、画出A机程序的流程图。
3、如果要在B机上实现跑马灯的显示,A机的程序又该如何修改?
4、若通过中断处理方式实现双机通信,程序该如何修改?
实验八RS232串口通讯实验
一、实验目的与要求
掌握单片机串行口的工作原理。
掌握利用串行口实现单片机与计算机间的通讯方法。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、说明:
80C51串口经RS232电平转换后,与PC机串行相连。
PC机使用“串口调试助手”(ComPort)应用程序,实现上位机与下位机的通讯。
本实验使用查询法接收和发送资料,上位机发出指定字符,下位机收到后返回原字符。
2、编写串口通讯程序。
3、运行程序,通过串口调试助手以16进制向单片机发送一组数据,并观察结果。
四、实验原理图
五、实验步骤
1、连线说明:
A3区:
TXD
——
E7区:
TXD
A3区:
RXD
E7区:
RXD
2、实验结果:
打开串口调试助手应用程序,开串口,设置波特率为9600Baud。
在发送区内输入数据,单击“发送”。
如果单片机接收到数据将会原样返回给计算机,并且显示在串口调试助手的接收框内。
六、源程序
Length
EQU
10
;一次性接收、发送数据的数目
buffer
DATA
30H
;接收、发送缓冲区,长度为8个字节
ORG
0
LJMP
START
ORG
0023H
LJMP
RI_TI_INT
ORG
0100H
START:
MOV
R0,#buffer
MOV
TMOD,#20H
;定时器1工作方式2
MOV
TH1,#0FDH
;设波特率9600
MOV
TL1,#0FDH
MOV
SCON,#50H
;串口工作方式1,允许接收
SETB
TR1
;选通定时器1,定时器开始工作
SETB
EA
SETB
ES
SJMP
$
RI_TI_INT:
JB
TI,RI_TI_INT_1
MOV
A,SBUF
MOV
@R0,A
INC
R0
CLR
RI
CJNE
R0,#buffer+Length,$+3
JC
RI_TI_INT_2
MOV
R0,#buffer
CLR
REN
;不允许接收
SETB
TI
SJMP
RI_TI_INT_2
RI_TI_INT_1:
CLR
TI
CJNE
R0,#buffer+Length,$+3
JC
RI_TI_INT_3
MOV
R0,#buffer
SETB
REN
SJMP
RI_TI_INT_2
RI_TI_INT_3:
MOV
A,@R0
MOV
SBUF,A
INC
R0
RI_TI_INT_2:
RETI
END
七、思考题
1、画出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机技术 单片机 技术 实验 指导书