欢迎来到天天文库
浏览记录
ID:30773835
大小:142.75 KB
页数:8页
时间:2019-01-03
《7279阵列式键盘实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、创新实验申请表尊敬的陈林老师:您好!我是机电2班的学生,我申请做单片机模拟创新实验,望老师批准。实验题目:7279阵列式键盘实验一、实验目的1、掌握八段数码管硬件线路原理,掌握用HD7279A芯片实现显示的编程方法2、熟悉键盘的丁作原理,掌握用HD7279A芯片实现键盘扫描程序设计方法二、实验说明HD7279A是一片具有串行接口的,可同时驷动8位共阴极数码管(或64只独立LED)的智能显示驳动芯片,该芯片同时还可连接多达64键的键盘矩阵,HD7279A内部含有译码器,可直接接受16进制码,HD7279A还同时具
2、有2种译码方式,HD7279A还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A的指令结构侑三种类型:1)不带数据的纯指令,指令的宽度为8个BIT,即微处理器需发送8个CLK脉冲;2)带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲;3)读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279的指令,后8个BIT为HD7279A返回的键盘代码。本实验采用8位共阴极数码管,用查询方式判断。引脚说明:引脚名称说明1,2VDD正电源3,5NC无连接,必须悬空4V
3、SS接地6CS片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7CLK同步吋钟输入端,向芯片发送数据及读取键盘数据吋,此引脚电平上升沿表示数据有效8DATA串行数据输入/输出端,当芯片接收指令时,此引脚为输入端:当读取键盘数据时,此引脚在'读'指令最后一个时钟的下降沿变为输出端9KEY按键有效输出端,平时为高电平,当检测到冇效按键时,此引脚变为低电平10-16SG-SA段g——段a驱动输出17DP小数点驱动输出18-25DTG0-DTG7数字0——数字7驱动输出26CLKO振荡输出端27RSRC振荡
4、器连接端28RESET复位端控制指令:HD7279A的控制指令分为二大类一一纯指令和带有数据的指令。纯指令1.复位(清除)指令A4HD7D6D5D4D3D2D1DO10100100当HD7279A收到该指令后,将所冇的显示清除,所冇设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态•系统上电后所处的状态一样。2.测试指令BFHD7D6D5D4D3D2D1DO10111111该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试。3.左移指令A1HD7D6D5D4D31)2DIDO10100
5、001使所有的显示自右向左(从第1位向第8位)移动一位(包括处于消隐状态的显示位),但对各位所设置的消隐及闪烁属性不变。移位后,最右边一位为空(无显示)。例如,原显示为4252LP39其屮第2位'3'和第4位1'为闪烁显示,执行了左移指令后,显示变为252LP39第二位'9'和笫四位'P'为闪烁显示。4.右移指令AOHD7D6D5D4D3D2D1DO10100000与左移指令类似,但所做移动为自左向右(从第8位向第1位)移动,移动后,最左边一位为空。5.循环左移指令A3HD7D6D5D4D3D2D1DO1010
6、0011与左移指令类似,不同之处在于移动后原最左边一位(第8位)的内容显示于最右位(第1位)。在上例中,执行完循环左移指令后的显示为252LP394第二位'9'和笫四位'P'为闪烁显示。6.循环右移指令A2HD7D6D5D4D3D2DIDO10100010在循环左移指令类似,但移动方向相反。三、实验内容及步骤木实验需要用到单片机最小应用系统(F1区)、7279阵列式键盘(B3区)和动态扫描显示模块(12区)。1、单片机最小应用系统的P2.7口接7279阵列式键盘的CS端,P1.3口接7279阵列式键盘的KEY端
7、,P1.6口接7279阵列式键盘的CLK端,P1.7口接7279阵列式键盘的DATA端。用8卩排线将7279阵列式键盘的位选JD3B和八位动态数码显示的位选JD1I相连,7279阵列式键盘JD4B和动态扫描显示模块的段码JDOI相连。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插熾小,请注意仿真器的方向:缺口朝上。3、打开KeiluVision2仿真软件,首先建立本实验的项冃文件,接着添加“TH29_7279键盘显示.asm”源程序,进行编译,直到编译无谋。4、全速运行程序,然后等待按键输入,
8、并在有按键按下后显示相应的键号,前一•个键号左移。5、也可以把源程序编译成可执行文件,把可执行文件川ISP烧录器烧录到89S52/89S51芯片中运行。(TSP烧录器的使用查看附录二)四、实验参考程序(见光盘中的程序文件夹)#includevoidlong_delav(voidXvoidshort_delay(void);voiddelay(unsignedchar)
此文档下载收益归作者所有