急需:求单片机80S51实训(带汇编程序) 题目要求:8乘8点阵显示 需原理图和器材清单

需要显示yyh爱心符号LT
要是我很满意会在多给分的,谢谢啦

一、实验目的与要求

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、修改程序,使显示的字符从左至右动态循环显示。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-16

如果只有8*8的话只需要一个单片机,单片机复位基本电路,晶振基本电路,供电电源,一个点阵屏   原理图大概就是那样,画的不好,时间仓促,单片机和点阵加个座,用完可以回收。如果用其他芯片驱动的话,可以用595和138,这样利用51的引脚减少了,但是成本增加了,如果不是必要,可以不用买。

追问

我们是实训,要求器件清单,需要用到的东西是要列出来的,器件名有吗?

追答

电路图上都标着了 10uF电解电容1 30pF电容2个 12M晶振1个 4.7K阻排1个 按键1个 51单片机1个 8*8点阵屏1块

本回答被提问者采纳
第2个回答  2011-06-16
用单片机的普通IO口实现就可以了,如果驱动能力够的话直连应该可以的
相似回答