我有51单片机的汇编程序,可以供你参考
//BIT 位定义命令
//EQU 赋值命令
BU BIT P3.1 //蜂鸣器
TR BIT P3.2 //传感器 外部中断1
INR1 BIT P3.4 //列1数据输入(需测试列级联)
CLK BIT P3.5 //数据存入 RCLK
LAT BIT P3.6 //时钟信号 SRCLK
E BIT P3.7 //屏显使能 (行138使能) 低电平开启
//F BIT P2.0 //A端口
YM EQU P2 //ABCD译码器 占低四位
// ABCD对应 P2.3 P2.2 P2.1 P2.0//
YMC EQU 30H //30H译码器初始值#00H
SJ EQU 31H //31H待发送数据
FCS EQU 32H //32H串行发送次数 默认值08H
//33译码器初始值
//34H列初始值
//35H字体数量
//36H
//37H
//38H
//39H
//3AH
//3BH
ORG 0000H
//程序初始化//
CSH: MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH //E高电平屏幕关闭
//行显//
HX:MOV DPTR ,#TAB//字库初始值
MOV 30H,#10H
JH:MOV 33H,#00H //译码器初始值#00H
ACALL LQ //调用列驱动
JH1: MOV YM,33H //行扫装入
CLR E //开启屏幕
ACALL DELAY
SETB E //关闭显示器
ACALL LQ
INC 33H
DJNZ YMC,JH1 //YM初始值#07H
AJMP CSH
//列驱动//
LQ: CLR CLK //数据存入上升沿有效
MOV 39H,#08H
HSM:MOV 34H,#00H //列驱动初始值
MOV 35H,#08H //列发送初始值
MOV A,34H
HSM1:MOVC A,@A+DPTR
MOV SJ ,A
LQD:CLR C // C寄存器清零
ACALL CS
CLR LAT
NOP
NOP
SETB LAT
NOP
NOP
CLR LAT
INC 34H
MOV A,34H
DJNZ 35H, HSM1
L6:INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
RET
//数据串行发送程序//
CS:MOV A ,SJ
MOV FCS,#08H
L5:RLC A //数据左移动
MOV INR1 ,C
SETB CLK //移位寄存器上升沿有效
NOP
NOP
CLR CLK
DJNZ FCS,L5 //每次发送8位数据
RET
//长延时程序//
DELAY:MOV R6,#01H
DL1:MOV R5,#01H
DL2:MOV R7,#01h
DL3 JNZ R7 ,DL3
DL4 JNZ R5 ,DL2
DJNZ R6 ,DL1
RET
//短延时程序//
DDELAY:MOV R5,#02H
DDL1:MOV R7,#02h
DDL2 JNZ R7,DDL2
DJNZ R5,DDL1
RET
TAB:
DB 0FFH,0BFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FEH,1FH,0FFH,0FFH,0FCH,1FH,0FFH,0FFH;
DB 0FCH,0DFH,0FFH,0FFH,0E0H,1FH,0FFH,0FFH;
DB 0F3H,0DFH,0FFH,0FFH,0E7H,9FH,0FFH,0FFH;
DB 0F7H,0DFH,0C0H,07H,0CFH,9FH,81H,81H;
DB 0EFH,0C0H,3FH,0F0H,00FH,0DFH,0B7H,0F7H;
DB 0EFH,0CFH,0FFH,0FFH,0FFH,0DFH,0F7H,0F7H;
DB 0EFH,0CFH,0FFH,0FFH,0FFH,0DFH,0F7H,0F7H;
DB 0EFH,0EFH,0FFH,0FFH,0FFH,0DFH,0F7H,0F7H;
DB 0EFH,0EFH,0FFH,0FFH,0FFH,9FH,0F7H,0E7H;
DB 0EFH,8FH, 0FFH,0FFH,0FFH,1FH,0F7H,0EFH;
DB 0EFH,0C0H,3FH,0FEH,0FCH,3FH,37H,0AFH;
DB 0EFH,9FH, 80H,00H,00H,0FFH,87H,8FH;
DB 0E0H,3FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;"未命名文件",0
END
DB 3FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH;
DB 3FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH, 1FH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH, 5FH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH, 5FH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH, 1FH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FEH, 3FH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FEH,0BFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FEH,0BFH,0FFH,0FFH,0FFH,0FFH;
DB 0FFH,0FFH,0FEH, 3FH,0FFH,0FFH,0FFH,0FFH;
DB 3FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH;
DB 3FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FCH;"未命名文件",0
END
32 |