利用键盘显示接口芯片8279显示电子钟
字体放大 字体缩小 字体恢复 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

.实验要求

利用8279键盘显示接口电路,做成一个电子钟。该钟使用T1作50ms的定时中断。

利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,其有显示稳定、程序简单、不会出现误动作等特点。本实验利用8279实现显示扫描自动化。

8279操作命令字较多,根据需要来灵活使用,通过本实验可初步熟悉使用方法。

电子钟做成如下格式:
XX XX XX 由左向右分别为: 时、分、秒。

.实验目的

1.掌握在8031系统中扩展8279键盘显示接口的方法。

2.掌握8279工作原理和编程方法。

3.进一步掌握中断处理程序的编程方法。

.实验电路及连线

参看实验十。

.实验说明

8279通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。

.实验程序框图

Z8279   EQU     08701H  ;8279 状态/命令口地址
D8279   EQU     08700H  ;8279 数据口地址
LEDMOD  EQU     00H     ;左边输入 八位字符显示
                        ;外部译码键扫描方式,双键互锁
LEDFEQ  EQU     2FH     ;扫描速率
LEDCLS  EQU     0C1H    ;清除显示 RAM
LEDWR0  EQU     80H     ;设定的将要写入的显示RAM地址

        ORG     0000H
        AJMP    START
        ORG     001BH   ;INT T1 入口地址
        AJMP    INT_T1
        ORG     0040H
START:
        MOV     SP,#60H
        LCALL   INIT8279        ;初始化8279
        MOV     R3,#0H          ;时
        MOV     R2,#0H          ;分
        MOV     R1,#0H          ;秒
        MOV     R6,#0H          ;标志
        MOV     TMOD,#10H
        MOV     TL1,#00H       ;50 mS 的时间常数
        MOV     TH1,#04CH
        MOV     R0,#20
        SETB    TR1
        SETB    ET1
        SETB    EA              ;允许中断
WAIT:   CJNE    R6,#0FFH,WAIT
        LCALL   DISPLAY
        MOV     R6,#0
        SJMP    WAIT


INIT8279:                       ;8279初始化子程序
        PUSH   DPH              ;保存现场
        PUSH   DPL
        PUSH   ACC
        LCALL  DELAY            ;延时
        MOV    DPTR ,#Z8279
        MOV    A,#LEDMOD        ;置8279工作方式
        MOVX   @DPTR,A
        MOV    A,#LEDFEQ        ;置键盘扫描速率
        MOVX   @DPTR,A
        MOV    A,#LEDCLS        ;清除 LED 显示
        MOVX   @DPTR,A
        LCALL  DELAY            ;延时
        POP    ACC              ;恢复现场
        POP    DPL
        POP    DPH
        RET
;显示字符子程序
;输入: R4,位置 R5,值
DISLED:  PUSH   DPH             ;保存现场
         PUSH   DPL
         PUSH   ACC
         MOV    A,#LEDWR0       ;置显示起始地址
         ADD    A,R4            ;加位置偏移量
         MOV    DPTR,#Z8279
         MOVX   @DPTR,A         ;设定显示位置
         MOV    DPTR,#LEDSEG    ;置显示常数表起始位置
         MOV    A,R5
         MOVC   A,@A+DPTR       ;查表
         MOV    DPTR,#D8279
         MOVX   @DPTR,A         ;显示数据
         POP    ACC             ;恢复现场
         POP    DPL
         POP    DPH
         RET
DELAY:                          ;延时子程序
        PUSH    0               ;保存现场
        PUSH    1
        MOV     0,#0H
DELAY1: MOV     1,#0H
        DJNZ    1,$
        DJNZ    0,DELAY1
        POP     1               ;恢复现场
        POP     0
        RET

INT_T1:                         ;INT_T1中断服务子程序
        PUSH    DPH             ;保护现场
        PUSH    DPL
        PUSH    ACC
        PUSH    PSW
        CLR     TR1
        MOV     TL1,#00H        ;50mS 定时常数
        MOV     TH1,#4CH
        SETB    TR1
        DJNZ    R0,EXIT         ;判断毫秒=0
        MOV     R0,#20          ;DELAY 1 SECOND
        MOV     R6,#0FFH        ;置秒标志
        CJNE    R1,#59H,SECOND  ;判断秒=59
        MOV     R1,#99H
        CJNE    R2,#59H,MINUTE  ;判断分=59
        MOV     R2,#99H
        CJNE    R3,#23H,HOUR    ;判断时=23
        MOV     R3,#99H
HOUR:
        MOV     A,R3
        ADD     A,#1            ;时加1
        DA      A
        MOV     R3,A
MINUTE:
        MOV     A,R2
        ADD     A,#1            ;分加1
        DA      A
        MOV     R2,A
SECOND:
        MOV     A,R1
        ADD     A,#1            ;秒加1
        DA      A
        MOV     R1,A
EXIT:
        POP     PSW             ;恢复现场
        POP     ACC
        POP     DPL
        POP     DPH
        RETI                    ;中断返回
DISPLAY:
        MOV     A,R3
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#6
        LCALL   DISLED          ;显示小时低位
        MOV     A,R3
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#7
        LCALL   DISLED          ;显示小时高位
        MOV     A,R2
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#3
        LCALL   DISLED          ;显示分钟低位
        MOV     A,R2
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#4
        LCALL   DISLED          ;显示分钟高位
        MOV     A,R1
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#0
        LCALL   DISLED          ;显示秒低位
        MOV     A,R1
        SWAP    A
        ANL     A,#0FH
        MOV     R5,A
        MOV     R4,#1
        LCALL   DISLED          ;显示秒高位
        RET

LEDSEG: DB     3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
        DB     7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
        DB     6DH,02H,08H,00H,59H,0FH,76H     ;'U,-,_, ,I,O,P, '
        END

日期:2005年06月14日   来源: 
相关文章:
·用超低功耗MSP430单片机设计数据采集系统 2005-06-27
·Atmega16在开关磁阻电机调速系统中的应用 2005-06-28
·火灾探测器受干扰的原因及改进方法 2005-07-02
·特殊构件的焊接技术 2005-10-18
·触摸屏的工作原理及典型应用 2005-11-25
·高质量C++/C编程指南---类的构造函数,析构函数,赋值 2005-12-13
·基于ATmega8的新型电动自行车调速控制系统设计 2005-12-20
·电子产品高温老化的原理以及一间智能温控老化室的应用 2006-01-05
·新近成功开发无霍尔传感器无刷电机控制器 2006-01-20
·归纳一下最近比较流行的电动自行车技术 2006-01-23
·电子工作台 --- workbench 电子仿真软件 2006-05-23
·液晶字模工具 ------ HZDotReader V3 2006-05-23
·51系列单片机仿真软件----伟福e6000w  2006-05-23
·无传感器无刷电机驱动控制器系统的优点 2006-06-10
·PIC单片机C语言编译器 --PICC 8.05 完整破解版 2006-07-09