一、实验目的
1. 学习4X4键盘的与CPU的接口原理
2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法;
二、实验内容
1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。
三、实验设备
- EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。
2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,
仿真调试驱动程序。
四、实验步骤
1.本实验使用实验教学系统的CPU板,键盘、8位数码管。在进行本实验时、AD通道选择开关、LCD电源开关、音频的左右声道开关、触摸屏中断选择开关等均应处在关闭状态。
2.在PC机并口和实验箱的CPU板上的JTAG接口之间,连接仿真调试电缆,以及串口间连接公/母接头串口线。
3.打开超级终端,配置串口的属性(如COM1),配置波特率为115200,校验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上电,同时按住“空格”键,进入VIVI状态。
4.打开ADS1.2开发环境,从里面打开\实验程序\HARDWARE\ADS\实验十一\Key_Led.mcp项目文件,进行编译。
5.编译通过后,进入ADS1.2调试界面,加载实验程序\HARDWARE\ADS\实验十一\Key_Led_Data\Debug中的映象文件程序映像Key_Led.axf。
6.在ADS调试环境下全速运行映象文件。按下任意键值,观察数码管的显示。说明: “0”键表示数码管测试,8个数码管闪烁,“4”键表示数码管复位,“1” 键表示数码管右移8位,“2” 键表示数码管循环右移,“9” 键表示数码管左移8位,“A” 键表示数码管循环左移。其他按键在最右两个数码管上显示键值。根据HD7279A.PDF文档可以进一步开发具体的相应的程序。
五、实验题目及做法
要求一:设计程序按键值显示在数码管中,要求数码管自左到右显示1,2,3,4并且每一个数字中间用U隔开,并且U字能够闪烁。
实验中我对5号键进行了操作,其中代码修改如下
实验代码截图:
实验代码中第一个for循环我参照HD7279A.PDF对U数码管进行了相应的设置,第二个for循环对1,2,3,4数码管进行了相应的设置,最后一段代码是对U的闪烁效果进行了处理。此处可以看到第二个for循环我进行了很多if语句的判断,是由于数码管的顺序不是从左到右1,2,3,……8,而是4、3、2、1、8、7、6、5.试验箱数码管顺序不正常,我就进行了相应的设置。
实验结果截图如下:
要求二:将key对应的ENT5引脚功能进行设置,让key值的获取不是采用中断的形式、而是采用CPU轮询查看的方式接收key值
对此实验要求,我首先将rGPFCON寄存器的功能进行设置,由原先的中断特殊功能引脚,改为了输入功能引脚。然后在main函数里面,while死循环里面加上对rGPFDAT第5号位的检测(if语句判断),当有键值输入的时候,5号位会为低电平信号,就会进入if语句,在这里面读取7279寄存器里面的值,并转换付给key_number变量。
实验代码截图如下:
此出可以看到我对rGPFCON寄存器的值进行了相应的设置,将第五号引脚改为了输入引脚功能。
当有按键按下是rGPFDAT第5号位为低电平0,并对key_number进行了赋值。
结果截图: