首页 51单片机和HD7279A的接口与编程

51单片机和HD7279A的接口与编程

举报
开通vip

51单片机和HD7279A的接口与编程 单片机制作 0 |0 l l 0 _ -- 51单片机和 HD7279A的接口与编程 HD7279A芯片与 MAX7219芯片的功能类似 ,能 驱动 8位共阴式数码管(或 64只独立 LED)的智能显 示驱动芯片,不同的是该芯片同时还可连接多达 64键 的键盘矩阵。单片可完成 LED显示、键盘接口的全部功 能。该芯片具有片选信号 ,可方便地实现多于 8位 LED 显示或多于 64个键的键盘接 口。 HD7279A具有如下特点: ①串行接口,无需外围元件可直接驱动 LED; ②各位独立...

51单片机和HD7279A的接口与编程
单片机制作 0 |0 l l 0 _ -- 51单片机和 HD7279A的接口与编程 HD7279A芯片与 MAX7219芯片的功能类似 ,能 驱动 8位共阴式数码管(或 64只独立 LED)的智能显 示驱动芯片,不同的是该芯片同时还可连接多达 64键 的键盘矩阵。单片可完成 LED显示、键盘接口的全部功 能。该芯片具有片选信号 ,可方便地实现多于 8位 LED 显示或多于 64个键的键盘接 口。 HD7279A具有如下特点: ①串行接口,无需外围元件可直接驱动 LED; ②各位独立控制译码/不译码及消隐和闪烁属性; ③(循环)左移 /(循环)右移指令; ④具有段寻址指令,方便控制 LED; ⑤64键键盘控制器,内含去抖动电路。 一 、 HD7279A的结构和功能 1.引脚说明 HD7279A的引脚排列如图 1所示,各引脚功能叙 述如下: 1 28 2 27 3 26 4 25 5 24 6 HD7279A 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 图 1 HD7279A引脚排列 ①②脚:VDD,正电源输入端; ③⑤脚:NC,无连接,必须悬空; ④脚:VSS,接地端; 海南三亚亚龙湾 92351部队 ◎张松松 左绍义 ⑥脚:cs,片选输入端,此引脚为低电平时,可向芯 片发送指令及读取键盘数据; ⑦脚 :CLK,同步时钟输入端 ,向芯片发送数据及读 取键盘数据时,此引脚电平上升沿表示数据有效; ⑧脚:DATA,串行数据输入 /输出端 ,当芯片接收 指令时,此引脚为输入端;当读取键盘数据时,此引脚 在“读”指令最后一个时钟的下降沿变为输出端; ⑨脚:KEY,按键有效输出端,平时为高电平 ,当检 测到有效按键时,此引脚变为低电平 ; ⑩~⑩脚:SG~SA,段g一段a驱动输出; ⑥脚:DP,小数点驱动输出; ⑩ ③脚:DIGO DIG7,数字 0~数字 7驱动输 出 ; ③脚:CLKO,振荡输出端; ⑤脚:RC,RC振荡器连接端; ③脚:RESET,复位端。 2.串行接口通信 HD7279A采用串行方式与微处理器通讯,串行数 据从 DATA引脚送人芯片,并由CLK端同步。当片选信 号变为低电平后,DATA引脚上的数据在 CLK引脚的 上升沿被写入 HD7279A的缓冲寄存器。 HD7279A的控制指令分为两大类——纯指令和带 有数据的指令,按指令结构可分为三种类型: (1)不带数据的纯指令 指令的宽度为 8个 BIT,即微处理器需发送 8个 CLK脉冲。该类数据串行传送时序如图2所示 ,该类数 据主要有以下几种: ··- 11 ·! 3 11 n 图 2 不带数据的纯指令串行传送时序图 2008年第4期 电子制作 ·31 维普资讯 http://www.cqvip.com 制作天地 f ①复位(清除)指令A4H。当HD7279A收到该指令 后,将所有的显示消除,所有设置的字符消隐、闪烁等 属性也被一起清除。执行该指令后 ,芯片所处的状态与 上电后所处的状态一样。 ②测试指令 BFH。该指令使所有的 LED全部点 亮,并处于闪烁状态,主要用于测试。 ③左移指令A1H。使所有的显示自右向左移动一 位(包括处于消隐状态的显示位),但对各位所设置的消 隐及闪烁属性不变。移动后,最右边一位为空。 ④右移指令 A0H。与左移指令类似,但所做移动为 自左向右移动,移动后,最左边一位为空。 ⑤循环左移指令 A3H。与左移指令类似 ,不同之处 在于移动后原左边一位的内容(第8位)显示于最右位 (第 1位)。 ⑥循环右移指令A2H。与循环左移指令类似,但移 动方向相反。 (2)带有数据的指令 宽度为 l6个 BIT,即微处理器需发送 l6个 CLK 脉冲。该类数据串行传送时序如图3所示,该类数据主 要有以下几种: ] 厂 一 T4:... c K』 ⋯⋯⋯ f.1几 几 几⋯⋯.,J_L一 。 - 一 - - - -· ::::)0 · :::Ⅺ --- 、_——————、,_—————一 \I——————.、,————一 8位指令(高位在前) 8位数据(高位在前) 图 3 带有数据的指令串行传送时序图 ①下载数据且方式 0译码。该类命令由两个字节 组成,前半部分为指令,其中a2,al,a0为位地址,范围 为 000~111,分别对应显示位 1~8。dO~d3为数据,收 到此指令时,HD7279A按下列规则进行译码,如表 1所 示。 表 1 方式 0译码规则 D7lD6lD5lD4lD31D2lD1 D71D6ID5l D4ID3l D2ID1I Do 0 1 0 l 0 1 0 l a2l a1 1 a01IDPI X l X l X 1 d3l d2l d1 小数点的显示由 DP位控制,DP=1时,小数点显 示,DP:0时,小数点不显示,X位无影响。 ②下载数据且方式 1译码。此指令与上一条指令 基本相同,所不同的是译码方式,该指令译码方式如表 2所示。 ③下载数据但不译码。在该指令a2,al,ao为位地 32·电子一作 2008年簟4期 表 2 方式 1译码规则 d3一dO(十六进制1 d3 d2 dl dO 7段显示 o0H 0 0 0 0 0 01H 0 0 0 1 1 O2H 0 0 1 0 2 03H 0 0 l 1 3 04H 0 1 0 0 4 05H 0 1 0 1 5 O6H 0 1 1 0 6 07H 0 1 1 l 7 08H 1 0 0 0 8 O9H 1 0 0 1 9 0AH 1 0 1 0 0BH 1 0 1 1 E OCH 1 1 0 0 H 0DH 1 1 0 1 一 L 0EH 1 1 1 0 P 0FH 1 1 1 1 空(无显示) D7fD6ID5fD4fD3fD2fD1 D7f D6fD5f D4fD3fD2lD1IDo 0 J 0 J 1 j 0 l a2 J al j a0IJDPj A J B J C I D I E J F G 址 ,范围为 000~111,分别对应显示位 1~8。A~G和 DP为显示数据,分别对应 7段 LED数码管的各段。当 数据位为 1时,该段点亮,否则不亮。 ④闪烁控制88H。此命令控制各个数码管的闪烁 属性 ,后 8位分别对应数码管 1-8,0为闪烁,1为不闪 烁。开机后,缺省的状态为各位均不闪烁。 ⑤消隐控制98H。此命令控制各个数码管的消隐 属性。后 8位分别对应数码管 1~8,0为消隐,1为显示。 当某一位被赋予了消隐属性后,HD7279A在扫描时将 跳过该位,因此在这种情况下无论对该位写入何值,均 不会被显示,但写入值将被保留,将各位重新设为显示 状态后,最后一次写入的数据将被显示出来。 ⑥段点亮指令 E0H。该指令主要用来点亮数码管 中某一指令段,或LED矩阵中某一指令的LED。 ⑦段关闭指令 COH。该指令主要用来关闭数码管 中某一指令段,或LED矩阵中某一指令的LED。 (3)读取键盘数据指令 15H 该指令从HD7279A读出当前的按键代码,宽度为 l6个 BIT,前 8个为微处理器发送到 HD7279A的指 令,后 8个 BIT为 HD7279A返回的键盘代码,其范围 为 0~3FH f无键按下时为 rrn)。执行此指令时, HD7279A的DATA端在第 9个 CLK脉冲的上升沿变 维普资讯 http://www.cqvip.com 为输出状态,并与第 16个脉冲的下降沿恢复为输入状 态,等待接收下一个指令。该类数据串行传送时序如图 4所示 。 j1⋯ ..n n 门 r-1 r_]⋯厂L ⋯ (== ) \-——————— ,.————J \———————v ———— 读键盘指令(8位,高位在前)HD7279A输出的键盘代码 (8{,t-,高位在前) 图4 读取键盘数据指令串行传送时序图 =、HD7279A应用外围电路及编程实例 本例程中利用单片机 89C52对 HD7279A进行控 制 ,完成了 7位数码的显示 、6只发光二极管的驱动和 12个按键动作 的编码 ,HD7279A芯片引脚 CS、CLK、 DATE、KEY 分别与单片机引脚 po_o、po_l、po_2、P3—3 相连,通过 DIG0—7引脚和 SA、SB、SC、SD、SE、SF、SG、 SDP引脚直接驱动数码管和 LED发光二极管 ,通过 100kQ 排 电阻 和 200Q 电阻 连 接 按 键 , 图 5是 HD7279A的外 围电路 图 ,下 面给出 了 89C52控制 HD7279A的 C语言程序 ,此程序已经通过实验板调试 成功。 #define uint unsigned int #define uchar unsigned char #define CMD _ RESET【ha4 //7279复位指令 #define CMD _ TEST 0xbf //7279灯测试指令 单片机制作 。l'll - '_ #define CMD _ READ 0x1 5 //7279渎键盘指令 #deftne DECODE1 Oxe8 //7279 16进制数译码 #define UNDECODE 0x90 //7279不译码可以用做模式指示灯的控制 bit intl— flag=O; //中断标志位 sbit cs =POLO; //设单片机 PO~o为7279片选信号 sbit elk= P0^ 1: ,/设单片机 P0_I为7279的串行时钟信号 sbit dat=P0^2; ∥设单片机 P0 2为7279的数据信号 sbit key = P3 3: #7279的按键有效输出端连接到单片机的 INT1中断 //弓I脚,即 P3—3弓I脚 void delay(uint t) ,/延时子函数,延时时间可通过形参 t设置 { uint i: fnr(.:O;kt;i++); } void s _ delay(void) //89 S秒延时子函数(晶体为 11MHz时) uchar t: t=O;t:O;t=O;t:0;t=O;t=0;t:O;t:O;t=0;t=O;t=O;t=O;t=O;t:0;t=O; t:O;t=O;t:O;t=O;t:0;t:O;t=O; t=O;t:O;t:O;t=O;t=0;t=O;t=0;t:O;l:O;t:O;t=O;t=O;t=O;t:O;t:O; t:0;t=O;t=O;【=0;【:O;I:0;t:O; void send ~ byte(uchar out byte) ,/向 7279发送 8位纯指令的子函数 { ^ l LE00 I 厂* l曲 有 圈 L f囝 J J q 却 。1 G D1 G D。 v犯 U / ,rI,. ! 3 l 。 。’ ∞ 6 。 。 丁 I B D2 00 l 2 27 lH I'- / rI,. 4 c ∞U LED0 上 3 , ●、,t 5 D4U U-∞ 曙 B / I c 7 £ 舾kJ ∞ T^ 8 I H 9 , 一 。 口 要 10 。 器 / ; 嚣 / / I{ 12 13 图5 HD7279A的外围电路图 —上 上 ~ T T L... 2008年第 4期 电子制作 ·33 鞫 霉 维普资讯 http://www.cqvip.com uchar i; cs=O; delay(Ox04); for(i=O;i<8;i++) f if(out byte&Ox80) fdat=l;} else fdat--O;} s_ delay0; clk = 1: s _ delay0; clk = 0: s _ delay0; out_ byte<<=1; } dat= 0: delay(Ox04); CS= 1: } void write7279 uehar out _ cmd, uchar out byte) ,/向 7279发送 16位带数据 f ,/指令的子函数,out_emd uchar i; ,/为指令,out_byte为数据 CS=0 : delay(Ox04); for(i--O;i<8;i++) f if(out_emd&Ox801 fdat=l;} else fdat--O;} s _ delay0; clk = 1: s _ delay0; clk = 0: s _ delay0; ouLemd<<=1; } s _ delay0; for(i=O;i<8;i++) 34·毫子●I作 2∞8年第4期 ff(out_byte&Ox80) fdat=l;} else fdat=0;} s _ dehy0; clk = 1: s _ dehy0; clk = 0: s _ delay0; out_byte<<=1; } dat= 0: dehy(0x04); CS= 1: delay(Ox04); } uchar read7279 uehar out _ cmd) ,/读取 7279按键代码的子函数 fuchar i,in byte--O; cs=0; dehy(0x04); for(i=O;i<8;i++) f if(out_emd&Ox801 fdat=l;} else fdat=0;} s _ delay0; clk = 1: s — delay0; clk = 0: out _ emd<<=1; } s _ delay0; for(i=O;i<8;i++) f elk=l; s _ dehy0; if(dat) fin_byt~in_bytelOxO1;} elk--O; s _ delayO; in _ byte<<=1;} dat=0; s _ delay0; CS=1: delay(Ox04); return(in_byte); ,/返回键盘代码 } void service _ intl 0 interrupt 2 using 2 //7279按键有效中断服务子函数 f intl』 ag=1; ,/当 7279按键有效时设 标志位 intl _ tlag } main0 f PX1 = 1: ,/设定外部中断 1为高优先级 IT1 = 1: EA = 1: EX1 = 1: CS = 1: dehy(0xl00); send — byte (CMD_RESET); //7279复位指令发送 while(1) f delay(1O000); write7279(DECODEI+2,Ox08); 译码方式 1,第 3位显示⋯8,显示控 制方法参照本文显示控制指令内容的 介绍,本条语句只是一个示例 , i珩ntl-flag) 如果标志位 intl_tlag为 1即 7279按 键有效则 , f ,/调用读取 7279按键代码的子函数 Y=read7279(CMD_READ); intl _ tlag=0; //清除 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 位 } } } 圜 维普资讯 http://www.cqvip.com
本文档为【51单片机和HD7279A的接口与编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_318147
暂无简介~
格式:pdf
大小:162KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2011-05-13
浏览量:107