历史上的今天
今天是:2025年01月07日(星期二)
2018年01月07日 | 51单片机6位计数器汇编程序
2018-01-07 来源:eefocus
1602液晶6位计数器
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
org 00h
a_bit equ 30h ;个位数存放处
b_bit equ 31h ;十位数存放处
c_bit equ 32h ;百位数存放处
d_bit equ 33h ;千位数存放处
e_bit equ 34h ;万位数存放处
f_bit equ 35h ;十万位数存放处
MOV a,#30h ;30H的ASCIC码为0
MOV a_bit,a
MOV b_bit,a
MOV c_bit,a
MOV d_bit,a
MOV e_bit,a
MOV f_bit,a
org 0030h
MOV P0,#00000001B ;清屏
ACALL ENABLE
MOV P0,#00111000B ;显示功能
ACALL ENABLE
MOV P0,#00001100B ;显示开关控制
ACALL ENABLE
MOV P0,#06H ;输入模式
ACALL ENABLE
MOV p0,#80H ;第一行的开始位置
cALL ENABLE
MOV P0,#00000001B ;清屏
ACALL ENABLE
MOV DPTR,#TABLE1 ;显示PASS WORD
CALL WRITE1 ;到TABLE1取码?
stlop: acall display ;显示
inc a_bit ;加1
MOV a,a_bit
cjne a,#3AH,stlop ;如果A的值到3AH那么继续否则重新
MOV a_bit,#30h ;显示数送30H(就是显示0)
inc b_bit
MOV a,b_bit
cjne a,#3AH,stlop
MOV b_bit,#30h
inc c_bit
MOV a,c_bit
cjne a,#3AH,stlop
MOV c_bit,#30h
inc d_bit
MOV a,d_bit
cjne a,#3AH,stlop
MOV d_bit,#30h
inc e_bit
MOV a,e_bit
cjne a,#3AH,stlop
MOV e_bit,#30h
inc f_bit
MOV a,f_bit
cjne a,#3AH,stlop
MOV f_bit,#30h
ajmp stlop
display: ;显示子程序
MOV P0,#0C9H
ACALL ENABLE
MOV A,A_BIT
ACALL WRILTE2
MOV P0,#0C8H ;显示的位置
ACALL ENABLE
MOV A,B_BIT ;显示10位数
ACALL WRILTE2 ;显示
MOV P0,#0C7H ;数据存贮器地址
ACALL ENABLE
MOV A,C_BIT
ACALL WRILTE2
MOV P0,#0C6H ;数据存贮器地址
ACALL ENABLE
MOV A,D_BIT
ACALL WRILTE2
MOV P0,#0C5H ;数据存贮器地址
ACALL ENABLE
MOV A,E_BIT
ACALL WRILTE2
MOV P0,#0C4H ;数据存贮器地址
ACALL ENABLE
MOV A,F_BIT
ACALL WRILTE2
;1MS延时(按12MHz算)
;====================================================
D1MS: MOV R7,#2
DJNZ R7,$
RET
WRILTE2:MOV p0,A ;显示
SETB RS
CLR RW
CLR E
CALL DELAY
CALL DELAY3
SETB E
RET
WRITE1: MOV R1,#00H ;显示table中的值
A1: MOV A,R1 ;到table取码
MOVC A,@A+DPTR
call WRILTE2 ;显示到LCD
INC R1
CJNE A,#00H,A1 ;是否到00h
RET
ENABLE: CLR RS ;送命令
CLR RW
CLR E
ACALL DELAY
SETB E
RET
DELAY: MOV P0,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P0.7,DELAY ;判断忙标志
RET
DELAY3: ; 延时程序
MOV R7,#255
D1:MOV R6,#25
D2: DJNZ R6,D2
DJNZ R7,D1
RET
table1: db" 1602 JI SHU QI ",00H
end
上一篇:at89s51看门狗演示程序
史海拾趣
|
由于系统内存的变化,需要在BSP中修改内存分配的内容,使用的CPU是MPC8270,内存控制器对应CS0—CS11这12个Bank,现在需要把其中的CS7对应的空间重16M改动到512M(硬件决定的)。接下来是我在BSP中的修改情况: (1)修 ...… 查看全部问答> |
|
我的wince下的fopen_s为何不能用?错误提示 C3861: \'fopen_s\': identifier not found。请大侠们指教… 查看全部问答> |
|
MSP430G2553实现LCD1602的字符显示,而且是半字节的,用的是P2口的高四位。 /*********************************************************************** LCD1602显示之高四位相连的方法** 描述:4线数据宽度,操作Lcd1602* 在LCD1602屏幕上第一行显示 Hello!LCD1602* 第二行显示 MSP430G2553* 硬件电路:MSP430g2553* 硬件 ...… 查看全部问答> |




