微机原理与应用实验报告.docx
- 文档编号:23931819
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:27
- 大小:577.76KB
微机原理与应用实验报告.docx
《微机原理与应用实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与应用实验报告.docx(27页珍藏版)》请在冰豆网上搜索。
微机原理与应用实验报告
《微机原理与应用》实验报告
姓名:
郭爽
学号:
2014012468
年级:
2014
专业:
电子
2016年春季学期
实验一.熟悉单片机开发环境
1.功能要求
在P1端口接8个LED,并编程依次循环点亮。
要求用软件延时程序控制
LED的亮灭时间,并能精确地计算和用软件测量延时时间。
2.硬件原理
3.程序清单
ORG0000H
LJMPSTART
ORG0030H
START:
MOVR2,#8
MOVA,#01H
LOOP1:
MOVP1,A
LCALLDELAY
RLA
DJNZR2,LOOP1
MOVR2,#8
RRA
LOOP2:
MOVP1,A
LCALLDELAY
RRA
DJNZR2,LOOP2
LJMPSTART
DELAY:
MOVR5,#20
D1:
MOVR6,#80
D2:
MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END
4.实验心得
首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。
实验二.并行口输入输出实验——循环彩灯控制
1.功能要求
P1口接8个开关,P0口接8个灯,每个开关对应一个灯,实时读取开
关状态,开关闭合时,灯亮。
开关断开时,灯灭。
用5个开关K0~K4,控制P0口所接8个灯的循环,各开关的功能要求
如下:
(1)K1~K2分别选择灯的四种闪动方式;
(2)K3用于控制灯的循环方向(顺时针或逆时针);
(3)K4用于选择灯的两种循环速度;
(4)K0用于引发外部中断,在外部中断子程序中,读取通过K1-K4所设定
的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。
当K0没有引发
中断时,保持上一次的循环方式。
2.硬件原理
3.程序清单
DELAY2:
MOVR0,#200
D4:
MOVR1,#200
D5:
MOVR2,#10
D6:
DJNZR2,D6
DJNZR1,D5
DJNZR0,D4
RET
INTERRUPT:
MOV20H,P1
JBP1.0,WORK1
JNBP1.0,WORK2
WORK1:
JBP1.1,WAY1
JNBP1.1,WAY2
WORK2:
JBP1.1,WAY3
JNBP1.1,WAY4
WAY1:
MOVA,#01H
RETI
WAY2:
MOVA,#03H
RETI
WAY3:
MOVA,#07H
RETI
WAY4:
MOVA,#0FH
RETI
END
ORG0000H
LJMPMAIN
ORG0003H
LJMPINTERRUPT
ORG0030H
MAIN:
SETBEX0
SETBIT0
SETBEA
MOVA,#01H
A1:
MOVP0,A
JB20H.2,B1
JNB20H.2,B2
A2:
JB20H.3,LOOP11
JNB20H.3,LOOP22
B1:
LCALLDELAY1
LJMPA2
B2:
LCALLDELAY2
LJMPA2
LOOP11:
RLA
LJMPA1
LOOP22:
RRA
LJMPA1
ORG0600H
DELAY1:
MOVR0,#100
D1:
MOVR1,#100
D2:
MOVR2,#10
D3:
DJNZR2,D3
DJNZR1,D2
DJNZR0,D1
RET
4.实验心得
开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。
实验三.七段LED数码管控制实验
1.功能要求
首先用万用表判断所用数码管是共阴极还是共阳极数码管,并测出各引脚
功能,画出引脚分布图。
实验采用4位一体的数码管,用P1口通过驱动芯片控制段码输出信号线,
P0口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以
下功能:
(1)当开关K0接低电平时,第一位依次显示0~F,然后第二位、第三位、
第四位,再循环回第一位。
(2)当开关K0接高电平时,四位动态显示“HELP”。
2.硬件要求
3.程序清单
SETBP2.2
MOVP0,#0C7H
LCALLDLAY2
CLRP2.2
SETBP2.3
MOVP0,#8CH
LCALLDLAY2
CLRP2.3
LJMPSTART
DELAY:
MOVR7,#30
D1:
MOVR6,#40
D2:
MOVR5,#248
DJNZR5,$
DJNZR6,D2
DJNZR7,D1
RET
DLAY2:
MOVR7,#10
D3:
MOVR6,#10
D4:
MOVR5,#20
DJNZR5,$
DJNZR6,D4
DJNZR7,D3
RET
TAB1:
DB0FFH,8EH,86H,0A1H,0C6H,83H,88H,90H
DB80H,0F8H,82H,92H,99H,0B0H,0A4H,0F9H,0C0H
TAB2:
DB0FFH,08H,04H,02H,01H
END
ORG0000H
LJMPSTART
ORG0030H
START:
JBP3.0,LOPP
JNBP3.0,LOOP2
LOPP:
MOVR1,#4
LOOP1:
MOVR3,#16
LOP1:
MOVP0,#0FEH
MOVDPTR,#TAB2
MOVA,R1
MOVCA,@A+DPTR
MOVP2,A
JNBP3.0,LOOP2
MOVDPTR,#TAB1
MOVA,R3
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
DJNZR3,LOP1
DJNZR1,LOOP1
LJMPLOPP
LOOP2:
SETBP2.0
MOVP0,#89H
LCALLDLAY2
CLRP2.0
SETBP2.1
MOVP0,#86H
LCALLDLAY2
CLRP2.1
4.实验心得
开始掌握单片机,通过实验3加强了对单片机的理解,学会查表程序的书写方法,学会244芯片的工作原理,并且掌握了数码管工作的原理。
实验四.定时器中断实验
1.功能要求
实现一个4位秒表:
(1)用开关K0模拟秒表的启动、停止、清零功能,K0触发外部中断INT0,
按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。
(2)定时采用T0定时器中断完成,最低位按1/10秒计数,依次计数单位为
1分、10秒、1秒、1/10秒。
(3)要求外部中断INT0的优先级高于T0的优先级
2.硬件要求
3.程序清单
ORG0000H
LJMPSTART
ORG0003H
LJMPITRU0
ORG000BH
LJMPITRU1
ORG0030H
START:
MOVTMOD,#01H
MOVIP,#01H
SETBET0
SETBIT0
SETBEX0
SETBEA
LOPP:
SETBP1.2
MOVR0,#0
MOVR4,#0
MOVR5,#0
MOVR6,#0
MOVR7,#0
MOVR1,#4
LOP1:
MOVDPTR,#TAB2
MOVA,R1
MOVCA,@A+DPTR
MOVP2,A
MOVP0,#0C0H
DJNZR1,LOP1
JBP1.0,LOPP
SETBTR0
CIRCLE:
SETBP2.3
MOVDPTR,#TAB3
MOVA,R4
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.3
SETBP2.2
MOVDPTR,#TAB4
MOVA,R5
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.2
W1:
INCR4
CJNER4,#10,W2
MOVR4,#0
INCR5
CJNER5,#10,W2
MOVR5,#0
INCR6
CJNER6,#6,W2
MOVR6,#0
INCR7
CJNER7,#10,W2
W2:
RETI
END
SETBP2.1
MOVDPTR,#TAB3
MOVA,R6
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.1
SETBP2.0
MOVDPTR,#TAB4
MOVA,R7
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
CLRP2.0
JNBP1.0,CIRCLE
CLRTR0
JNBP1.2,LOPP
LJMPCIRCLE
TAB3:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
TAB4:
DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
TAB2:
DB0FFH,08H,04H,02H,01H
DELAY:
MOVR2,#200
D1:
DJNZR2,D1
MOVR2,#200
D2:
DJNZR2,D2
RET
ITRU0:
INCR0
CJNER0,#3,W3
CLRP1.2
LJMPW4
W3:
CPLP1.0
W4:
RETI
ITRU1:
MOVTH0,#(65536-50000)/256
MOVTL0,#(65536-50000)MOD256
CPLP1.5
JNBP1.5,W1
LJMPW2
4.实验心得
开始掌握单片机,通过实验4加强了对单片机的理解,学会定时程序的书写方法,如何进行计算精度,使定时器更加精确。
实验五.脉冲宽度与周期测量实验
1.功能要求
已知某被测脉冲频率为1KHz左右:
自主设计测量方法,编程连续测量输入脉冲宽度,并用七段LED显示结
果。
自主设计测量方法,编程连续测量输入脉冲周期,并用七段LED显示结
果。
自主设计测量方法,同时测量脉冲宽度和周期,由开关K0选择显示脉冲
宽度还是显示脉冲周期。
2.硬件要求
3.程序清单
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0X
ORG0030H
MAIN:
MOVTMOD,#0AH;使用定时器0的方式2,自动赋值类型
MOVTH0,#156;针对12M晶振赋值,如果为11.0192M晶振,重新赋值164
MOVTL0,#156
SETBEA
SETBET0
MOVDPTR,#TAB
MOVA,#0
MOVR0,#0
MOVR1,#0
MOVR2,#0
MOVR3,#0
MOVR4,#0
JBP1.0,M1;通过对P1,0的查询选择测量周期或者脉宽
M0:
JBP3.2,$;利用查询的方式开启定时器
SETBTR0
JNBP3.2,$
JBP3.2,$
JNBP3.2,$
JBP3.2,$
CLRTR0
LJMPLOOP
M1:
JBP3.2,M1
SETBTR0
JNBP3.2,$
JBP3.2,$
CLRTR0
LOOP:
MOVA,TL0
SUBBA,#156
MOVB,#10
DIVAB
MOVR1,B
MOVR2,A
MOVA,R0
MOVB,#10
DIVAB
MOVR3,B
ADDA,#10
MOVR4,A;最后给R4加10,让其读后10位的表
SHOW:
MOVP2,#01H;共阳极数码管
MOVA,R1
LCALLSHOW1
LCALLSHOW2
MOVP2,#02H
MOVA,R2
LCALLSHOW1
LCALLSHOW2
MOVP2,#04H
MOVA,R3
LCALLSHOW1
LCALLSHOW2
MOVP2,#08H
MOVA,R4
LCALLSHOW1
LCALLSHOW2
LJMPMAIN
SHOW1:
MOVCA,@A+DPTR
MOVP0,A
RET
SHOW2:
MOVR7,#200
MOVR6,#200
DJNZR6,$
DJNZR7,$
RET
T0X:
INCR0;每100微妙进1
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;前10位无小数点
DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;后10位有小数点
END
4.实验心得
通过实验5加强了对单片机的理解,学会利用单片机进行脉冲宽度和周期的测量,并且掌握了十六进制转换为十进制的技巧。
实验六.串行通信实验
1.功能要求
(1)利用串行口方式0实现一个七段数码管的显示控制,轮流显示0~9十个
数码。
(2)两人一组,利用异步通信功能将一方的8个按键的高低电平状态传到另一
方,并利用另一方的8个LED显示其开关状态,要求双向通信,互相显示。
2.
要求2
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSCON,#50H
MOVTMOD,#20H
MOVPCON,#80H
MOVTL1,#0F4H
MOVTH1,#0F4H
SETBRI
SETBTR1
SEND:
MOVA,P2
MOVSBUF,A
JNBTI,$
CLRTI
REVE:
JNBRI,REVE
MOVA,SBUF
MOVP1,A
CLRRI
LJMPSEND
END
程序清单
要求1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSCON,#00H
CLRES
LED:
MOVP2,#01
LOOP:
MOVR3,#10
LOP1:
MOVDPTR,#TAB
MOVA,R3
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
LCALLDELAY
DJNZR3,LOP1
LJMPLED
DELAY:
MOVR7,#40
W2:
MOVR6,#40
W1:
MOVR5,#150
DJNZR5,$
DJNZR6,W1
DJNZR7,W2
RET
TAB:
DB00H,03H,9FH,25H,0DH
DB99H,49H,0C1H,1FH,01H,09H
END
实验七.RAM扩展与读写控制实验
1.功能要求
(1)利用74LS573进行总线扩展。
(2)连接两片62256,并用74LS138完成地址分配。
(3)将一片62256前10个字节的内容加1后,存入另一片62256中,并读出
用8个LED显示。
2.硬件要求
3.程序清单
DELAY:
MOVR6,#200
W1:
MOVR5,#200
W2:
MOVR4,#100
DJNZR4,$
DJNZR5,W2
DJNZR6,W1
RET
END
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVR7,#0
MOVR0,#0
MOVDPTR,#0000H
WRITE:
MOVA,R0
MOVX@DPTR,A
INCR0
INCDPTR
CJNER0,#10,WRITE
READ:
MOVDPTR,#8000H
MOVP2,#00H
MOVR0,#00H
MOVR7,#00H
LOOP:
MOVXA,@R0
INCA
MOVP1,A
LCALLDELAY
MOVX@DPTR,A
INCR7
INCR0
INCDPTR
CJNER7,#10,LOOP
LJMPMAIN
4.实验心得
开始精通单片机,通过实验7加强了对单片机的理解,学会单片机拓展外部数据存储器程序的书写方法,学会部分数据存储器芯片芯片的工作原理。
实验八LED点阵显示控制实验
1.功能介绍
控制两个LED点阵模块动态地显示自设字符或图形
2.硬件要求
3.程序清单
ORG0000H
LJMPSTART
ORG000BH
LJMPT0X;通过定时器控制扫描时间
ORG0030H
START:
MOVR0,#00H
MOVR1,#00H
MOVR2,#00H
MOVTMOD,#01H;选择定时器方式1
MOVTH0,#(65536-4000)/256:
;设置4毫秒的时间
MOVTL0,#(65536-4000)MOD256
SETBTR0
SETBET0
SETBEA
SJMP$
T0X:
MOVTH0,#(65536-4000)/256
MOVTL0,#(65536-4000)MOD256
MOVDPTR,#TAB
MOVA,R1
MOVCA,@A+DPTR
MOVP2,A
MOVDPTR,#DIGIT
MOVA,R2
MOVB,#8
MULAB;通过相乘的方式进行选数字
ADDA,R1
MOVCA,@A+DPTR
MOVP1,A
INCR1
CJNER1,#8,NEXT
MOVR1,#00H
NEXT:
INCR0
MOVA,R0
CJNEA,#250,NEX;控制每个数字出现的时间
MOVR0,#00H
INCR2
CJNER2,#10,NEX
MOVR2,#00H
NEX:
RETI
TAB:
DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DIGIT:
DB00H,00H,3EH,41H,41H,41H,3EH,00H
DB00H,00H,00H,00H,21H,7FH,01H,00H
DB00H,00H,27H,45H,45H,45H,39H,00H
DB00H,00H,22H,49H,49H,49H,36H,00H
DB00H,00H,0CH,14H,24H,7FH,04H,00H
DB00H,00H,72H,51H,51H,51H,4EH,00H
DB00H,00H,3EH,49H,49H,49H,26H,00H
DB00H,00H,40H,40H,40H,4FH,70H,00H
DB00H,00H,36H,49H,49H,49H,36H,00H
DB00H,00H,32H,49H,49H,49H,3EH,00H
END
4.实验心得
做完了本学期最后一个单片机实验,受益颇多,算是入门了吧,希望下学期能够继续在单片机的海洋里遨游。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 实验 报告