ODR//unsigned char table1[]={"65"};unsigned char table2[]={"大学"} ;unsig">

根据stm32的LCD12864显示16个矩阵键盘程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "stm32f10x.h"

#define read_busybit() GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7 ) #define DATAOUT GPIOC->ODR//

unsigned char table1[]={"65"};

unsigned char table2[]={"大学"} ;

unsigned char table3[]={"学院"} ;

unsigned char table4[]={"电子信息"} ;

unsigned char table5[]={"姓名"} ;

unsigned char hy5;

unsigned char k=0;

void delay(unsigned int x)

{

while(x--);

}

// 外设时钟使能

/*************************************************************************/

void RCC_Configuration(void) //在208页这里是引脚时钟配置{

/* 使能外设时钟*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 |

RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC |

RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

}

/*******************************************************************************

全部用到1602的引脚将在在配置

*******************************************************************************/

void GPIO_Configuration(void) // 1602引脚配置

{

GPIO_InitTypeDef GPIO_InitStructure;

/* LD1 & LD2 & LD3 & LD4 configration */

GPIO_InitStructure.GPIO_Pin

=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin _6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

//矩阵键盘引脚输出配置

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_9;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure );

//矩阵键盘引脚输入配置

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_11|GPIO_Pin_7|GPIO_Pin_ 6;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO_InitStructure);

}

void key()//按键检测

{

unsigned char ii,jj;

unsigned int key[10][10];

u16 ling[]={GPIO_Pin_7,GPIO_Pin_6,GPIO_Pin_11,GPIO_Pin_13};

u16 heng[]={GPIO_Pin_0,GPIO_Pin_1,GPIO_Pin_2,GPIO_Pin_9};

GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_9);

for (ii=0;ii<4;ii++)

{

GPIO_ResetBits(GPIOB,heng[ii]);

for(jj=0;jj<4;jj++)

{

delay(50000);

delay(50000);

//delay(50000);

if(GPIO_ReadInputDataBit(GPIOB,ling[jj])==0)

{

相关文档
最新文档