单片机实验指导书Word格式文档下载.docx
- 文档编号:21634411
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:45
- 大小:1.25MB
单片机实验指导书Word格式文档下载.docx
《单片机实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式文档下载.docx(45页珍藏版)》请在冰豆网上搜索。
程序空间选择开关,SW1->
IP,表示选择CPU内部(出场模式),SW1->
UP,选择CPU外部。
3.SW2:
仿真器选择开关,SW2->
SM,选择仿真联机运行(出厂模式),SW2->
OFL,选择脱机运行。
4.SW3、SW4、SW5为键盘显示开关,开关置ON,键盘显示控制选择系统配置的8155接口芯片,反之,由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘显示均采用````系统配置的8255口控制。
5.JS:
键扫口,JR:
键入口,JLED:
字形代码口
开关设置默认为出场模式,连接通讯电缆,开启实验仪电源开关,指示灯ML如正常闪动,说明实验仪处于仿真联机状态,运行Keil仿真软件,通过参数设置,对用户程序进行软、硬件调试。
三、系统地址分配
(1),存贮器地址分配
CPU
ROM
RAM1
RAM2
I/0扩展
51
0000H~0FFFFH(用户实验程序)
0000H~7FFFH用户数据
8000H~FF7FH(用户数据除FF20H~FF2FH)
FF80H~FFFFH
(2),I/O地址分配
地址
扩展名称
用途
0FF80H
自定义
实验用口地址
0FF90H
0FFA0H
0FFB0H
0FFC0H
0FFD0H
0FF20H
系统8255PA口
键扫/字位口
0FF21H
系统8255PB口
字形口
0FF22H
系统8255PC口
键入口
0FF23H
系统8255控制口
控制口
0FF28H
扩展8255PA口
扩展口
0FF29H
扩展8255PB口
0FF2AH
扩展8255PC口
0FF2BH
扩展8255控制口
60H
EX1
实验用
实验注意事项:
插、拔导线时务必在关闭实验箱电源状态下操作,防止导线将实验箱电源、地或其它部位短路损毁器件。
实验中常见错误:
1、输入指令、语法错误。
实验前应该熟练掌握单片机的指令代码。
2、“0”零和“O”欧的区别,紧挨操作数的都为零“0”如“0E8H”。
3、拨动开关KW1、KW2是否拨到上方,KB6是否拨到下方。
4、中止程序再链接有问题时可以按下单片机复位键,或关闭实验箱电源稍后再打开。
5、检查串口连接线是否连接到电脑串口,并检查连接的是COM1还是COM2口。
实验一 数据区传送子程序
1,实验目的:
掌握RAM中的数据操作。
2,实验内容:
把R2.R3源RAM区首址内的R6.R7字节数据传送到R4.R5目的RAM区。
3,实验程序框图:
4,实验步骤:
在R2.R3中输入源首址(例如0000H),R4.R5中输入目的地址(例如2000H),R6.R7中输入字节数(例如lFFFH),运行程序,检查0000H~lFFFH中内容是否和2000H~3FFFH中内容完全一致。
5,程序清单
文件名:
SW04.ASM
ORG0000H
LJMPSE22
ORG07B0H
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
LOOP:
SJMPLOOP
NOP
LO44:
DECR7
SJMPSE22
LO45:
DECR6
SJMPSE22
未完继续
END
实验二数据排序实验.
熟悉51指令系统,掌握程序设计方法。
1)编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。
2)排序
3,程序框图:
将RAM50H~5AH中放入不等的数据,用中断方法运行本实验程序,
1)先编写一个主程序,实现灯的一个循环;
2)调试数据排序程序;
3)通过硬件测试程序的正确性,使得当中断时,实现先数据排序,然后灯全亮全一次。
5,思考:
修改程序把50H~5AH中内容从大到小排列。
6,程序清单
SW05.ASM
LJMPQUE
ORG0200H
QUE:
MOVR3,#50H
QUE1:
MOVA,R3
指针送R0
MOVR0,A
MOVR7,#0AH
长度送R7
CLR00H
清标志位
MOVA,@R0
QL2:
INCR0
MOVR2,A
CLRC
MOV22H,@R0
CJNEA,22H,QL3
相等吗?
SETBC
QL3:
MOVA,R2
JCQL1
大于交换位置
SETB00H
XCHA,@R0
DECR0
INCR0
QL1:
DJNZR7,QL2
JB00H,QUE1
一次循环中有交换继续
SJMPLOOP
无交换退出
实验三查找相同数个数
熟悉汇编语言编程。
在2000H~200FH的N个单元中填入零,运行本程序后检查2100H中是否为N。
在2000H~200FH的几个单元中填入零,运行本程序后检查2100H中是否是几个单元数。
修改程序,查找其它内容。
SW06.ASM
LJMPL5800
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
相同数的个数送2100H
L581E:
SJMPL581E
实验四脉冲计数(定时/计数器实验)
1,
实验目的:
熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
2,
实验内容:
把定时器0外部输入的脉冲进行计数,并送显示器显示
3,实验程序框图:
4,
实验接线图:
5,
实验步骤:
用插针把8MHZ插孔和T插孔连接,P3.4依次接T0~T7或单脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。
6,
思考:
修改程序使显示器上可显示到999999个脉冲个数。
7,程序清单文件名:
SW09.ASM
LJMPSE15
ORG06E0H
SE15:
MOVSP,#53H
MOVP2,#0FFH
MOVA,#43H
MOVDPTR,#0FF20H
MOVTMOD,#05H
MOVTH0,#00H
定时计数器初始化
MOVTL0,#00H
开计数器
SETBTR0
LO29:
MOVR2,TH0
MOVR3,TL0
取出TH0,TL0内容
LCALLZOY0
MOVR0,#79H
二转十进制
MOVA,R6
LCALLPTDS
MOVA,R5
MOVA,R4
LCALLPTDS
送显示缓冲区
LCALLSSEE
显示
SJMPLO29
循环计数
ZOY0:
CLRA
MOVR4,A
MOVR5,A
MOVR6,A
0送R4R5R6
MOVR7,#10H
LO30:
CLRC
R2R3左移,移出的
最高位送CY
RLCA
MOVR3,A
ADDCA,R6
(R4R5R6)*2送R4R5R6
DAA
十进制调整
MOVR6,A
ADDCA,R5
DAA
ADDCA,R4
DJNZR7,LO30
循环16次
RET
PTDS:
MOVR1,A
拆送显示缓冲区
ACALLPTDS1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
SSEE:
SETBRS1
换工作区
MOVR5,#05H
SSE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSE1:
MOVR1,#21H
MOVA,30H
CPLA
MOVX@R1,A
字位送入
MOVR0,31H
MOVDPTR,#DDFF
MOVCA,@A+DPTR
取字形代码
MOVR1,#22H
字形送入
MOVA,30H
右移
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
关显示
DJNZR7,SSE1
6位显示完了吗?
DJNZR5,SSE2
5次显示完了吗?
CLRRS1
DDFF:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
实验一 P1口亮灯实验
(l)学习P1口的使用方法;
(2)学习延时子程序的编写。
实验顶备知识:
(l),Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。
(2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。
3,
实验内容:
P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
实验程序框图:
实验步骤:
P1.0~P1.7用插针连至L1~L8,运行程序后,观察发光二极管闪亮移位情况。
7,
改变延时常数,使发光二极管闪亮时间改变。
修改程序,使发光二极管闪亮移位方向改变。
8,
程序清单
HW01.ASM
LJMPSE18
ORG0790H
SE18:
MOVP1,#0FFH
送P1口
LO34:
MOVA,#0FEH
L1发光二极管点亮
LO33:
MOVP1,A
LCALLSE19
延时
RLA
左移位
SJMPLO33
循环
ORG07A0H
SE19:
MOVR6,#0A0H
LO36:
MOVR7,#0FFH
LO35:
DJNZR7,LO35
DJNZR6,LO36
P3口输入,P1口输出
掌握P3口 P1口简单使用。
P3.3口输入一脉冲, PI口按16进制加一方式点亮发光二极管。
5,实验步骤:
P3.3用接针连至K1P1.0~P1.7插针连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。
6,思考:
修改程序,使发光二极管左移方式点亮。
7,程序清单
HW03.ASM
LJMPJ100
ORG0810H
J100:
MOVA,#00H
J101:
JBP3.3,J101
MOVR2,#10H
LCALLDELY
P3.3电平为低吗?
J102:
JNBP3.3,J102
MOVR2,#10H
P3.3电平为高吗?
INCA
加1
PUSHACC
CPLA
取反
MOVP1,A
驱动发光二极管
POPACC
AJMPJ101
DELY:
PUSH02H
DEL2:
DEL3:
DEL4:
DJNZR2,DEL4
POP02H
DJNZR2,DEL3
DJNZR2,DEL2
DJNZR2,DELY
RET
实验三 8255 PA口控制PB口
掌握单片机系统中扩展外围芯片的方法,了解8255芯片的结构及编程方法。
用8255 PA口作开关量输入口,PB口作输出口。
4,实验接线图:
8255PA口接Kl~K8,PB口接L1~L8运行程序,按K1~K8,观察L1~L8发光二极管是否对应点亮。
HW06.ASM
ORG0000h
LJMPSE17
ORG0770H
SE17:
MOVDPTR,#0FF2BH
MOVA,#90H
8255初始化
LO32:
MOVDPTR,#0FF28H
PA口状态读出
送PB口
SJMPLO32
实验四 8255控制交通灯
进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
8255PB3~PB0-->
L1~L4,PA7~PA0-->
L5~L12。
执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书