投诉热线:13148701893
联系人:邓小姐
传真:0755-27315661
0760-85884496
座机:0755-29769890-0
0760-85884486
办公地址:深圳市宝安区福永塘尾富华工业区11栋3楼
工厂地址:广东省中山市三乡镇万里路1号平铺工业区B栋三楼
[LCD液晶屏]段码LCD液晶屏参考程序介绍
来源: 发布时间:2021-05-20 点击量:3410
段码LCD液晶屏参考程序介绍?是不是有很多人不明白是什么意思?然后也不知从而下手,有时还会盲目去接触,然后导致没必要的麻烦出现,不过任何问题都不用担心,接下来就由我给各位介绍一下段码LCD液晶屏参考程序介绍,让您能够更加了解关于这方面的内容,相信您看完之后会有收获的!
段码液晶参考程序
程序清单
文件名:CAT888.asm
项目: IC卡水表LCD显示模块演示程序(1.1版)
描述: 启动程序即进入正常显示状态(循环显示一系列数字0~F),并通过KEY按键进入全显示状态
(测功耗)、掉电状态(测功耗)及关断LCM电源(GND端),依此循环。
最后更新日期:2017/12/04
;特殊功能寄存器SFR和位地址定义
AUXR1 DATA 0A2H ;辅助功能寄存器,不可位寻址
DIVM DATA 95H ;MCU时钟除数控制寄存器
P0M1 DATA 84H ;0口工作模式选择寄存器1
P0M2 DATA 85H ;0口工作模式选择寄存器1
P1M1 DATA 91H
P1M2 DATA 92H
PT0AD DATA 0F6H ;0口数字输入功能禁止寄存器
LED1 BIT P0.0 ;状态灯定义
LED2 BIT P1.7 ;正常显示状态时LED1点亮,全显示状态时
LED3 BIT P1.6 ;LED2点亮,掉电状态时LED3点亮,关断LCM电
LED4 BIT P1.4 ;源状态时LED4点亮。
LCMC BIT P0.7 ;LCM的GND控制输出端,实现LCM的电源控制
KEY BIT P1.1 ;KEY的IO定义
keyin BIT 10H ;定义有键盘输出标志位
定义显示数据计数变量
DCONT DATA 50H ;用于显示位的计数
状态标志位定义
FLAGS1 DATA 2EH ;状态标志寄存器1
EMI BIT FLAGS1.0;电磁干扰标志
PASS BIT FLAGS1.2;水阀打开/关闭标志位
OUT BIT FLAGS1.3;IC卡退出标志位(退卡后M3才显示)
SALEWATR BIT FLAGS1.4;剩余金额不足标志位(显示'请购水')
POWERDOWN BIT FLAGS1.5;电池电压不足标志位
CUR BIT FLAGS1.6;本次购水金额/剩余金额标志位
XPLAN BIT FLAGS1.7;超计划标志位
程序开始
ORG 0000H
AJMP RESET
ORG 0080H
RESET
安全设置
MOV DIVM,#1 ;CPU工作频率降至正常时的1/4
MOV SP,#59H ;设堆栈指针
MOV TMOD,#01H ;使能定时器0
显示数据初化
MOV DCONT,#0
MOV FLAGS1,#00H
MAIN:
LCD工作方式设定
CLR LCMC ;打开LCM电源
MOV P1M1,#00H ;将P1.7,P1.6,P1.4置为上拉输出
MOV P1M2,#0D0H
MOV P0M1,#00H ;将P0.7置为上拉输出
MOV P0M2,#01H
ACALL INTI1621
MOV LCDCOMMAND,#Tone4k ;设置音频输出频率为4KHZ
ACALL Send1621Com
进入正常显示状态
正常显示情况下,不发送数据时,把SPI口均置为高
SETB LED1 ;点亮LED1
CLR LED2
CLR LED3
CLR LED4
ACALL RUNOK
进入全显示状态
LCD各段均显示,然后SPI口设为高阻态
CLR LED1
SETB LED2
ACALL RUNALL
进入掉电状态
掉电状态是把HT1621设置为掉电方式,以降低功耗
CLR LED2
SETB LED3
ACALL RUNDOWN
进入关断电源状态
关断HT1621电源,以降低功耗
CLR LED3
SETB LED4
ACALL RUNNOP
SJMP MAIN
;RUNOK
从0到f循环显示LCD数位(数字右移)
显示1秒后,所有数字均加1(即缓冲区加11H)
RUNOK: ;打开各标志符号
SETB EMI ;电磁干扰标志,显示
SETB PASS ;水阀打开/关闭标志位,显示开
SETB OUT ;IC卡退出标志位(退卡后M3才显示),显示退卡
SETB SALEWATR ;显示'请购水'
SETB POWERDOWN ;电池电压不足标志位,显示
SETB CUR ;本次购水金额/剩余金额标志位,显示本次金额
SETB XPLAN ;超计划标志位,显示
CLR keyin ;清除keyin标志位
ACALL LOADDAT ;装载数据
CLR C
MOV A,#9
SUBB A,DCONT ;判断DCONT是否大于9,大于9则打开蜂鸣器
JNC RUNOK_L1
MOV LCDCOMMAND,#ToneOn
ACALL Send1621Com
RUNOK_L1:
ACALL BrushLcd
ACALL DELAY_1S
MOV LCDCOMMAND,#ToneOff ;关闭蜂鸣器
ACALL Send1621Com
ACALL DELAY_1S ;延时并接收按键
ACALL DELAY_1S
ACALL DELAY_1S
INC DCONT ;计数器加1
CLR C
MOV A,#0FH ;若DCONT的值大于0FH,则复位为0
SUBB A,DCONT
JNC RUNOK_L2
MOV DCONT,#0
ACALL INTI1621 ;重新设置1621
MOV LCDCOMMAND,#Tone4k ;设置音频输出频率为4KHZ
ACALL Send1621Com
RUNOK_L2:
JNB keyin,RUNOK ;判断是否有按键,有则退出正常显示方式
RET
数据装载程序
将计数数据进行字模转换后放入显示缓冲区,包括状态字段。
LOADDAT:
MOV R0,#DISBUFFER ;指定显示地址为SEG0开始
MOV R1,DCONT
MOV R7,#10 ;写入12个数据
LOAD_L1: ;将数据填充显示缓冲区
MOV A,R1
MOV DPTR,#LCDData
MOVC A,@A+DPTR ;字模转换
MOV @R0,A
INC R0 ;缓冲区的下一个地址
DJNZ R7,LOAD_L1
JNB EMI,HOLD0 ;EMI=1时,
ORL DISBUFFER,#10H ;显示电磁干扰信号
HOLD0:
JNB PASS,HOLD1
ORL DISBUFFER+1,#10H ;PASS=1时,显示'开'
SJMP HOLD2
HOLD1:
ORL DISBUFFER+2,#10H ;否则显示'关'
HOLD2:
JNB OUT,HOLD3 ;OUT=1时
ORL DISBUFFER+3,#10H ;显示'退卡'
SJMP HOLD4
HOLD3:
ORL DISBUFFER+6,#10H ;否则显示'M3'
HOLD4:
JNB SALEWATR,HOLD5
ORL DISBUFFER+4,#10H ;显示'请购水'
HOLD5:
JNB XPLAN,HOLD6
ORL DISBUFFER+5,#10H ;'超计划'
HOLD6:
JNB POWERDOWN,HOLD7
ORL DISBUFFER+8,#10H ;电池缺电符号
HOLD7:
ORL DISBUFFER+9,#10H ;单位'元'
JNB CUR,HOLD8
MOV DISBUFFER+10,#05H ;'本次金额'
RET
HOLD8:
MOV DISBUFFER+10,#03H ;'剩余金额'
RET
;RUNALL
;全显示输出,把SPI接口置为高阻态,以便测量LCM功耗
RUNALL:
MOV R7,#12
MOV R0,#DISBUFFER
RUNALL_L1:
MOV @R0,#0FFH ;装入数据0FFH
INC R0
DJNZ R7,RUNALL_L1
ACALL BrushLcd ;刷新LCD显示
ORL P0M1,#2AH ;设置IO口为高阻态
ANL P0M2,#0D5H
MOV PT0AD,#2AH
RUNALL_L2: ;等待按键
JB KEY,$
MOV R7,#0FFH
DJNZ R7,$
JB KEY,RUNALL_L2
JNB KEY,$
ANL P0M1,#0D5H ;恢复IO口
MOV PT0AD,#00H
RET
RUNDOWN
掉电方式,把SPI接口置为高阻态,以便测量LCM功耗
RUNDOWN:
ACALL HT1621DOWN ;进入掉电状态
ORL P0M1,#2AH ;IO口置为高阻态
ANL P0M2,#0D5H
MOV PT0AD,#2AH
RUNDOWN_L1:
JB KEY,$ ;等待按键
MOV R7,#0FFH ;去抖动
DJNZ R7,$
JB KEY,RUNDOWN_L1
JNB KEY,$ ;等待按键放放开
RET
RUNNOP
关断LCD电源,把SPI接口置为高阻态。
RUNNOP:
SETB LCMC ;关断LCM电源
RUNNOP_L1: ;等待按键操作
JB KEY,$
MOV R7,#0FFH
DJNZ R7,$
JB KEY,RUNNOP_L1
JNB KEY,$
ANL P0M1,#0D5H ;恢复IO口设置
MOV PT0AD,#00H
CLR LCMC ;打开LCM电源
RET
延时1S子程序
在延时过程序可以判断有无按键,有按键时置位keyin位,无按
键时不对keyin操作。
DELAY_1S:
SETB TR0 ;启动定时器
MOV R0,#2
BACK:
MOV TL0,#0B0H ;置初值
MOV TH0,#3CH
DL:
JB KEY,DL_1
MOV R7,#0FFH ;有按键,进行去抖动处理
DJNZ R7,$
JB KEY,DL_1
SETB keyin ;是按键,置位keyin
DL_1:
JNB TF0,DL
CLR TF0
DJNZ R0,BACK ;等待定时时间到
JNB KEY,$ ;等待按键放开
RET
包含1621操作软件包
$INCLUDE(LCD1621.INC) ;包含头文件,头文件内已定义SPI,显示缓冲区,及各操作变量,ZY886A型LCD数字显示表等
以上为各位介绍了段码LCD液晶屏参考程序介绍,如果您感兴趣和想要了解这方面的话,可以咨询我们官网,专业人员会立即与您沟通,为您解答!
相关产品
热点资讯
- 广州lcd液晶模组生产厂家2021-08-23
- 佛山lcd液晶显示屏加工2021-08-23
- 上海12864中文字库液晶价格2021-08-22
- 湖南LCM中文字库液晶批发2021-08-22
- 湖北LCD液晶屏加工价格2021-08-21
- 惠州LCD液晶屏加工生产厂家2021-08-21
- 深圳lcd液晶显示屏加工2021-08-20
- 杭州lcd液晶模组价格2021-08-20