单片机控制数显“消屏”算是的探讨

发布者:AngelicWhisper最新更新时间:2012-03-07 来源: 单片机与嵌入式系统应用 关键字:单片机  数显  消屏 手机看文章 扫描二维码
随时随地手机看文章

在众多的数控、数显智能化器件中,很大一部分是没日没液、长年累月地工作着的(如电力部门的智能路灯钟控器、干式变压器中的智能温控仪等),这样对数字显示部件尤其刺能耗较大手工艺LED数码管的使用寿命就有很大影响。本文运用单片机的软件处理,实现类似于微电脑PC机的“静屏”功能——经一设定时间后自动 “消屏”,从而延长了数据管等的使用寿命。在“消屏”期间,数码管(包括指示灯中的几个或全部)虽然不亮了,但系统监察信号的输入和控制开关量的输出等依然照常进行——所有功能保护不变,只要按动一个任一个输入键,数码管及指示灯就会恢复显示(显示当前应有的即时信息)。

1 “消屏”的实现

一般来讲用单片机处理的显示器件大多数是以循环扫描的方式进行显示的,而监控的输入输出及其相应的指示,又往往与单片机的输入输出端口直接联系。因此,既要 “消屏”,又要保住输入输出端口随着监控的具体情况及时更新,以便一旦由“消屏”恢复显示时就能显示当前应有的即时信息。至少要有两点:①需有两个循环程序,一个是正常显示时用的主循环程序,另一个则是“消屏”时用的辅助循环程序——保证单片机能正常运行工作;②运用可进行“位”操作的内存字节单元,将输入输出端口的信息一一对应地记录下来。换个角度来讲,就是要想对某端口进行有关“位”的逻辑操作,首先要对跟其对应的内存单元进行相关“位”的逻辑操作,然后再赋值给对应的端口。这样确保了即时信息不会因为“消屏”或偶尔由某种强烈干扰导致程序“跑飞”引起“看门狗”复位,使所有端口都被置“1”而丢失。只有这样,设定的时间一到,MCU才能“无忧无虑”地跳出主循环而进入辅助循环程序运行,达到“消屏”的目的。一旦恢复显示,应有的即时信息也随之显示,而监控端口能一直处于输入输出的即时状态。

2 “消屏”运行的程序

实现“消屏”运行要牵涉的程序主要有:用以正常显示的主循环程序、用以“消屏”的辅助循环程序和用以定时设置的时钟程序。下面以干式变压器智能温控仪为例,给出如图1所示的电原理方框图以及实现“消屏”功能的三个主要部分的程序,其主流程如图 2所示。该温控仪是一个以MCS-51系列的单片机AT89C52 为核心,具有温度监察、控制、故障报警、有5位数码显示及与PC机通信等功能的智能化仪器。

3 运行程序

3.1 显示主循环程序

部分位及寄存器的定义

FUNCT EQU 95H ;P1.5为功能键输入端口

FANNER EQU 96H ;P1.6为风机键输入端口

EYRE EQU 97H ;P1.7为巡回键输入端口

SIGN EQU 2FH ;定时到点“消屏”标志位

DECIMAL EQU 6FH ;小数点标志位

SEC EQU 46H ;秒计数寄存器

MIN EQU 47H ;分计数寄存器

HR EQU 48H ;时计数寄存器

INIT_0: ORG 0000H ;程序初始化

AJMP INIT_0

ORG 000BH

AJMP T0ZD

ORG 001BH

AJMP T1ZD

ORG 0050H

DB0 C0H,0F9H,0A4H,0B0H ;字符的段码

DB 99H,92H,82H,0D8H

DB 80H,90H,0C6H,89H

DB 88H,80H,0FFH[page]

ORG 0070H

INIT_1:MOV 45H,#00H

MOV 46H,#00H

MOV 47H,#00H

MOV 48H,#00H

MOV TCON,#00H

MOV TMOD,#11H

MOV 0C8H, #04H

MOV 0CAN,#0B4H

MOV 0CBH,#3CH

MOV 0CCH,#0B4H

MOV 0CDH,#3CH

MOV SCON,#00H

MOV IE,#0BAH

CLR SIGN ;初始化清零“消屏”标志位

LOOP0:MOV R1,#51H ;显示字段的缓冲区由内存51H单元开始

MOV R2,#04H

MOV R3,#05H ;显示数码为5位

LOOP1:MOV DPH,#00H

MOV DPL,#50H

MOV A,@R1

MOVC A,@A+DPTR

JNB DECIMAL,LOOP2

ADD A,#02H ;小数点显示处理

LOOP2:MOV P0,A

MOV A,#03H

ADD A,R2

MOV P3,A

JNB FUNCT,KSM0 ;跳至键解释子程序

JNB FANNER,KSM0 ;跳至键解释子程序

JNB EYRE,KSM0 ;跳至键解释子程序

JNB 72H,LOOP3

ANL 2EH,#0BH

CLR 72H

LOOP3:JB SIGH,LOOP20;若标志位为“1”则跳之“消屏”循环

LOOP4:LCALL YSCX ;调用循环显示延时子程序

CLR DECIMAL

LOOP5:MOV A,R2

RL A

MOV R2,A

JB 55H ,LOOP7

LOOP6:CJNE A,#10H,LOOP7

SETB DECIMAL

LOOP7:INC R1

MOV P1,2AH ;内存2A记录值赋予P1口

MOV P2,2BH ;内存2BH记录值赋予P2口

DJNZ R3,LOOP1

LJMP LOOP0

[page]

主循环显示程序是一个扫描式显示的主循环。假若程序运行到倒数第十四条“JB SIGN,LOOP20”指令、且标志位“SIGN”(即“2FH”)已被置为逻辑“1”时,程序将跳出扫描显示主循环,而进入“消屏”循环运行。其中,内存寄存器2AH、2BH是可位寻址操作的——分别对应于端口P1、P2的内存字节单元,它们的数据由具体运算监控程序赋予。另外,扫描显示主循环程序中所牵涉到的诸如“跳至键解释子程序”中的“键解释子程序”、“调用循环显示延时子程序”中的“循环显示延时子程序”,以及下文中的温度信息采访监控程序等,由于篇幅的关系都没有具体阐述,因为,它们不影响关于“消屏”的讨论。

3.2 “消屏”辅助循环程序

LOOP20:INB SIGN,LOOP23

MOV P1,#0FBH

MOV P3,#03H

ORL 0D0H,#18H

MOV R5,#25H

LOOP21:MOV R6,#2AH

LOOP22:DJNZ R6,LOOP22

DJNZ R5,LOOP21

ANL 0D0H,#0E7H

MOV P0,#00H ;保证显示输出为“0” ——“消屏”

ANL P1,#0E7H ;而监控通信端口仍正常工作

MOV P3,#03H

JNB FUNCT,LOOP23

JNB FANNER,LOOP23

JNB EYRE,LOOP23

LJMP LOOP20

LOOP23:MOV P1,2AH ;记录内容赋值给相应端口

MOV P2,2BH

CLR SIGN

LJMP LOOP1

在“消屏”循环程序运行中,当其倒数第6、第7、第8条指令中任一条指令的条件转换成立,即有任一按键按下时,程序便退出“消屏”循环,回到主循环运行,进而由键解释子程序对该按键作出解释响应。“消屏”辅助循环程序中包含子延时程序。其实,整个“消屏”循环便是以延时程序做主体来运行“等待”的——等待时机(如有键按入或某种因素引起复位)跳出“消屏”运行程序,并“清零”标示位 “SIGN”,回到扫描显示主循环中去。“消屏”辅助循环程序只是为了“消屏” ——数码管及LED指示灯中的几个或全部不亮,而不影响系统的其它功能。

3.3 时钟程序

T0ZD: PUSH ACC ;时钟程序

MOV TL0,#0B4H

MOV TH0,#3CH

INC 45H

MOV A,45H

CJNE A,#0AH,FW0

INC 46H ;秒计数

INC 40H ;40H为2s间隔辅助内存单元

MOV 45H,#00H

MOV A,40H

CJNE A,#02H,T0ZD1

MOV 40H,#00H

LCALL VISIT ;调用采用温度信息子程序

T0ZD1:MOV A,46H

CJNE A,#3CH,FW0

INC 47H ;分计数

MOV 46H,#00H

MOV A,47H

CJNE A,#3CH,FW0

INC 48H ;时计数

MOV 47H,#00H

MOV A,48H

CJNE A,#02H,FW0

MOV 48H,#00H

SETB SIGN ;“消屏”标志位置“1”

FW0:POP ACC

RETI

时钟程序其实是片内定时/计数器0的中断服务程序。这段程序给出的是开机或最后一次按键后 2个小时“消屏”标志位“SIGN”置“1”,即系统将进入“消屏”运行状态,直到有键按下或某种因素引起复位时才“唤醒”回到扫描显示主循环。当然,可根据具体的需要将时间设置成几秒钟、几分钟、几十小时甚至几天后才把“消屏”标志位“SIGN”置为逻辑“1”,使系统进入“消屏”运行状态。中断服务程序的另一个重要功能就是定期汲取并处理信息。以上中断服务程序是每间隔2s采访一次温度信息和端口监控状况用以运算分析,以便及时对系统作出相应的控制。

结束语

单片机控制数显的“消屏”处理,类似于微电脑PC机的“静屏”功能。从某种意义上讲是延长了系统中部分元器件的使用寿命,而不影响单片机控制系统其它功能。这种猫头鹰头“睁一只眼,闭一只眼”的工作方式对那些“没日没夜、长年累月”运行着的仪器设备来说是不无裨益的。再者,由多个单片机组合的控制系统运用类似工作方式,在不影响系统监控功能的前提下,此“休眠”彼“工作”互为调协,互相应和,或许是一着延长元器件使用寿命的好举措。

关键字:单片机  数显  消屏 引用地址:单片机控制数显“消屏”算是的探讨

上一篇:μPD780208单片机的功能及应用 (
下一篇:SPCE061A实现的电话防盗报警器

推荐阅读最新更新时间:2024-03-16 12:54

51单片机实习-数码管动态显示4399(模块化编程)
#include reg52.h sbit wei0=P1^0; sbit wei1=P1^1; sbit wei2=P1^2; sbit wei3=P1^3; int zxm ={0x98,0x98,0xb0,0x99}; void delay(int i) { while(i--) { int j=0; for(;j 115;j++); } } void display() { int i; for( i=0;i 4;i++) { switch(i) { case 0: wei0=0,wei1=1,wei2=1,wei3=1;break; case
[单片机]
51<font color='red'>单片机</font>实习-数码管动态显示4399(模块化编程)
基于ATmega8 单片机的工频电压/频率仪设计
1.引言 在电力生产和电气测试工作中,经常需要测量工频电压和频率。目前市面上工频电压表和频率表种类繁多,本设计与其相比具有电路简单、体积小、功耗低、性价比高等特点。利用低价位具备AVR高档单片机性能的ATmega8单片机,设计工频电压和频率两用测量仪。ATmega8单片机除了有A/D转换和定时计数器功能外,其内部的模拟比较器在测量频率电路中省了测量过零电路;I/O端口20mA驱动能力直接驱动LED数码管,省了驱动电路。使整个硬件电路非常简单。 2.硬件设计 基于ATmega8单片机工频电压/频率仪设计硬件电路如图1所示。以单片机为核心,加上少量的外部元件构成。 图1中:T1是电源变压器和电压互感器两用器件(电压互感
[单片机]
基于ATmega8 <font color='red'>单片机</font>的工频电压/频率仪设计
三星S3C/S3P/S3F9XXX系列单片机实现查表操作的一个示例
三星S3C/S3P/S3F9XXX系列 单片机 实现查表操作的一个示例 ;实现查表操作须首先定义表地址,有两种定义方式 ;方式一常用于参数表定义: ORG 0040H CODE_TABLE: DB 01H DB 02H DB 03H ;方式二常用于系列子程序地址表定义: ORG 0050H DISPLAY_TABLE: VECTOR $,DISPLAY_TR ;DISPLAY_TR是一个子程序名称,以下同 VECTOR $,DISPLAY_SET ;注意这里每个地址均占用一个字(两个
[单片机]
STM8L051单片机,外部时钟初始化
STM8L051单片机,外部时钟初始化,程序如下 void SYSCLK_Init(void) { CLK_HSEConfig(CLK_HSE_ON);//打开外部时钟 CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);//配置分频系数 CLK_SYSCLKSourceSwitchCmd(ENABLE); //外部时钟使能 CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSE);//选择外部时钟 while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSE) //等待外部时钟初始化完成 { } } 大致步骤如
[单片机]
16位微控制器MAXQ613的关键特性
  MAXQ613是一款低功耗、16位MAXQ微控制器,设计用于通用遥控器、消费类电子和白色家电等低功耗产品。器件结合了强大的16位RISC微控制器和集成外设,包括一个通用同步/异步收发器(USART)和一个SPI主/从通信接口,以及能够产生载波频率的IR模块和灵活的复用键盘控制I/O。   器件包含48KB闪存和1.5KB数据SRAM。通过安全MMU提供知识产权(IP)保护,该安全MMU可支持多种授权等级配置,保护代码不被复制和进行逆向工程。授权等级使厂商可以提供器件运行的库文件和应用程序,并通过授权限制对数据和代码的访问。   为实现低功耗电池供电设计,器件包括一个超低功耗停止模式(0.2uA,典型值)。该模式下,只有少
[单片机]
单片机中定时器与计数器的区别
定时器实际上也是计数器,只是计数的是固定周期的脉冲 定时/计数器很容易理解的啊 定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间,有定时功能 定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。 单片机里的寄存器可以看成一个个电子开关,用来切换不同的功能、信号。 51里通过TMOD里的T/C 位切换计数信号的来源 当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率为1/12fosc,当晶振频率 6MHZ 时,计数频率为500KHz,每2us计数值加1;晶振 12MHZ 就是每1us加1 了。 当T/C工作在计数器是,计数脉冲来
[单片机]
8051单片机教程第二课:单片机的内部、外部结构(一)
一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极
[单片机]
8051<font color='red'>单片机</font>教程第二课:<font color='red'>单片机</font>的内部、外部结构(一)
基于AT89S51的多功能电子密码锁设计
     当前虽然许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。    电子 密码锁具有安全性能高、成本低、功耗低、操作简单等优点使其作为防盗卫士的角色越来越重要。现有国内市场上的电子密码锁有的是通过购买一些产品模块再开发,不具备自主知识产权;有的是自主研发的,但其功耗与成本都比较高,不具备广泛的应用价值。为了克服这些缺点,从经济实用角度出发,采用 单片机 AT89S5l与低功耗CMOS型E2PROM AT24C02 作为主控器件与数据 存储器 单
[安防电子]
基于AT89S51的多功能电子密码锁设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved