微机原理与应用 实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

v1.0 可编辑可修改《微机原理与应用》实验报告
姓名:郭爽
学号:68
年级:2014
专业:电子
2016年春季学期
实验一.熟悉单片机开发环境
1.功能要求
在 P1 端口接8 个LED,并编程依次循环点亮。

要求用软件延时程序控制LED 的亮灭时间,并能精确地计算和用软件测量延时时间。

2.硬件原理
v1.0 可编辑可修改
3.程序清单
ORG 0000H
LJMP START
ORG 0030H
START: MOV R2,#8
MOV A,#01H LOOP1: MOV P1,A
LCALL DELAY RL A
DJNZ R2,LOOP1 MOV R2,#8
RR A
LOOP2: MOV P1,A
LCALL DELAY RR A
DJNZ R2,LOOP2 LJMP START
DELAY: MOV R5,#20
D1: MOV R6,#80
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,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.硬件原理
v1.0 可编辑可修改3.程序清单
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTERRUPT ORG 0030H MAIN: SETB EX0
SETB IT0
SETB EA DELAY2: MOV R0,#200 D4: MOV R1,#200 D5: MOV R2,#10 D6: DJNZ R2,D6
DJNZ R1 ,D5 DJNZ R0,D4
RET INTERRUPT:
MOV A,#01H
A1: MOV P0,A
JB ,B1
JNB ,B2
A2: JB ,LOOP11 JNB ,LOOP22 B1: LCALL DELAY1 LJMP A2
B2: LCALL DELAY2 LJMP A2 LOOP11: RL A
LJMP A1 LOOP22: RR A
LJMP A1
ORG 0600H DELAY1: MOV R0,#100 D1: MOV R1,#100 D2: MOV R2,#10 D3: DJNZ R2,D3
DJNZ R1,D2
DJNZ R0 ,D1
RET
4.实验心得
开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。

实验三.七段LED 数码管控制实验
1.功能要求
首先用万用表判断所用数码管是共阴极还是共阳极数码管,并测出各引脚
功能,画出引脚分布图。

实验采用4 位一体的数码管,用P1 口通过驱动芯片控制段码输出信号线,
P0 口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能:
(1)当开关K0 接低电平时,第一位依次显示0~F,然后第二位、第三位、
v1.0 可编辑可修改第四位,再循环回第一位。

(2)当开关K0 接高电平时,四位动态显示“HELP”。

2.硬件要求
3.程序清单
ORG 0000H
SETB
LJMP START
ORG 0030H START:JB ,LOPP
JNB ,LOOP2 LOPP: MOV R1,#4 LOOP1:MOV R3,#16 LOP1: MOV P0,#0FEH
MOV DPTR,#TAB2 MOV A,R1
MOVC A,@A+DPTR MOV P2,A
JNB ,LOOP2 MOV DPTR,#TAB1 MOV A,R3
MOVC A,@A+DPTR MOV P0,A
LCALL DELAY
DJNZ R3,LOP1 DJNZ R1,LOOP1
LJMP LOPP
LOOP2:SETB
MOV P0,#89H
LCALL DLAY2
CLR
SETB
MOV P0,#86H
LCALL DLAY2
CLR
4.实验心得
开始掌握单片机,通过实验3加强了对单片机的理解,学会查表程序的书写方法,学会244芯片的工作原理,并且掌握了数码管工作的原理。

实验四.定时器中断实验
1.功能要求
实现一个4 位秒表:
v1.0 可编辑可修改(1)用开关K0 模拟秒表的启动、停止、清零功能,K0 触发外部中断INT0,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。

(2)定时采用T0 定时器中断完成,最低位按1/10 秒计数,依次计数单位为1 分、10 秒、1 秒、1/10 秒。

(3)要求外部中断INT0 的优先级高于T0 的优先级
2.硬件要求
3.程序清单
ORG 0000H
LJMP START
ORG 0003H
LJMP ITRU0
ORG 000BH
LJMP ITRU1
ORG 0030H START: MOV TMOD,#01H MOV IP, #01H SETB ET0
SETB IT0
SETB EX0
SETB EA LOPP: SETB
MOV R0,#0
MOV R4,#0
MOV R5,#0
MOV R6,#0
MOV R7,#0
MOV R1,#4
LOP1: MOV DPTR,#TAB2 MOV A,R1
MOVC A,@A+DPTR MOV P2,A
MOV P0,#0C0H
DJNZ R1,LOP1 JB ,LOPP
SETB TR0 CIRCLE: SETB
MOV DPTR,#TAB3 MOV A,R4
MOVC A,@A+DPTR MOV P0,A
LCALL DELAY
CLR
SETB
MOV DPTR,#TAB4 MOV A,R5
MOVC A,@A+DPTR MOV P0,A
LCALL DELAY
CLR
SETB
MOV DPTR,#TAB3 MOV A,R6
MOVC A,@A+DPTR MOV P0,A
LCALL DELAY
CLR
SETB
MOV DPTR,#TAB4 MOV A,R7
MOVC A,@A+DPTR MOV P0,A W1: INC R4
CJNE R4,#10 ,W2 MOV R4,#0
INC R5
CJNE R5,#10,W2 MOV R5,#0
INC R6
LCALL DELAY
CLR
JNB ,CIRCLE
CLR TR0
JNB ,LOPP
LJMP CIRCLE
TAB3: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H TAB4: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
TAB2: DB 0FFH,08H,04H,02H,01H
DELAY: MOV R2,#200
D1: DJNZ R2,D1
MOV R2,#200
D2: DJNZ R2,D2
RET
ITRU0: INC R0
CJNE R0,#3, W3
CLR
LJMP W4
W3: CPL
W4: RETI
ITRU1: MOV TH0,#(65536-50000) / 256
MOV TL0,#(65536-50000) MOD 256
CPL
JNB ,W1
LJMP W2
4.实验心得
开始掌握单片机,通过实验4加强了对单片机的理解,学会定时程序的书写方法,如何进行计算精度,使定时器更加精确。

实验五.脉冲宽度与周期测量实验
1.功能要求
已知某被测脉冲频率为1KHz 左右:
自主设计测量方法,编程连续测量输入脉冲宽度,并用七段LED 显示结果。

自主设计测量方法,编程连续测量输入脉冲周期,并用七段LED 显示结果。

自主设计测量方法,同时测量脉冲宽度和周期,由开关K0 选择显示脉冲
v1.0 可编辑可修改宽度还是显示脉冲周期。

2.硬件要求
3.程序清单
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0X
ORG 0030H
MAIN: MOV TMOD,#0AH ;使用定时器0的方式2,自动赋值类型
MOV TH0,#156 ;针对12M晶振赋值,如果为晶振,重新赋值164 MOV TL0,#156
SETB EA
SETB ET0
MOV DPTR,#TAB
MOV A,#0
MOV R0,#0
MOV R1,#0
MOV R2,#0
MOV R3,#0
MOV R4,#0
JB ,M1 ;通过对P1,0的查询选择测量周期或者脉宽
M0: JB ,$ ;利用查询的方式开启定时器
SETB TR0
JNB ,$
JB ,$
JNB ,$
JB ,$
CLR TR0
LJMP LOOP M1: JB ,M1
SETB TR0
JNB ,$
JB ,$
CLR TR0 LOOP: MOV A,TL0 SUBB A,#156 MOV B,#10 DIV AB
MOV R1,B
MOV R2,A
MOV A,R0
MOV B,#10
DIV AB
MOV R3,B
ADD A,#10
MOV R4,A ;最后给R4加10,让其读后10位的表SHOW: MOV P2,#01H ;共阳极数码管
MOV A,R1
LCALL SHOW1
LCALL SHOW2
MOV P2,#02H
MOV A,R2
LCALL SHOW1
LCALL SHOW2
MOV P2,#04H
MOV A,R3
LCALL SHOW1
LCALL SHOW2
MOV P2,#08H
MOV A,R4
LCALL SHOW1
LCALL SHOW2
LJMP MAIN
SHOW1:MOVC A,@A+DPTR
MOV P0,A
RET
SHOW2:MOV R7,#200
MOV R6,#200
DJNZ R6,$
DJNZ R7,$
RET
T0X: INC R0 ;每100微妙进1
RETI
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;前10位无小数点
DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H ;后10位有小数点
END
4.实验心得
通过实验5加强了对单片机的理解,学会利用单片机进行脉冲宽度
和周期的测量,并且掌握了十六进制转换为十进制的技巧。

实验六.串行通信实验
1.功能要求
(1)利用串行口方式0 实现一个七段数码管的显示控制,轮流显示0~9十个数码。

(2)两人一组,利用异步通信功能将一方的8个按键的高低电平状态传到另一方,并利用另一方的8个LED 显示其开关状态,要求双向通信,互相显示。

2.程序清单
要求1
ORG 0000H
LJMP MAIN
ORG 0030H MAIN: MOV SCON,#00H CLR ES
LED: MOV P2,#01 LOOP: MOV R3,#10
要求2
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SCON,#50H MOV TMOD,#20H MOV PCON,#80H
MOV TL1,#0F4H
LOP1: MOV DPTR,#TAB
MOV A,R3
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
LCALL DELAY
DJNZ R3,LOP1
LJMP LED
DELAY:MOV R7 ,#40
W2: MOV R6 ,#40
W1: MOV R5 ,#150
DJNZ R5,$
DJNZ R6, W1
DJNZ R7, W2
RET
TAB: DB 00H,03H,9FH,25H,0DH
DB 99H,49H,0C1H,1FH,01H,09H
END
实验七 .RAM 扩展与读写控制实验
1.功能要求
(1)利用74LS573 进行总线扩展。

(2)连接两片62256,并用74LS138 完成地址分配。

(3)将一片62256 前10 个字节的内容加1 后,存入另一片62256 中,并读出用8 个LED 显示。

2.硬件要求
v1.0 可编辑可修改3.程序清单
ORG 0000H LJMP MAIN DELAY:MOV R6,#200 W1: MOV R5,#200 W2: MOV R4,#100
ORG 0030H
MAIN: MOV R7,#0
MOV R0,#0
MOV DPTR,#0000H WRITE:MOV A,R0
MOVX @DPTR,A
INC R0
INC DPTR
CJNE R0,#10,WRITE READ: MOV DPTR,#8000H MOV P2,#00H
MOV R0,#00H
MOV R7,#00H
LOOP: MOVX A,@R0
INC A
MOV P1,A
LCALL DELAY
MOVX @DPTR,A
INC R7
INC R0
INC DPTR
CJNE R7,#10,LOOP
LJMP MAIN
4.实验心得
开始精通单片机,通过实验7加强了对单片机的理解,学会单片机拓展外部数据存储器程序的书写方法,学会部分数据存储器芯片芯片的工作原理。

实验八LED 点阵显示控制实验
1.功能介绍
控制两个LED 点阵模块动态地显示自设字符或图形
2.硬件要求
v1.0 可编辑可修改
3.程序清单
ORG 0000H
LJMP START
ORG 000BH
LJMP T0X ;通过定时器控制扫描时间
ORG 0030H
START: MOV R0,#00H
MOV R1,#00H
MOV R2,#00H
MOV TMOD,#01H ;选择定时器方式1
MOV TH0,#(65536-4000)/256 :;设置4毫秒的时间 MOV TL0,#(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $
T0X: MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB
MOV A,R1
MOVC A,@A+DPTR
MOV P2,A
MOV DPTR,#DIGIT
MOV A,R2
MOV B,#8
MUL AB ;通过相乘的方式进行选数字 ADD A,R1
MOVC A,@A+DPTR
MOV P1,A
INC R1
CJNE R1,#8,NEXT
MOV R1,#00H
NEXT: INC R0
MOV A,R0
CJNE A,#250,NEX ;控制每个数字出现的时间 MOV R0,#00H
INC R2
CJNE R2,#10,NEX
MOV R2,#00H
NEX: RETI
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DIGIT: DB 00H,00H,3EH,41H,41H,41H,3EH,00H
DB 00H,00H,00H,00H,21H,7FH,01H,00H
DB 00H,00H,27H,45H,45H,45H,39H,00H
DB 00H,00H,22H,49H,49H,49H,36H,00H
DB 00H,00H,0CH,14H,24H,7FH,04H,00H
DB 00H,00H,72H,51H,51H,51H,4EH,00H
DB 00H,00H,3EH,49H,49H,49H,26H,00H
DB 00H,00H,40H,40H,40H,4FH,70H,00H
DB 00H,00H,36H,49H,49H,49H,36H,00H
DB 00H,00H,32H,49H,49H,49H,3EH,00H
END
4.实验心得
做完了本学期最后一个单片机实验,受益颇多,算是入门了吧,希望下学期能够继续在单片机的海洋里遨游。

相关文档
最新文档