单片机实验程序报告(北交大)

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

单片机实验程序

实验二8155并行I/O口扩展和动态扫描程序编制

1.实验目的

(1)掌握8155并行I/O芯片扩展和使用方法

(2)掌握数码管动态扫描汇编语言的编制方法

2.预习要点

(1)8155芯片基础知识

(2)51单片机的总线时序、地址译码的原理

(3)数码管动态扫描显示方法

3.实验设备

计算机、单片机实验箱。

4.实验内容

基本要求:

通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字1~8。

扩展要求:

假定30H~33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上

根据程序要求做如下程序流程图:

主程序流程图:

显示子程序流程框图:

基本要求编程如下:

ORG 0000H

AJMP MAIN

ORG 0050H

MAIN: MOV SP,#60H ;压栈

MOV DPTR, #4100H

MOV A,#0FH ;方式控制字0FH送A

MOVX @DPTR, A ;8155初始化

MOV 70H,#01H ;设置显示缓冲区

MOV 71H,#02H

MOV 72H,#03H

MOV 73H,#04H

MOV 74H,#05H

MOV 75H,#06H

MOV 76H,#07H

MOV 77H,#08H

LOOP: ACALL DISPLAY ;循环调用显示子程序

AJMP LOOP

DISPLAY:

MOV R0,#70H ;显示缓冲区首地址送R0

MOV R3,#0FEH ;字位控制初值送R3

LD0: MOV DPTR,#4102H

MOV A,#0FFH

MOVX @DPTR, A ;B口字位送高,关共阴显示

MOV A,@R0

MOV DPTR,#DISTAB

MOVC A,@A+DPTR ;查表

MOV DPTR,#4101H ;PA口作字形

MOVX @DPTR,A

MOV DPTR,#4102H ;PB口作字位

MOV A,R3

MOVX @DPTR,A

ACALL DELAY ;延时1ms

INC R0 ;修正显示缓冲区指针

JNB ACC.7,LD1 ;若显示完一遍,则LD1

RL A ;字位码左移一位此处A中的值是R3

MOV R3,A ;送回R3

AJMP LD0 ;显示下一个数码

LD1: RET ;此处把每一个八位显示看成一次函数。

DISTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;(共阴极字形表) DELAY: MOV R7,#02H ;1ms延时

DELAY1:MOV R6,#0FFH

DELAY2:DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

实验中遇到的问题:

开始时没有预先在显示缓冲区中存入1~7,故实验显示的数据不是1、2、3、4、5、6、7、8,而是显示缓冲区中之前存在的无规则的一些数据,待向显示缓冲区重新赋值后,显示正常。

扩展要求编程如下:

ORG 0000H

LJMP MAIN

ORG 1000H

MAIN: MOV SP,#50H

MOV 30H,#0A1H

MOV 31H,#0C2H

MOV 32H,#0D3H

MOV 33H,#0F4H

LCALL TRAN

MOV DPTR,#4100H

MOV A,#0FH

MOVX @DPTR,A

LOOP: LCALL DISPLAY

SJMP LOOP

TRAN: MOV R1,#30H ;将30-31H里的十六进制数分成两位存在70-71H中MOV R0,#70H

MOV R3,#04

LD2: MOV A,@R1

ANL A,#0FH ;取出低字节

MOV @R0,A

INC R0

MOV A,@R1

ANL A,#0F0H ;取出高字节

SWAP A ;高低字节交换,将十六进制数的两位分开存放

MOV @R0,A

INC R0

INC R1

DJNZ R3,LD2

RET

DISPLAY:MOV R1,#0FEH ;显示部分同基本要求

MOV R0,#70H

MOV A,R1

LD0: MOV DPTR,#4102H

MOVX @DPTR,A

MOV A, @R0

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#4101H

MOVX @DPTR,A

LCALL DELAY

INC R0

MOV A,R1

JNB ACC.7,LD1

RLA

MOV R1,A

SJMP LD0

LD1: RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB 77H,7CH,39H,5EH,79H, 71H

DELAY: MOV R7,#02H

DELAY1:MOV R6,#0FFH

DELAY2:DJNZ R6,DELAY2

DJNZ R7,DELAY2

RET

END

实验三查询式键盘实验

1.实验目的

(1)掌握查询式按键检测方法

(2)掌握数码管动态扫描汇编语言的编制方法

2.预习要点

(1)按键检测的基本原理

(2)数码管动态扫描显示方法

3.实验设备

计算机、单片机实验箱。

4.实验内容

基本要求:

接实验二的实验内容,通过实验板的4个按键电路,将按键的检测线连接到CPU 的p1.0~p1.3上。当按下按键1到4时,在实验板显示电路(U16)分别对应显示1,2,3,4。

扩展要求:

30H~33H中放置字母A~D,字母在LED上循环显示,默认的循环周期为50ms,当按下按键1到4时,A~D循环间隔分别变为1至4秒,无按键按下时,恢复默认的时间间隔。

根据程序要求得到如下程序流程图:

相关文档
最新文档