按键控制实验

按键控制实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include "key.h"void KEY_Init(void)
{EALLOW;SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;// 开启GPIO时钟//KEY端口配置GpioCtrlRegs.GPAMUX1.bit.GPIO12=0;GpioCtrlRegs.GPADIR.bit.GPIO12=0;GpioCtrlRegs.GPAPUD.bit.GPIO12=0;GpioCtrlRegs.GPAMUX1.bit.GPIO13=0;GpioCtrlRegs.GPADIR.bit.GPIO13=0;GpioCtrlRegs.GPAPUD.bit.GPIO13=0;GpioCtrlRegs.GPAMUX1.bit.GPIO14=0;GpioCtrlRegs.GPADIR.bit.GPIO14=0;GpioCtrlRegs.GPAPUD.bit.GPIO14=0;GpioCtrlRegs.GPBMUX2.bit.GPIO48=0;GpioCtrlRegs.GPBDIR.bit.GPIO48=1;GpioCtrlRegs.GPBPUD.bit.GPIO48=0;GpioCtrlRegs.GPBMUX2.bit.GPIO49=0;GpioCtrlRegs.GPBDIR.bit.GPIO49=1;GpioCtrlRegs.GPBPUD.bit.GPIO49=0;GpioCtrlRegs.GPBMUX2.bit.GPIO50=0;GpioCtrlRegs.GPBDIR.bit.GPIO50=1;GpioCtrlRegs.GPBPUD.bit.GPIO50=0;EDIS;GpioDataRegs.GPBSET.bit.GPIO48=1;GpioDataRegs.GPBSET.bit.GPIO49=1;GpioDataRegs.GPBSET.bit.GPIO50=1;}char KEY_Scan(char mode)
{static char keyl1=1;static char keyl2=1;static char keyl3=1;//第1列扫描KEY_L1_SetL;KEY_L2_SetH;KEY_L3_SetH;if(keyl1==1&&(KEY_H1==0||KEY_H2==0||KEY_H3==0)){DELAY_US(10000);keyl1=0;if(KEY_H1==0){return KEY1_PRESS;}else if(KEY_H2==0){return KEY4_PRESS;}else if(KEY_H3==0){return KEY7_PRESS;}}else if(KEY_H1==1&&KEY_H2==1&&KEY_H3==1){keyl1=1;}if(mode)keyl1=1;//第2列扫描KEY_L2_SetL;KEY_L1_SetH;KEY_L3_SetH;if(keyl2==1&&(KEY_H1==0||KEY_H2==0||KEY_H3==0)){DELAY_US(10000);keyl2=0;if(KEY_H1==0){return KEY2_PRESS;}else if(KEY_H2==0){return KEY5_PRESS;}else if(KEY_H3==0){return KEY8_PRESS;}}else if(KEY_H1==1&&KEY_H2==1&&KEY_H3==1){keyl2=1;}if(mode)keyl2=1;//第3列扫描KEY_L3_SetL;KEY_L1_SetH;KEY_L2_SetH;if(keyl3==1&&(KEY_H1==0||KEY_H2==0||KEY_H3==0)){DELAY_US(10000);keyl3=0;if(KEY_H1==0){return KEY3_PRESS;}else if(KEY_H2==0){return KEY6_PRESS;}else if(KEY_H3==0){return KEY9_PRESS;}}else if(KEY_H1==1&&KEY_H2==1&&KEY_H3==1){keyl3=1;}if(mode)keyl3=1;return KEY_UNPRESS;
}
#ifndef KEY_H_
#define KEY_H_#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"#define KEY_L1_SetL         (GpioDataRegs.GPBCLEAR.bit.GPIO48=1)
#define KEY_L2_SetL         (GpioDataRegs.GPBCLEAR.bit.GPIO49=1)
#define KEY_L3_SetL         (GpioDataRegs.GPBCLEAR.bit.GPIO50=1)#define KEY_L1_SetH         (GpioDataRegs.GPBSET.bit.GPIO48=1)
#define KEY_L2_SetH         (GpioDataRegs.GPBSET.bit.GPIO49=1)
#define KEY_L3_SetH         (GpioDataRegs.GPBSET.bit.GPIO50=1)#define KEY_H1          (GpioDataRegs.GPADAT.bit.GPIO12)
#define KEY_H2          (GpioDataRegs.GPADAT.bit.GPIO13)
#define KEY_H3          (GpioDataRegs.GPADAT.bit.GPIO14)#define KEY1_PRESS      1
#define KEY2_PRESS      2
#define KEY3_PRESS      3
#define KEY4_PRESS      4
#define KEY5_PRESS      5
#define KEY6_PRESS      6
#define KEY7_PRESS      7
#define KEY8_PRESS      8
#define KEY9_PRESS      9
#define KEY_UNPRESS     0void KEY_Init(void);
char KEY_Scan(char mode);#endif /* APP_KEY_KEY_H_ */
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
#include "leds.h"
#include "beep.h"
#include "relay.h"
#include "key.h"void main()
{int i = 0;char key = 0;InitSysCtrl();//系统时钟初始化,默认已开启F28335所有外设时钟LED_Init();BEEP_Init();Relay_Init();KEY_Init();RELAY_ON;while(1){key = KEY_Scan(0);switch(key){case KEY1_PRESS:LED2_TOGGLE;break;case KEY2_PRESS:LED3_TOGGLE;break;case KEY3_PRESS:LED4_TOGGLE;break;case KEY4_PRESS:LED5_TOGGLE;break;case KEY5_PRESS:LED6_TOGGLE;break;case KEY6_PRESS:LED7_TOGGLE;break;}i++;if(i%200){LED1_TOGGLE;}DELAY_US(1000);//系统的延迟函数单位是us 此处为延迟100us}
}

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

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

相关文章

贷款能否成功,这4个人说了算

贷款谁都希望一枪命中,顺顺利利的拿到钱,可是在贷款的过程中参与的人员较多,稍微出现一些差错都可能会影响贷款的审批事实上,在贷款的过程中,你的贷款能否成功,是由这四个人决定的。一、信贷经理信贷经理是…

一些研究SLAM的团队和网站 [2008年10月20日]

1. http://www.openslam.org/ 2. http://www-personal.acfr.usyd.edu.au/nebot/victoria_park.htm 经典数据库 3. http://babel.isa.uma.es/mrpt/index.php/Main_Page 2008年开始陆续出现了一些好文章. 4. http://cres.usc.edu/radishrepository/view-all.php 包含了大量的用…

哪些房产不能抵押做贷款?

我们都知道,房产抵押贷款相对要求较低,而且贷款利息低,额度也高,但并不是所有的房产都是可以抵押的,下面我们就来盘点下,哪些房产不能作为抵押进行贷款.1、小产权房小产权房,又叫自建房&#xf…

直流电机实验

直流电机实验 #ifndef DC_MOTOR_H_ #define DC_MOTOR_H_#include "DSP2833x_Device.h" // DSP2833x 头文件 #include "DSP2833x_Examples.h" // DSP2833x 例子相关头文件#define DC_MOTOR_INA_SETH (GpioDataRegs.GPASET.bit.GPIO21) #define DC_M…

什么样的人贷款更容易?

有过贷款经历的朋友应该知道,贷款并不是件简单的事情,有时候即使愿意支付更多的利息,仍然不能贷到款,所以大家可能会有疑惑,到底什么样的人最好贷款呢?通常来说贷款公司更偏向于公务员、事业单位、上市公司…

28个不得不看的经典编程算法!!

前十个是来自圣经的十大算法:发起人的描述:《来自圣经的证明》收集了数十个简洁而优雅的数学证明,迅速赢得了大批数学爱好者的追捧。如果还有一本《来自圣经的算法》,哪些算法会列入其中呢?第一名:Union-fi…

DOA——ESPRIT算法

相位phei 2*pi*f*d*sind(theta),因此理论上来讲测向的算法都可以用来测频。 ESPRIT:Estimating signal parameters viarotational invariance techniques,中文为旋转因子不变法。 ESPRIT用于测频: %Example_esprit clear all;clc…

为什么别人有微粒贷,而你没有?

大家都知道,微粒贷纯线上申请,500-30万额度,利息低至日息0.045%,手续简单方便,额度高,因此想借钱的朋友都希望自己有微粒贷,但是截至目前为止,只有几千万人有微粒贷,大部…

步进电机实验

步进电机实验 #include "step_motor.h"void Step_Motor_Init(void) {EALLOW;SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK 1;// 开启GPIO时钟//Step_MOTOR端口配置GpioCtrlRegs.GPAMUX1.bit.GPIO20;GpioCtrlRegs.GPADIR.bit.GPIO21;GpioCtrlRegs.GPAMUX1.bit.GPIO30;GpioCt…

常用IP核

前言 记录自己用到的模块,随时补充。 主要分类: 一、常用模块 1-FIFO FIFO分为两种,一是输入输出时钟相同(Common clock)的 fifo ;二是输入输出时钟不相同(Independent clocks)FIFO常用于&#…

OpenCL优化应用项目

1、计算机视觉相关 基于局部域考察的图像模糊化算法的加速实现(表面模糊,高斯模糊)图像模糊化 图像模糊化算法的特点是根据被考察点的局部域特征对被考察点的颜色进行调整,由于各被考察点的局部域相对独立,这类算法比较…

F28335中断系统

F28335中断系统 DSP中断管理分为3个层次:外设级,PIE级,CPU级

notepad++与ISE/Vivado关联

转自:http://www.cnblogs.com/ninghechuan/p/6172237.html 1、notepad与vivado关联 打开vivado软件,选择菜单栏“Tools——>Options…”,在弹出的对话框中,选择General选项卡,如图1所示。 拉动右边的滚动条到Text E…

花呗不还会怎样?

现如今花呗以其短平快俘获很多网购朋友的心,随借随还,确实很好用,但是问题来,如果花呗忘记还了,或者不还会有什么后果呢?先来看下一个网友的真实经历:3个月前,我拖欠了花呗2000多块钱…

外部中断实验

外部中断实验 #include "exti.h" #include "leds.h" #include "key.h"void EXTI1_Init(void) {EALLOW;SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK 1; // GPIO input clockEDIS;EALLOW;//KEY端口配置GpioCtrlRegs.GPAMUX1.bit.GPIO120;GpioCtrlReg…

有法院被执行人记录还能贷款吗?

贷款除了看个人的资质之外,还会查看借款人的一些社会信息,比如法院被执行人记录。通常来说,有法院被执行记录的人是很难通过贷款申请的。1、什么叫法院被执行人记录?被执行人指的是通过法院判决,需要承担对应执行义务的…

如何找到安全的贷款机构

贷款谁都希望找一家安全可靠的机构,不希望碰到骗子或不正规的公司,但是对于很多缺乏贷款经验的朋友来说,他们并不知道哪些贷款机构是正规的,也不知道哪些贷款是安全的,下面我们就来给大家说下如何找一个正规安全的贷款…

梅森增益公式

梅森增益公式 式中 P——从源节点到阱节点的传递函数(或总增益); n——从源节点到阱节点的前向通路总数; pk——从源节点到阱节点的第条前向通路总增益; △——流图特征式 式中

为什么销售员贷款比较难?

销售员其实是一个相对高收入的群体,按道理来说去贷款应该是比较好下的,但是在实际的贷款审批过程中,销售人员去贷款要么比较难下,要么就是额度比较低。为什么会这样呢?这其实跟销售员的工作性质有关。第一、销售员工作…

Ubuntu系统下bash和dash的区别(修改默认sh为bash)

什么是bash ? Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell,事实上,还有许多传统UNIX上用的Shell,像tcsh、csh、ash、bsh、ksh等等,Shell Script大致都类同,当您学会一种Shell以后&#xff0c…