51单片机用汇编语言实现8×8点阵LED上实现数字0到7的显示显示内容通过串口发送到单片机 发送字符0到7分别显示0到7其他字符显示杠
时间: 2024-02-21 12:58:05 浏览: 21
好的,以下是51单片机用汇编语言实现8×8点阵LED上实现数字0到7的显示,并通过串口发送显示内容的代码,同时发送字符“0”到“7”分别显示数字0到7,其他字符显示横杠:
```
ORG 0H
MOV P1, #0FFH ;设置P1口为输出状态
MOV SCON, #50H ;设置串口工作模式
MOV TMOD, #20H ;设置计时器0为方式2
MOV TH0, #0FEH ;设置计时器0初值
MOV TL0, #0CCH ;设置计时器0初值
SETB TR0 ;启动计时器0
MAIN: ;主程序开始
MOV A, SBUF ;读取串口数据到A寄存器
CJNE A, #30H, J1 ;如果读取的数据不是字符“0”,跳转到J1
MOV A, #0C0H ;设置数字0在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J1: CJNE A, #31H, J2 ;如果读取的数据不是字符“1”,跳转到J2
MOV A, #0F9H ;设置数字1在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J2: CJNE A, #32H, J3 ;如果读取的数据不是字符“2”,跳转到J3
MOV A, #0A4H ;设置数字2在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J3: CJNE A, #33H, J4 ;如果读取的数据不是字符“3”,跳转到J4
MOV A, #0B0H ;设置数字3在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J4: CJNE A, #34H, J5 ;如果读取的数据不是字符“4”,跳转到J5
MOV A, #099H ;设置数字4在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J5: CJNE A, #35H, J6 ;如果读取的数据不是字符“5”,跳转到J6
MOV A, #092H ;设置数字5在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J6: CJNE A, #36H, J7 ;如果读取的数据不是字符“6”,跳转到J7
MOV A, #082H ;设置数字6在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J7: CJNE A, #37H, J8 ;如果读取的数据不是字符“7”,跳转到J8
MOV A, #0C7H ;设置数字7在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
SJMP END ;跳转到程序结束处
J8: MOV A, #054H ;设置横杠在点阵中的显示码
MOV P1, A ;将显示码输出到P1口
END: ;程序结束
CLR RI ;清除串口接收标志
SJMP MAIN ;跳转回主程序开始处
END
```
以上代码实现了通过串口接收字符“0”到“7”,并在8×8点阵LED上显示对应数字的功能。如果接收到其他字符,则在点阵上显示横杠。为了简化代码,这里只列出了数字0到7的显示,如果需要显示其他数字或字符,可根据点阵的显示码进行相应的设置。