;******************************************************************************** ;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即可直接烧写)
|