嵌入式类电子电路图
8051单片机典型接口电路——串行扩展静态显示电路如下图所示:
例1:按上图编制显示子程序,显示字段码已分别存在32H~30H内RAM中。
程序1:
DIR2: MOV SCON,#00H ;置串口方式0
CLR ES ;串口禁中
SETB P1.0 ;“与”门开,允许TXD发移位脉冲
MOV SBUF,30H ;串行输出个位显示字段码
JNB TI,$ ;等待串行发送完毕
CLR TI ;清串行中断标志
MOV SBUF,31H ;串行输出十位显示字段码
JNB TI,$ ;等待串行发送完毕
CLR TI ;清串行中断标志
MOV SBUF,32H ;串行输出百位显示字段码
JNB TI,$ ;等待串行发送完毕
CLR TI ;清串行中断标志
CLR P1.0 ;“与”门关,禁止TXD发移位脉冲
RET ;
例2:根据上图编写通过串行口和74LS164驱动共阳LED数码管查表显示的子程序。条件:系统有6个LED数码管,待显数据(00H—09H)已放在35H—30H单元中(分别对应十万位→个位)
程序2:
DSPLY:MOV DPTR, #TABLE ;共阳LED数码管译码表首址
MOV R0,#30H ;待显数据缓冲区的个位地址
REDO:MOV A, @R0 ;通过R0实现寄存器间接寻址
MOVC A, @A+DPTR ;查表
MOV SBUF, A ;经串行口发送到74LS164
JNB TI, $ ;查询送完一个字节的第8位?
CLR TI ;为下一字节发送作准备
INC R0 ;R0指向下一个数据缓冲单元
CJNE R0,#36H,REDO ;判断是否发完6个数?
RET ;发完6个数就返回
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳LED译码表
DB 92H, 82H, 0F8H, 80H,90H
全部0条评论
快来发表一下你的评论吧 !