首页 164芯片程序设计指引

164芯片程序设计指引

举报
开通vip

164芯片程序设计指引164驱动程序及说明 一、 概述 利用164芯片分时驱动,实现以较少的IO口扫描检测按键和实现LED、数码管的显示。 二、 164芯片说明 164芯片工作时序图 74164芯片为8位移位寄存器,串行输入,并行输出,含两个串行数据输入口(与非门输入)和一个串行时钟输入口。常用型号为74HC164,兼容TTL电平,最高工作时钟频率20MHz,扇出系数10。 164芯片管脚分布图 三、 参考电路 四、 程序框图 五、 程序说明 1. 外部名称和全局变量申明 NAME    BTNDISP PUBLIC    ...

164芯片程序设计指引
164驱动程序及说明 一、 概述 利用164芯片分时驱动,实现以较少的IO口扫描检测按键和实现LED、数码管的显示。 二、 164芯片说明 164芯片工作时序图 74164芯片为8位移位寄存器,串行输入,并行输出,含两个串行数据输入口(与非门输入)和一个串行时钟输入口。常用 型号 pcr仪的中文说明书矿用离心泵型号大全阀门型号表示含义汽车蓄电池车型适配表汉川数控铣床 为74HC164,兼容TTL电平,最高工作时钟频率20MHz,扇出系数10。 164芯片管脚分布图 三、 参考电路 四、 程序框图 五、 程序说明 1. 外部名称和全局变量申明 NAME    BTNDISP PUBLIC        _BtnDisp        ; 子程序名 PUBLIC        _n_Button, _n_LEDDisp, _n_NumDisp 2. IO端口定义 PIO_164Clk            EQU        P0.0    ; 164时钟口,输出 PIO_164Data            EQU        P0.1    ; 164数据口,输出 PIO_BtnCom1        EQU        P2.2    ; 第1组按键公用端,输入 PIO_BtnCom2        EQU        P6.3    ; 第2组按键公用端,输入 PIO_LEDCom1        EQU        P5.2    ; 第1组LED公用端,输出 PIO_LEDCom2        EQU        P2.0    ; 第2组LED公用端,输出 PIO_NumCom1        EQU        P5.1    ; 第1位数码管公用端,输出 PIO_NumCom2        EQU        P5.0    ; 第2位数码管公用端,输出 3. 常量定义 无 4. 变量定义 DSEG    SADDR                ; 申明数据区 _n_Button:            DS        (16)        ; 按钮输入数据,含按键压下、抬起、响应标志。 _n_LEDDisp:        DS        (2)        ; LED显示灯分2组,每组最多8个 _n_NumDisp:        DS        (2)        ; 2-8段码数码管显示数据 n_ScanChn:            DS        (1)        ; 按键扫描通道号:0~7,每次子程序扫描2组*1个按键,8次全部扫描完。 n_DispChn:            DS        (1)        ; 显示扫描通道号:0~3,每通道(1个数码管或1组LED)显示时间占1/4,刷新周期取决于子程序执行频率 5. 使用说明 作为常规子程序调用,如果直接嵌入主程序文件,无需外部名称和全局变量申明,程序中检测的按键数16,显示驱动8段数码管2个,及最多LED数16个。程序必须循环执行,每1~3mS执行一次比较合适,一个按键抬起或压下的确认时间(24mS~32mS)--(72ms~96mS),响应速度可以满足人的操作习惯感受,显示刷新频率250Hz--83Hz,一般低于40~50Hz就会有闪烁。 六、 源程序及注释 CSEG _BtnDisp: PUSH    ax PUSH    bc PUSH    hl ; 关闭显示 set1    PIO_LEDCom1 set1    PIO_LEDCom2 set1    PIO_NumCom1 set1    PIO_NumCom2 ; 按键检测 MOV        a, #7 BTNDISP00: clr1    PIO_164Clk cmp        a, n_ScanChn bz        $BTNDISP01 set1    PIO_164Data br        $BTNDISP02 BTNDISP01: clr1    PIO_164Data NOP NOP NOP BTNDISP02: set1    PIO_164Clk dec        a cmp        a, #0ffH bnz        $BTNDISP00 MOV        a, n_ScanChn MOV        x, a xor        a, a addw    ax, #_n_Button movw    hl, ax clr1    cy bt        PIO_BtnCom1, $BTNDISP03 set1    cy        ; 键按下 BTNDISP03: call    !BTNDEAL movw    ax, hl addw    ax, #0008H movw    hl, ax clr1    cy bt        PIO_BtnCom2, $BTNDISP04 set1    cy BTNDISP04: call    !BTNDEAL INC        n_ScanChn and        n_ScanChn, #07H ; 显示驱动 ; 显示占空比1/4 MOV        c, #8 cmp        n_DispChn, #0 bnz        $BTNDISP110 MOV        a, _n_LEDDisp br        $BTNDISP13 BTNDISP110: cmp        n_DispChn, #1 bnz        $BTNDISP11 MOV        a, _n_LEDDisp+1 br        $BTNDISP13 BTNDISP11: cmp        n_DispChn, #2 bnz        $BTNDISP12 MOV        a, _n_NumDisp br        $BTNDISP13 BTNDISP12: MOV        a, _n_NumDisp+1 BTNDISP13: clr1    PIO_164Clk rolc    a, 1 bc        $BTNDISP14 set1    PIO_164Data br        $BTNDISP15 BTNDISP14: clr1    PIO_164Data NOP NOP NOP BTNDISP15: set1    PIO_164Clk NOP NOP dbnz    c, $BTNDISP13 NOP set1    PIO_164Data cmp        n_DispChn, #0 bnz        $BTNDISP160 clr1    PIO_LEDCom1 br        $BTNDISP18 BTNDISP160: cmp        n_DispChn, #1 bnz        $BTNDISP16 clr1    PIO_LEDCom2 br        $BTNDISP18 BTNDISP16: cmp        n_DispChn, #2 bnz        $BTNDISP17 clr1    PIO_NumCom1 br        $BTNDISP18 BTNDISP17: clr1    PIO_NumCom2 BTNDISP18: INC        n_DispChn and        n_DispChn, #3 BTNDISPXT: POP        hl POP        bc POP        ax RET ;    RETI ; 按键持续按下(连续3次),确认为按下,清除抬起计数和标志。 ; 按键持续抬起(连续3次),确认为抬起,清除按下计数和标志,及响应标志。 ; 如果按键从按下到抬起期间未得到响应,则丢失,不记忆。 BTNDEAL: MOV        a, [hl] bnc        $BTNDEAL03    ; 按键按下 MOV        x, a and        a, #00001100B cmp        a, #00001100B bnz        $BTNDEAL01 MOV        a, x and        a, #11001100B set1    a.6 br        $BTNDEAL02 BTNDEAL01: MOV        a, x ADD        a, #00000100B bt        a.5, $BTNDEAL02 and        a, #11001100B BTNDEAL02: MOV        [hl], a RET ; 按键抬起 BTNDEAL03: MOV        x, a and        a, #00000011B cmp        a, #00000011B bnz        $BTNDEAL04 MOV        a, x and        a, #00100011B set1    a.5 br        $BTNDEAL02 BTNDEAL04: MOV        a, x INC        a bt        a.6, $BTNDEAL02 and        a, #00100011B br        $BTNDEAL02 END
本文档为【164芯片程序设计指引】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:0
分类:互联网
上传时间:2019-01-17
浏览量:25