返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛



;********************************************************************************
;1602液晶6位计数器:本程序调试通过 *
;********************************************************************************
;* 日期: 2007-3-25 *
;* 版本: 3.0 *
;* 作者: 深圳学林电子有限公司 专业8051单片机教程站 *
;* 邮箱: sxj1974@163.com *
;* 网站: http://www.51c51.com http://www.8951.com 更多例程请登陆网站 *
;********************************************************************************
;* 硬件:此程序在本公司xlisp系列单片机实验仪运行通过 *
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
;********************************************************************************



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 ;十万位数存放处
mova,#30h ;30H的ASCIC码为0
mova_bit,a
movb_bit,a
movc_bit,a
movd_bit,a
move_bit,a
movf_bit,a
org0030h
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
mova,a_bit
cjnea,#3AH,stlop;如果A的值到3AH那么继续否则重新
mova_bit,#30h ;显示数送30H(就是显示0)
inc b_bit
mova,b_bit
cjnea,#3AH,stlop
movb_bit,#30h
inc c_bit
mova,c_bit
cjnea,#3AH,stlop
movc_bit,#30h
inc d_bit
mova,d_bit
cjnea,#3AH,stlop
movd_bit,#30h
inc e_bit
mova,e_bit
cjnea,#3AH,stlop
move_bit,#30h
inc f_bit
mova,f_bit
cjnea,#3AH,stlop
movf_bit,#30h
ajmpstlop
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

hex格式文件下载(点右键,目标另存为hex即可直接烧写)