实验三键盘接口和七段数码管的控制实验.doc_第1页
实验三键盘接口和七段数码管的控制实验.doc_第2页
实验三键盘接口和七段数码管的控制实验.doc_第3页
实验三键盘接口和七段数码管的控制实验.doc_第4页
实验三键盘接口和七段数码管的控制实验.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验三 键盘接口和七段数码管的控制实验12205235栗晋鹏一、实验目的1. 学习4X4键盘的与CPU的接口原理2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法;二、实验内容1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。2. 设计程序按键值显示在数码管中,要求数码管自最低位向左移动显示。三、实验设备1. EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。四、实验原理键盘和7段数码管的控制实验,是通过键盘的控制芯片HD7279A来完成的。它的信号线及控制线连接到S3C2410上,驱动线直接连到8位共阴的7段数码管上。由于其芯片的接口电压是5V的,而S3C2410的接口电压是3.3V,所以,HD7279A的信号、控制线经过CPLD把电压转换到3.3V,然后送入CPU中。HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等,具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。HD7279在与S3C2410接口中,它使用了4根接口线。片选信号#CS(低电平有效),时钟信号CLK,数据收发信号DATA,中断信号#KEY(低电平送出),EL-ARM-830+实验箱与其的接口中,使用了三个通用I/O接口,和一个外部中断,实现了与HD7279A的连接,S3C2410的外部中断接HD7279的中断#KEY,三个I/O口分别与HD7279A的其他控制、数据信号线相连。HD7279的其他管脚分别接4X4按键和8位数码管。当程序运行时,按下按键,平时为高电平的HD7279A的#KEY就会产生一个低电平,送给S3C2410的外部中断5请求脚,在CPU中断请求位打开的状态下,CPU会立即响应外部中断5的请求,PC指针就跳入中断异常向量地址处,进而跳入中断服务子程序中,由于外部中断4/5/6/7使用同一个中断控制器,所以,还必须判断一个状态寄存器,判断是否是外部中断5的中断请求,当判断出是外部中断5的中断请求,则程序继续执行,CPU这时,通过发送#CS片选信号选中HD7279A,再发送时钟CLK信号和通过DATA线发送控制指令信号给HD7279A,HD7279A得到CPU发送的命令后,识别出该命令,然后,扫描按键,把得到键值回送给CPU,同时,在8位数码管上显示相关的指令内容,CPU在得到按键后,有时,程序还会给此键值一定的意义,然后再通过识别此按键的意义,进而进行相应的程序处理。五、实验步骤1本实验使用实验教学系统的CPU板,键盘、8位数码管。在进行本实验时、AD通道选择开关、LCD电源开关、音频的左右声道开关、触摸屏中断选择开关等均应处在关闭状态。2在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。3打开超级终端,配置串口的属性(如COM1),配置波特率为115200,校验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上电,同时按住“空格”键,进入VIVI状态。4打开ADS1.2开发环境,从里面打开实验程序HARDWAREADS实验十一Key_Led.mcp项目文件,进行编译。5编译通过后,进入ADS1.2调试界面,加载实验程序HARDWAREADS实验十一Key_Led_DataDebug中的映象文件程序映像Key_Led.axf。6在ADS调试环境下全速运行映象文件。按下任意键值,观察数码管的显示。说明: “0”键表示数码管测试,8个数码管闪烁,“4”键表示数码管复位,“1” 键表示数码管右移8位,“2” 键表示数码管循环右移,“9” 键表示数码管左移8位,“A” 键表示数码管循环左移。其他按键在最右两个数码管上显示键值。根据HD7279A.PDF文档可以进一步开发具体的相应的程序。7.修改main.c代码,实现程序按键值显示在数码管中,要求数码管自最低位向左移动显示。修改后main.c代码:#include .INCconfig.h void Main() char p; Target_Init(); /目标初始化 while(1) switch(key_number) case 0: send_byte(cmd_test); /测试键 break; case 1: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 2: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 3: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 4: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 5: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 6: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 7: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 8: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 9: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 10: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 11: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 12: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 13: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 14: send_byte(0xA1);long_delay(); send_byte(0xC8); write7279(decode1+5,key_number/16*8); write7279(decode1+4,key_number & 0x0f); break; case 15: send_byte(0xA1);long_delay(); se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论