急需:求单片机80S51实训(带汇编程序) 题目要求:8乘8点阵显示 需原理图和器材清单
一、实验目的与要求
1、熟悉8255的功能,了解点阵显示的原理及控制方法;
2、学会使用LED点阵,通过编程显示不同字符;
3、认真预习本节实验内容,可尝试自行编写程序,做好实验准备工作,填写实验报告。
二、实验设备
STAR系列实验仪一套、PC机一台。
三、实验内容
1、编写程序,用8255的PA口控制8X8点阵的行;8255的PC口控制8X8点阵的列;显示字符。
2、按图连接线路;运行程序,观察实验结果,学会控制LED点阵显示字符。
四、实验原理图
五、实验步骤
1、主机连线说明:
B4区:CS(8255)、A0、A1 —— A3区:CS1、A0、A1
B4区:JP56 A2区:JP23(列输出线)
B4区:JP52 A2区:JP24(行输出线)
(注意连线方向)
2、运行程序,观察实验结果。运行演示程序将会看到字符“WELCOME TO XINGYAN”在点阵上自下而上循环移动显示。
六、演示程序
;用8255的PA、PC口做LED8*8点阵显示实验
A8255_PA XDATA 0FF00H ;8255的A0、A1接总线的A0、A1
A8255_PB XDATA 0FF01H
A8255_PC XDATA 0FF02H
A8255_CTL XDATA 0FF03H
ROW XDATA A8255_PA ;列线
LINE XDATA A8255_PC ;行线
ORG 0000H
AJMP START
ORG 0100H
START: MOV SP,#60H
CALL INIT_IO
CALL TEST_LED ;调用测试子程序,测试LED是否全亮
CALL CLEAR
;滚动显示多个字符
CHS_SHOW: MOV R7,#12H ;显示13H个字符
MOV DPTR,#CHAR_TAB
CHS_1: MOV R1,#8 ;移动16次
CHS_2: ACALL DISP_CH ;显示一桢
INC DPTR
DJNZ R1,CHS_2
DJNZ R7,CHS_1
SJMP CHS_SHOW
;显示一个16*16点阵字子程序,字型码放在DPTR指出的地址,显示时间为20*R7MS
DISP_CH: PUSH 07H
MOV R7,#10H ;08H
DISP_CH_1: ACALL DISP1
DJNZ R7,DISP_CH_1
POP 07H
RET
;显示一个8*8点阵字子程序,字型码放在显示缓冲区XBUFF
DISP1: PUSH DPL
PUSH DPH
MOV R6,#8 ;计数器,8列依次被扫描
MOV R2,#7FH;FEH ;列输出值
REPEAT: MOV P2,#HIGH(LINE)
MOV R0,#LOW(LINE)
MOV A,R2
MOVX @R0,A ;列输出
CLR A
MOVC A,@A+DPTR
INC DPTR
ACALL ADJUST ;调整A,将A中二进制数旋转180度
MOV R0,#LOW(ROW)
MOVX @R0,A ;左边行输出
ACALL DL10ms
ACALL CLEAR
SETB C ;循环移位R2,行线扫描输出0
MOV A,R2
RRC A ;RLC A
MOV R2,A
DJNZ R6,REPEAT
POP DPH
POP DPL
RET
;8155和8255初始化
INIT_IO: MOV DPTR,#A8255_CTL ;8255控制字地址
MOV A,#80H ;设置8255的PA、PB、PC口为输出口
MOVX @DPTR,A ;写控制字
RET
CLEAR: MOV A,#0FFH
MOV P2,#HIGH(LINE)
MOV R0,#LOW(LINE)
MOVX @R0,A
CLR A
MOV R0,#LOW(ROW)
MOVX @R0,A
RET
;调整A中取到的字型码的一个字节,将最高位调整位最低位,最低位调整为最高位
ADJUST: MOV R5,#8 ;循环移位8次实现
ADJUST1: RLC A
XCH A,B
RRC A
XCH A,B
DJNZ R5,ADJUST1
MOV A,B
RET
;测试LED子程序,点亮LED并延时1S
TEST_LED: MOV DPTR,#LINE
CLR A
MOVX @DPTR,A
MOV DPTR,#ROW
MOV A,#0FFH
MOVX @DPTR,A
CALL DL500ms
CALL DL500ms
RET
;延时10ms
DL10ms: MOV R4,#2
DL10ms1: MOV R5,#230
DJNZ R5,$
DJNZ R4,DL10ms1
RET
DL500ms: MOV R5,#10
DL500ms1: MOV R6,#200
DL500ms2: MOV R7,#123
DJNZ R7,$
DJNZ R6,DL500ms2
DJNZ R5,DL500ms1
RET
CHAR_TAB: DB 000H,082H,092H,092H,0AAH,0AAH,044H,044H ;W
DB 000H,03EH,002H,002H,01EH,002H,002H,03EH ;E
DB 000H,002H,002H,002H,002H,002H,002H,03EH ;L
DB 000H,038H,044H,002H,002H,002H,044H,038H ;C
DB 000H,038H,044H,082H,082H,082H,044H,038H ;O
DB 000H,0C6H,0C6H,0AAH,0AAH,092H,092H,082H ;M
DB 000H,03EH,002H,002H,01EH,002H,002H,03EH ;E
DB 000H,000H,000H,000H,000H,000H,000H,000H ;
DB 000H,07FH,008H,008H,008H,008H,008H,008H ;T
DB 000H,038H,044H,082H,082H,082H,044H,038H ;O
DB 000H,000H,000H,000H,000H,000H,000H,000H ;
DB 000H,022H,022H,014H,008H,014H,022H,022H ;X
DB 000H,01CH,008H,008H,008H,008H,008H,01CH ;I
DB 000H,042H,046H,04AH,052H,062H,042H,042H ;N
DB 000H,038H,044H,002H,072H,042H,044H,038H ;G
DB 000H,022H,022H,014H,014H,008H,008H,008H ;Y
DB 000H,018H,018H,024H,024H,07EH,042H,042H ;A
DB 000H,042H,046H,04AH,052H,062H,042H,042H ;N
DB 000H,000H,000H,000H,000H,000H,000H,000H ;
END
七、实验扩展及思考
1、修改程序,使显示的字符从左至右动态循环显示。