51 汇编编程:8×8 点阵驱动 -
[导读]
;有个题目,要求把C语言的程序,改成汇编的,链接如下:;看他原来的程序,是驱动8*8LED点阵显示字符的。;;根据程序,做而论道画出了点阵驱动电路,运行C程序后显示如下所示:;;;LED所显示的全部字符都在
;有个题目,要求把C语言的程序,改成汇编的,链接如下:
本文引用地址: http://www.21ic.com/app/mcu/201806/764357.htm
;看他原来的程序,是驱动8*8LED点阵显示字符的。
;
;根据程序,做而论道画出了点阵驱动电路,运行C程序后显示如下所示:
;
;
;LED所显示的全部字符都在下面给出了,有些字符的图形,还是很有创造力的,呵呵
;全部代码如下:
;8*8LED点阵
ORG0000H
JMPSTART
;-----------------------
RED:
DB0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x18;//i
DB0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xFC,0xFC;//l
DB0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C;//o
DB0x00,0x00,0x44,0x44,0x44,0x44,0x28,0x10;//v
DB0x00,0x3E,0x02,0x02,0x3E,0x02,0x02,0x3E;//e
DB0x81,0xA5,0xDB,0xC3,0xA5,0x99,0x81,0xFF;//u
;-----------------------
START:
MOVDPTR,#RED
MOVR2,#254
LP0:MOVR3,#0
LP1:MOVR5,#100
LP2:MOVR4,#0
LP3:MOVA,R3
ADDA,R4
CALLDISP
INCR4
CJNER4,#8,LP3
DJNZR5,LP2
;-----------------
MOVA,R3
ADDA,#8
MOVR3,A
CJNER3,#48,LP1
SJMPLP0
;-----------------------
DISP:
MOVCA,@A+DPTR
MOVP2,A
MOVP0,R2
MOVA,R2
RLA
MOVR2,A
DJNZR7,$
DJNZR7,$
MOVP2,#0
RET
;-----------------------
END
;做而论道把汇编程序提交后,却出现下面的提示:
;
;>_
;
;这种事情,出现过多次,申诉后,也没有什么结果的。
;
;呵呵,百度知道的某些网管,判断能力、水平,真难以用语言描述。
;
;
;本题目给出的C程序如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeRED[]={
0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x18,//i
0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xFC,0xFC,//l
0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,//o
0x00,0x00,0x44,0x44,0x44,0x44,0x28,0x10,//v
0x00,0x3E,0x02,0x02,0x3E,0x02,0x02,0x3E,//e
0x81,0xA5,0xDB,0xC3,0xA5,0x99,0x81,0xFF//u
};
voiddelay(uintt)
{
for(;t>0;t--);
}
voidmain()
{
ucharr,j,q=0,t=0;
while(1){
for(r=0;r<40;r++){
for(j=q;j P0=(~(0x01< P2=RED[j];delay(200);P2=0; t++;t%=8; } } q+=8;q%=48; } } 大家可以试试,两种程序的功能,是否相同。
查看评论 回复
"51 汇编编程:8×8 点阵驱动 -"的相关文章
- 上一篇:51 单片机编程:双路计数器 -
- 下一篇:51 汇编编程:多路延时开关 -