当前位置:文档之家› 单片机实验程序报告(北交大)

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

单片机实验程序实验二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 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60H ;压栈MOV DPTR, #4100HMOV A,#0FH ;方式控制字0FH送AMOVX @DPTR, A ;8155初始化MOV 70H,#01H ;设置显示缓冲区MOV 71H,#02HMOV 72H,#03HMOV 73H,#04HMOV 74H,#05HMOV 75H,#06HMOV 76H,#07HMOV 77H,#08HLOOP: ACALL DISPLAY ;循环调用显示子程序AJMP LOOPDISPLAY:MOV R0,#70H ;显示缓冲区首地址送R0MOV R3,#0FEH ;字位控制初值送R3LD0: MOV DPTR,#4102HMOV A,#0FFHMOVX @DPTR, A ;B口字位送高,关共阴显示MOV A,@R0MOV DPTR,#DISTABMOVC A,@A+DPTR ;查表MOV DPTR,#4101H ;PA口作字形MOVX @DPTR,AMOV DPTR,#4102H ;PB口作字位MOV A,R3MOVX @DPTR,AACALL DELAY ;延时1msINC R0 ;修正显示缓冲区指针JNB ACC.7,LD1 ;若显示完一遍,则LD1RL A ;字位码左移一位此处A中的值是R3MOV R3,A ;送回R3AJMP LD0 ;显示下一个数码LD1: RET ;此处把每一个八位显示看成一次函数。

DISTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;(共阴极字形表) DELAY: MOV R7,#02H ;1ms延时DELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验中遇到的问题:开始时没有预先在显示缓冲区中存入1~7,故实验显示的数据不是1、2、3、4、5、6、7、8,而是显示缓冲区中之前存在的无规则的一些数据,待向显示缓冲区重新赋值后,显示正常。

扩展要求编程如下:ORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#50HMOV 30H,#0A1HMOV 31H,#0C2HMOV 32H,#0D3HMOV 33H,#0F4HLCALL TRANMOV DPTR,#4100HMOV A,#0FHMOVX @DPTR,ALOOP: LCALL DISPLAYSJMP LOOPTRAN: MOV R1,#30H ;将30-31H里的十六进制数分成两位存在70-71H中MOV R0,#70HMOV R3,#04LD2: MOV A,@R1ANL A,#0FH ;取出低字节MOV @R0,AINC R0MOV A,@R1ANL A,#0F0H ;取出高字节SWAP A ;高低字节交换,将十六进制数的两位分开存放MOV @R0,AINC R0INC R1DJNZ R3,LD2RETDISPLAY:MOV R1,#0FEH ;显示部分同基本要求MOV R0,#70HMOV A,R1LD0: MOV DPTR,#4102HMOVX @DPTR,AMOV A, @R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,ALCALL DELAYINC R0MOV A,R1JNB ACC.7,LD1RLAMOV R1,ASJMP LD0LD1: RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H, 71HDELAY: MOV R7,#02HDELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY2RETEND实验三查询式键盘实验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秒,无按键按下时,恢复默认的时间间隔。

根据程序要求得到如下程序流程图:基本要求编程如下:ORG 0000H MAIN: MOV 70H,#0MOV 71H,#1MOV 72H,#2MOV 73H,#3MOV 74H,#4MOV DPTR,#4100HMOV A,#03HMOVX @DPTR,A READKEY:MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,RP10JNB ACC.1,RP11JNB ACC.2,RP12JNB ACC.3,RP13 OFF: MOV R0,#70HMOV R3,#0FFHSJMP LD0RP10: MOV R0,#70HMOV R3,#0FEHAJMP LD0RP11: MOV R0,#71HMOV R3,#0FEHAJMP LD0RP12: MOV R0,#72HMOV R3,#0FEHAJMP LD0RP13: MOV R0,#73HMOV R3,#0FEHAJMP LD0LD0: MOV A,R3MOV DPTR,#4102HMOVX @DPTR,AMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AACALL DELAYAJMP MAINTAB: DB 06H, 5BH, 4FH, 66HDB 6DH, 7DH, 07H, 7FH DELAY: MOV R7,#02H DELAY1:MOV R6,#0FFH DELAY2: DJNZ R6,DELAY2DJNZ R7,DELAY1RETSJMP$END扩展要求编程如下:ORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#60HMOV 30H,#0AHMOV 31H,#0BHMOV 32H,#0CHMOV 33H,#0DHMOV A,#0FHMOV DPTR,#4100HMOVX @DPTR,AREADKEY:MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,RP10JNB ACC.1,RP11JNB ACC.2,RP12JNB ACC.3,RP13 OFF: MOV R7,#50AJMP DISPLAY RP10: MOV R7,#100AJMP DISPLAY RP11: MOV R7,#200AJMP DISPLAYRP12: MOV R7,#300AJMP DISPLAYRP13: MOV R7,#400AJMP DISPLAYDISPLAY: MOV R0,#30HMOV R2,#0FEHLD: MOV A,@R0MOV DPTR,#TABMOV A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AMOV DPTR,#4102HMOV A,R2MOVX @DPTR,AACALL DELAYINC R0JNB ACC.3,LD1RL AMOV R2,AAJMP LDLD1: AJMP READKEYDELAY : MOV R6,#500DELAY1: DJNZ R6,DELAY1DJNZ R7,DELAYRETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79H, 71H实验四利用中断控制LED灯1.实验目的(1)掌握单片机中断的基本原理。

(2)掌握单片机中断程序的编制方法。

2.预习要点(1)单片机中断基本原理(2)中断程序编制方法3.实验设备计算机、单片机实验箱、信号发生器。

4.实验内容基本要求:将信号发生器输出的脉冲信号连接到CPU的INT0上,将CPU的P1.0到P1.7和8个红色LED灯连接,脉冲信号为5V、100Hz,每输入一百个脉冲LED灯亮一次,并且LED灯顺序循环移位一次,形成跑马灯。

扩展要求:在LED数码管上与跑马灯同步显示1~8,顺序为P1.0对应的灯亮时对应显示数字1,依次类推。

根据程序要求得到如下程序流程图:主程序流程图中断子程序流程图基本要求编程如下:ORG 0000HLJMP MAINORG 0003HLJMP L1MAIN:SETB IT0SETB EX0SETB EAMOV R0,#00HMOV P1,#0FEHL2:SJMP L2L1:INC R0CJNE R0,#64H,L3MOV R0,#00HMOV A,P1RL AMOV P1,AL3:RETI扩展实验程序:ORG 0000HAJMP MAINORG 0003HAJMP EXINT0ORG 0060HMAIN: MOV SP,#60HSETB IT0SETB EX0SETB EAMOV 30H,#0MOV 31H,#1MOV 32H,#3MOV 33H,#2MOV 34H,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8 ;缓存器中送入1--8MOV R3,#00H ;用于计脉冲MOV P1,#00H ;关LED显示MOV R4,#01H ;控制跑马灯MOV R0,#30HMOV R5,#0FEHMOV R2,#8MOV DPTR,#4100HMOV A,#03HMOVX @DPTR,A ;方式控制字送8155命令口SJMP $EXINT0:INC R3CJNE R3,#64H,NEXT ;计算脉冲达到100MOV R3,#00H ;清零,重新计数MOV A,R4MOV P1,A ;跑马灯显示RL AMOV R4,ADISPLAY1:MOV R0,#30HMOV R5,#0FEHMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#4101HMOVX @DPTR,AMOV DPTR,#4102HMOV A ,R5MOVX @DPTR,AACALL DELAY ;INC R0DJNZ R2,NEXTMOV R2,#8MOV R0,#30HNEXT: RETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDELAY:MOV R7,#05HDELAY1:MOV R6,#0FFHDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND实验五单相方波波形发生器1.实验目的(1)掌握单片机定时器基本原理和使用方法。

相关主题