键盘接口和七段数码管的控制实验

 一、实验目的

1.  学习4X4键盘的与CPU的接口原理

2.  掌握键盘芯片HD7279的使用,及8位数码管的显示方法;

二、实验内容

1.  通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。

三、实验设备

  1. 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进行了赋值。

结果截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

奇葩的UI引用LayoutInflater.from问题

今收到BUG一枚,一个页面的EditText的风格变为了系统默认(系统经过定制,风格和普通的不同) 经检查xml无任何不妥,最终问题出在LayoutInflater.from上。 如果LayoutInflater.from(XXActivity.this&#xff09…

LeetCode 939. 最小面积矩形(哈希)

文章目录1. 题目2. 解题1. 题目 给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴。 如果没有任何矩形,就返回 0。 示例 1: 输入:[[1,1],[1,3],[3,1],[3,3],[2,2]] 输出…

python中的wraps函数

使⽤装饰器时,有⼀些细节需要被注意。 例如,被装饰后的函数其实已经是另外⼀个函数了(函数名等函数属性会发⽣改变)。添加后由于函数名和函数的doc发⽣了改变,对测试结果有一定影响! import functools de…

python中向类中动态添加新特性及删除属性方法

class Foo(object): pass obj Foo() # 添加对象属性(对象名追加对象属性) obj.a 100 # print(obj.a) # 添加类属性(类名称追加类属性) Foo.b 200 # print(Foo.b) # print(obj.b) # 添加对象方法 def obj_fun(self): print(self.a) # …

图片效果集合(js、jquery或html5)

1.jQuery HTML5 幻灯片使用支持HTML5的浏览器会有特殊效果,即切换图片时颜色的改变文章:http://keleyi.com/a/bjac/b8i3xdui.htm效果:http://keleyi.com/keleyi/phtml/html5/1.htm 2. jQuery图片延迟加载一开始不加载实图,只用灰图…

LeetCode 1131. 绝对值表达式的最大值(数学 绝对值展开)

文章目录1. 题目2. 解题1. 题目 给你两个长度相等的整数数组&#xff0c;返回下面表达式的最大值&#xff1a; |arr1[i] - arr1[j]| |arr2[i] - arr2[j]| |i - j|其中下标 i&#xff0c;j 满足 0 < i, j < arr1.length。 示例 1&#xff1a; 输入&#xff1a;arr1 …

基于uCOSII的LCD驱动实验

实验目的 掌握在 UCOsH操作系统下编写应用程序 的基本方法 实验内容 在移植好的UCOsII项 目中添加串口、LCD、 键盘的驱动程序 学习在UCOSII下 ,多应用任务的简单编程实例 实验设备 EL-RAM-860教 学 实验 箱 ,PentiumII以上 的 PC机 ,仿 真 调试 电缆 ,串 口直 连 电 缆 。 PC操…

python中的__slots__

为了达到限制的⽬的&#xff0c;Python允许在定义class的时候&#xff0c;定义一个特殊的 __slots__变量&#xff0c;来限制该class实例能添加的属性&#xff1a; class Foo(object): __slots__ ("a", "b") # 限制动态使用对象名添加东西&#xff08;属性…

LeetCode 659. 分割数组为连续子序列(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个按升序排序的整数数组 num&#xff08;可能包含重复数字&#xff09;&#xff0c;请你将它们分割成一个或多个子序列&#xff0c;其中每个子序列都由连续整数组成且长度至少为 3 。 如果可以完成上述分割&#xff0c;则返回 true &…

autotools入门笔记(二)——创建和使用静态库、动态库

带有静态库或者动态库的工程的构建过程与上一节&#xff08;&#xff09;只包含一个源文件的工程的构建过程是类似的。只是对于复杂的工程&#xff0c;如果包含多个还有源文件的目录时&#xff0c;需要对每个包含源文件的目录执行构建过程&#xff0c;另外创建和使用库文件时需…

等价类测试与决策表测试

问题&#xff1a;输入年月日year、month、day&#xff0c;其中年份的有效取值范围为[1818,2018]&#xff0c;请输出输入日期的前一天&#xff0c;例如输入2018年9月18日&#xff0c;输出为2018年9月17日。若输入日期非法&#xff0c;例如输入2013年2月30日&#xff0c;则输出“…

python中的私有化

1、xx: 公有变量2、_x: 单前置下划线,私有化属性或方法&#xff0c;from somemodule import * 禁止导入,类对象和子类可以访问。3、__xx&#xff1a;双前置下划线,避免与子类中的属性命名冲突&#xff0c;无法在外部直接访问(名字重整所以访问不到&#xff09;4、__xx__:双…

LeetCode 1520. 最多的不重叠子字符串(贪心)

文章目录1. 题目2. 解题1. 题目 给你一个只包含小写字母的字符串 s &#xff0c;你需要找到 s 中最多数目的非空子字符串&#xff0c;满足如下条件&#xff1a; 这些字符串之间互不重叠&#xff0c;也就是说对于任意两个子字符串 s[i…j] 和 s[k…l] &#xff0c;要么 j <…

一个网页设计师应该考虑的9件事

1、永远都不要停止学习新的东西 在一个领域的趋势很容易成为过去&#xff0c;一个网页设计师应该不断尝试跟上最新的方法。从标志设计到用户界面&#xff0c;你应该寻找各种样品&#xff0c;并看看什么是新的&#xff0c;什么不是。此外&#xff0c;即使自己是不是对你有用&…

边界值测试

问题描述——找零钱最佳组合&#xff1a; 假设商店货品价格(R)皆不大于100元&#xff08;且为整数&#xff09;&#xff0c;若顾客付款在100元内(P)&#xff0c;求找给顾客之最少货币个&#xff08;张&#xff09;数&#xff1f;&#xff08;货币面值50元(N50)&#xff0c;10元…

python中的@property(get与set作用

class Bank(object): def__init__(self): self.__money 100 property defmoney(self): returnself.__money #raise AttributeError("该属性不支持读取操作") # 如果只提供了读取操作&#xff0c;而不提供设置操作的&#xff0c;这样的属性叫做只读属性 money.sette…

LeetCode 679. 24 点游戏(回溯)

文章目录1. 题目2. 解题1. 题目 你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *&#xff0c;/&#xff0c;&#xff0c;-&#xff0c;(&#xff0c;) 的运算得到 24。 示例 1: 输入: [4, 1, 8, 7] 输出: True 解释: (8-4) * (7-1) 24示例 2: 输入: [1, 2, 1, 2] 输…

C++ Primer 有感(重载操作符)

1.用于内置类型的操作符&#xff0c;其含义不能改变。也不能为任何内置类型定义额外的新的操作符。&#xff08;重载操作符必须具有至少一个类类型或枚举类型的操作数。这条规则强制重载操作符不能重新定义用于内置类型对象的操作符的含义&#xff09;2.重载操作符&#xff0c;…

等价类测试

某直辖市的电话号码由三部分组成&#xff0c;这三部分的名称和内容分别是&#xff1a; &#xff08;1&#xff09;地区码&#xff1a;空白或3位数字&#xff1b; &#xff08;2&#xff09;前缀&#xff1a;非“0”和非“1”开头的4位数字&#xff1b; &#xff08;3&#xff0…

元类及创建元类的方法(面试用

元类就是类的类&#xff0c;type就是Python中创建所有类的元类。type就是创建类对象的类。Python中所有的东西——都是对象。这包括整数、字符串、函数以及类。它们全部都是对象&#xff0c;并且它们都是从一个类创建来&#xff0c;这个类就是type。# class Foo(object):# …