单片机实验报告.docx
《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(15页珍藏版)》请在冰点文库上搜索。
单片机实验报告
实验一发光二极管流水灯实验
一、实验目的:
1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮。
开始时P0.0→P0.1….→P0.7,实现亮点以1HZ频率循环移动。
2.用PROTEUS设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。
3.掌握发光二极管的控制方法。
二、PROTEUS电路设计:
3、源程序的编写:
ORG0000H
LJMPMAIN
MAIN:
MOVA,#0FEH
LOOP:
MOVP0,A
ACALLDELAY;调用延时1S子程序
RLA
SJMPLOOP
DELAY:
MOVR2,#10
DEL3:
MOVR3,#200
DEL2:
MOVR4,#125
DEL1:
NOP
NOP
DJNZR4,DEL1
DJNZR3,DEL2
DJNZR2,DEL3
RET
实验二开关控制LED数码管实验
一、实验目的:
1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。
(如K4K3K2K1全部按下,则显示F;若只有K2按下,则显示2。
)
2.掌握LED数码管的静态显示。
3.掌握I/O口的控制方法。
二、PROTEUS电路设计:
3、源程序的编写:
ORG00H
LJMPMAIN
ORG30H
DB03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH,077H,07CH,039H,05EH,079H,071H
MAIN:
MOVP2,#0FFH
AGAIN:
MOVA,P2
CPLA
MOVDPTR,#30H
MOVCA,@A+DPTR
CPLA
MOVP0,A
AJMPAGAIN
END
实验三外中断优先级实验
一、实验目的:
1.理解单片机中断优先级和优先权。
2.用PROTEUS设计,仿真基于AT89C51单片机的中断优先级实验。
3.掌握中断编程方法。
单片机主程序控制P0口数码管循环显示0~8;外中断0、外中断1发生时分别在P2口、P1口依次显示0~8。
通过实验可演示高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级。
二、PROTEUS电路设计:
3、源程序的编写:
ORG0000H
LJMPSTART
ORG0003H
LJMPBREAK0
ORG0013H
LJMPBREAK1
ORG0030h
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
START:
MOVDPTR,#TAB
MOVR0,#0H
MOVIE,#85H//开外部中断0,1
MOVIP,#04H//优先级1>0
SETBIT0//触发方式
SETBIT1
LED:
MOVA,R0
MOVCA,@A+DPTR
MOVP0,A
MOVR3,0FFH
MOVR4,0FFH
LOOP:
NOP//延时
DJNZR3,LOOP
DJNZR4,LOOP
INCR0
CJNER0,#9H,LED
MOVR0,#0H
LJMPLED
BREAK0:
MOVR1,#0H
LED0:
MOVA,R1
MOVCA,@A+DPTR
MOVP2,A
MOVR3,0FFH
MOVR4,0FFH
LOOP0:
NOP//延时
DJNZR3,LOOP0
DJNZR4,LOOP0
INCR1
CJNER1,#9H,LED0
MOVP2,#0FFH
RETI
BREAK1:
MOVR2,#0H
LED1:
MOVA,R2
MOVCA,@A+DPTR
MOVP1,A
MOVR3,0FFH
MOVR4,0FFH
LOOP1:
NOP//延时
DJNZR3,LOOP1
DJNZR4,LOOP1
INCR2
CJNER2,#9H,LED1
MOVP1,#0FFH
RETI
END
实验四60S倒计时实验
一、实验目的:
1.通过AT89C51的定时器实现60S倒计时,显示采用两位数码管动态显示。
2.用PROTEUS设计,仿真基于AT89C51单片机的60S倒计时实验。
二、PROTEUS电路设计:
3、源程序的编写:
ORG0000H
AJMPMAIN
ORG000BH
AJMPLOOP1
ORG0030H
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
MAIN:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#82H
SETBTR0
MOVR2,#60
MOVR0,#14H
LOOP:
MOVA,R2
MOVB,#10
DIVAB
MOVDPTR,#30H
MOVCA,@A+DPTR
CPLA
MOVP2,#01H
MOVP1,A
ACALLDELAY
MOVA,B
MOVCA,@A+DPTR
CPLA
MOVP2,#02H
MOVP1,A
ACALLDELAY
AJMPLOOP
LOOP1:
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZR0,NEXT
MOVR0,#14H
DECR2
CJNER2,#0FFH,NEXT
MOVR2,#60
NEXT:
RETI
DELAY:
DEL2:
MOVR4,#10
DEL1:
NOP
NOP
DJNZR4,DEL1
DJNZR3,DEL2
RET
END
实验五矩阵式键盘的设计
一、实验目的:
1.掌握键盘设计中按键识别的原则。
2.用PROTEUS设计一个常规4×4的矩阵键盘。
3.键盘编码规则自己定义,分别对应数字键0-9、A-F,按下对应的按键显示在数码管上显示对应的数据。
二、PROTEUS电路设计:
3、源程序的编写:
ORG00H
LJMPSTART
ORG30H
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
START:
MOVDPTR,#TABLE
MOVP1,#08H
HH:
MOVP2,#0F0H
H1:
JBP2.4,H2
MOVR0,#00H
LJMPLL
H2:
JBP2.5,H3
MOVR0,#01H
LJMPLL
H3:
JBP2.6,H4
MOVR0,#02H
LJMPLL
H4:
JBP2.7,H1
MOVR0,#03H
LL:
MOVP2,#0FH
L1:
JBP2.0,L2
MOVA,#00H
LJMPCB
L2:
JBP2.1,L3
MOVA,#01H
LJMPCB
L3:
JBP2.2,L4
MOVA,#02H
LJMPCB
L4:
JBP2.3,L1
MOVA,#03H
CB:
MOVB,#04H
MULAB
ADDA,R0
MOVCA,@A+DPTR
CPLA
MOVP0,A
LJMPHH
END
实验六AD转换程序设计
一、实验目的:
1.掌握转换器ADC0809的使用。
2.用PROTEUS设计,仿真基于AT89C51单片机的A/D转换实验。
3.通过改变电位器的值改变模拟量的输入,经转换为数字量在LED上显示,比对模拟量和数字量的关系。
二、PROTEUS电路设计:
3、源程序的编写:
ORG00H
LJMPSTART
ORG30H
TABLE:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
START:
MOVR1,#00H
MOVR2,#08H
MOVDPTR,#TABLE
CLREX0
LOOP:
CLRP2.0
MOVX@R1,A
MOVR3,#20H
DELY:
DJNZR3,DELY
SETBP3.2
WAIT:
JBP3.2,WAIT
MOVXA,@R1
MOVR5,A
ANLA,#0FH
MOVCA,@A+DPTR
CPLA
SETBP3.5
CLRP3.4
MOVP1,A
ACALLDLY
MOVA,R5
ANLA,#0F0H
SWAPA
MOVCA,@A+DPTR
CPLA
SETBP3.4
CLRP3.5
MOVP1,A
ACALLDLY
SJMPLOOP
DLY:
MOVR4,#175
DL:
MOVR6,#125
DL1:
DJNZR6,DL1
DJNZR4,DL
RET
HERE:
SJMPHERE
END
实验七双机通信实验
一、实验目的:
1.掌握单片机串口通信程序的设计。
2.了接RS232接口通信的特点。
3.双机通信:
分别把接收到的对方通过逻辑开关输入的信息在本地数码管上显示,如下图甲机的逻辑开关数据为81H,乙机通过串口接收该数据并数码关管显示,而甲机显示乙机发送的数据88H。
二、PROTEUS电路设计:
3、源程序的编写:
ORG0000H
LJMPSTART
ORG0030H
START:
MOVTMOD,#20H
MOVTH1,0FDH
MOVTL1,0FDH
SETBTR1
MOVSCON,#50H
MOVPCON,#00H
MOVA,P1
MOVSBUF,A
WAIT1:
JBCTI,RX
SJMPWAIT1
RX:
JBCRI,NEXT1
SJMPRX
NEXT1:
MOVA,SBUF
MOVP0,A
RET
END