⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8279.txt

📁 8279初始化以程序
💻 TXT
字号:
(1)8279的初始化程序
8279初始化主要是设置其键盘/显示方式、分频系数等。初始化子程序如下:
汇编程序:
INIT:MOV DPTR,#7FFFH               ;命令/状态口地址
      MOV A,#0D1H                   ;清除显示命令
      MOVX @DPTR,A                  ;命令送入
WAIT:MOVX A,@DPTR                  ;读状态
      JB ACC.7,WAIT                 ;等待清除显示RAM
      MOV A,#2AH                    ;分频系统为10,特征码001
      MOVX @DPTR,A                  ;分频系统送入
      MOV A,#00H                    ;键盘/显示方式,特征码000
      MOVX @DPTR,A                  ;键盘/显示方式送入
RET

C程序:
cs8279 = 0xd1;//8279清除
delay(2);
cs8279 = 0x00;//左边输入 八位字符显示,外部译码键扫描方式,双键互锁
delay(2);
cs8279 = 0x2A;//10分频,(ALE = 1/6 OSC)
delay(2);
cs8279 = 0x60;//读8279RAM不自动加1
delay(2);
cs8279 = 0x90;//写显示RAM自动加1
(2)显示子程序
8279在初始化后,只需把显示数据(显示字型段选码)送入内部显示缓冲区(其16个),就能自动完成扫描输出,无需CPU干扰,提高了CPU的处理能力。
若要显示CPU内部RAM地址30H至37H单元中的8个数据,显示子程序如下:
DISP:MOV DPTR,#7FFFH           ;命令/状态口地址
      MOV A,#90H                ;写显示RAM命令,地址自动加1
      MOVX @DPTR,A              ;命令送入
      MOV R0,#30H               ;显示数据首地址
      MOV R7,#8                 ;显示数据个数
      MOV DPTR,#7FFEH           ;数据口地址
      MOV A,@R0                 ;取显示数据(数据为段选码)
LP:MOVX @DPTR,A                ;写入显示RAM
    INC R0                       ;下一个显示数据地址
    DJNZ R7,LP                  ;8位数据未送完,继续
RET

C程序:
void display()//数码管显示
{
uchar i,dispvalue;
for(i=0;i<8;i++)//将显示缓冲区数据送数码管显示
dt8279 = table[cash[i]];//缓冲区内容送数码管显示
}
(3)键盘处理程序
8279所连接键盘是自动扫描并把扫描键值存入FIFO RAM中,当FIFO RAM中不为空时,INT输出高电平通知CPU把数据取走,故键盘处理程序一般放在中断服务程序中,中断服务程序如下:
KEYCH:MOV DPTR,#7FFFH             ;命令/状态口地址
       MOV A,#40H                  ;读FIFO RAM命令,特征码010
       MOVX @DPTR,A                ;命令送入
       MOV DPTR,#7FFEH             ;数据口地址
       MOVX A,@DPTR                ;键值读入A
       CJNE A,#00H,K0             ;判断键值是否0号键,是,转处理
       CJNE A,#01H,K1             ;判断键值是否1号键,是,转处理
       Μ                           ;其他键判断程序(略)
       CJNE A,#0FH,K16            ;判断键值是否16号键,是,转处理
       JMP EXIT
K0: Μ                             ;0号键处理程序(略)
     JMP EXIT
K1: Μ                             ;1号键处理程序(略)
     JMP EXIT

K16:Μ
     JMP EXIT                       ;16号键处理程序(略)
EXIT:RETI                          ;中断返回



C程序:
void readkey() interrupt 0//按键中断响应
{ unsigned char key,read;
EX0 = 0;//关中断
cs8279 = 0x50; //8279读FIFO自动加一
delay(5);
read = dt8279;
key = read & 0x3f;//取键值
EX0=1;//开中断
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -