收藏 分享(赏)

键盘显示电路驱动程序设计.doc

上传人:myw993772 文档编号:4384798 上传时间:2018-12-26 格式:DOC 页数:8 大小:346.50KB
下载 相关 举报
键盘显示电路驱动程序设计.doc_第1页
第1页 / 共8页
键盘显示电路驱动程序设计.doc_第2页
第2页 / 共8页
键盘显示电路驱动程序设计.doc_第3页
第3页 / 共8页
键盘显示电路驱动程序设计.doc_第4页
第4页 / 共8页
键盘显示电路驱动程序设计.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、实验四 键盘显示电路驱动程序设计班级:09 电信一班 姓名:叶晓伟 学号:20094081007实验目的1、了解 ARMC 语言程序的结构特点2、了解 ARMC 语言程序的编写方法3、掌握用 ARM 编写 HD7279 控制程序方法实验仪器设备及软件ARM 实验箱,计算机,ADS 程序开发软件实验原理HD7279A 专用键盘显示电路,真正的单片 LED 数码管显示和键盘接口芯片,无需外围电路,只需要外接少量的电阻等,即可构成完善的显示、键盘接口电路。而与 CPU 的接口采用 SPI 串行接口方式,使用方便。可方便的构成 64 按键,8 位数码显示电路(共阴极结构)HD7279A 内部含有译码器

2、,可直接受 BCD 码或 16 进制数据或七段显示码数据。此外,还具有多种控制指令,如消隐,闪烁,左移,右移,段寻址等。具有片选信号,可方便地实现多于 8 位的显示或多于 64 键的键盘接口。HD7279 的纯指令:1、复位指令(A4H)当 HD7279A 收到该指令后,将所有显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行后,芯片的状态与上电时一样。2、测试指令(BFH)该指令使所有的 LED 全部点亮,并处于闪烁状态,主要用于测试(检查 LED 是否坏)3、左移指令(A1H)使所有显示左移一位,消隐及闪烁属性不移位,最右边一位为空(暗) 。如:4、右移指令(A0H)使所有显示右移

3、一位,消隐及闪烁属性不移位,最左边一位为空(暗) 。如:5、循环左移指令(A3H)使所有显示右移一位,消隐及闪烁属性不移位,最左边一位移到最右边。如:6、循环右移指令(A2H)使所有显示右移一位,消隐及闪烁属性不移位,最右边一位移到最左边。如:HD7279 带数据的指令:1、下载数据按方式 0 译码命令由两字节构成,前半部为指令。a2,a1,a0 为位地址, D3-D0 为数据,译码值如图所示。当前位小数点由 DP 控制,DP=1 ,小数点亮,DP=0,小数点暗。2、下载数据按方式 1 译码指令格式与指令 1 相同,译码表如下所示。3、下载数据但不译码指令格式如上图所示。当指令第二字节的位为

4、1 时,相应段点亮。4、闪烁控制 88H此命令控制各数码管的闪烁情况。D8-D1 中的位为 1 时,对应位闪烁。上电默认不闪烁。5、消隐控制 98HD8-D1 控制数码管的消隐状态。为 1 时,数码管消隐,为 0 时,正常显示。输入的数据至少有一位为 0。输入全为 0 时,命令将被忽略。6、读键盘命令该指令从 HD7279 中读出当前按键编码。编码范围是 0-3FH。当 HD7279 收到读指令时,此时按键无效,将返回 0FFH。实验内容1、编写程序控制 HD7279 显示学号HD7279 驱动程序包含接口读写程序、HD7279 发命令、收数据程序、初始化程序等,在 ARM7279.C 文件中

5、给出。在 HD7279 显示学号功能,只要往 7279 数据存储器中写入数据即可。程序如下:write7279(decode1+p,i /i 为显示的内容, p 为显示的位置 0-72、编写程序控制 HD7279 芯片,根据当前按键情况,改变显示内容按键信息在中断服务程序读取,主程序根据到的数据,向 7279 发送命令或数据,改变显示内容。keylast=key_number; /从键值缓冲中读取键值key_number=0xff; /键缓冲重置switch(keylast) /根据键值,执行不同功能 case 1:send_byte(disp_lsl); /左移一位break;case 2:

6、 send_byte(disp_lsr); /右移一位break;。 。 。default:break; 实验步骤1、 连接实验箱与计算机的串口线,打开计算机超级终端,并设定为com1,115200,8,1,0N2、 连接仿真调试电缆(并口 JTAG)3、 实验箱上电,并在 vivi 的指示下,按任意键,进入调试程序状态4、 打开 ARM 集成开发环境 ADS,按要求编写或打开实验程序。5、 按内容要求编写,调试程序,并记录调试过程和数据。6、 调试完毕,整理实验箱,并切断实验箱电源。实验思考题1、编写程序,在数码管上显示输入的键值。/*;*;* 北京精仪达盛科技有限责任公司;* 研 发 部;

7、*;* http:/;*;*- 文件信息 - ;*;* 文件名称 : MAIN.c;* 文件功能 : 所有应用程序的头文件均加在此文件中;* 补充说明 : ;*- 最新版本信息 -;* 修改作者 : ARM7 开发小组;* 修改日期 : 2004/04/25;* 版本声明 : V1.0.1;*- 历史版本信息 -;* 文件作者 : ARM7 开发小组;* 创建日期 : 2004/04/20;* 版本声明 : v1.0.0;*-;*-;*;*/#include “INCconfig.h“/显示学号函数void dispstu_number(void)/请在这里编写显示学号程?write7279(

8、disp_f,0xff); /no flash write7279(disp_hide,0xff);/no hide write7279(decode1+0,8 write7279(decode1+1,0 write7279(decode1+2,4 write7279(decode1+3,9 write7279(decode1+4,9 write7279(decode1+5,0 write7279(decode1+6,0 write7279(decode1+7,1 void Main() unsigned char p,keylast;Target_Init(); /目标初始化dispstu_

9、number();/显示学号/while(1); /程序运行到这行时 ,停止运行。while(1) keylast=key_number; /取出按键值key_number=0xff; /按键值重置为无按键switch(keylast)case 0:write7279(cmd_test,cmd_test); /测试键write7279(disp_f,0xff); /no flashwrite7279(disp_hide,0xff);/no hide dispstu_number(); p=0; break; case 1:write7279(disp_lsl,disp_lsl); /logic

10、 shift left 1 databreak;case 2: write7279(disp_lsr,disp_lsr); /logic shift right 1 databreak; case 3:write7279(disp_rol,disp_rol); /循环左移 break; case 4:write7279(disp_ror,disp_ror); /循环右移 break; case 5: if (p7) p=0; write7279(disp_hide,(17) p=0; write7279(disp_f,(10x40)p=0;write7279(disp_bit,p);p+;br

11、eak; case 8:if (p0x40)p=0;write7279(disp_offb,p);p+;break; case 9:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 10:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 11:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 12:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 13:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 14:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; case 15:if (p0x7)p=0;write7279(decode1+p,keylast);p+;break; default:break; keylast=0xff;Delay(50);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 通信信息 > 电子设计

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报