1、基于stm32的LCD12864显示+16个矩阵键盘程序文件#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
2、=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_APB1PeriphClock
3、Cmd(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_In
4、itStructure.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_In
5、it(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_
6、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 key1010; u16 ling=GPIO_Pin_7,GPIO_Pin_6,GPIO_Pin_11,GPIO_Pin_13; u16 heng=
7、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;ii4;ii+) GPIO_ResetBits(GPIOB,hengii); for(jj=0;jj4;jj+) delay(50000); delay(50000); /delay(50000); if(GPIO_ReadInputDataBit(GPIOB,lingjj)=0) while(GPIO_ReadInputDataBit(GPIOB,ling
8、jj=0); keyiijj=1; else keyiijj=0; /delay(50000); GPIO_SetBits(GPIOB,hengii); if(key00=1)&(GPIO_ReadInputDataBit(GPIOB,ling0)=1)hy5=1; /* if(key01=1)&(GPIO_ReadInputDataBit(GPIOB,ling0)=1)hy5=2; if(key02=1)&(GPIO_ReadInputDataBit(GPIOB,ling0)=1)hy5=3; if(key03=1)&(GPIO_ReadInputDataBit(GPIOB,ling0)=1
9、)hy5=4; if(key10=1)&(GPIO_ReadInputDataBit(GPIOB,ling1)=1)hy5=5; /* if(key11=1)&(GPIO_ReadInputDataBit(GPIOB,ling1)=1)hy5=6; if(key12=1)&(GPIO_ReadInputDataBit(GPIOB,ling1)=1)hy5=7; if(key13=1)&(GPIO_ReadInputDataBit(GPIOB,ling1)=1)hy5=8; if(key20=1)&(GPIO_ReadInputDataBit(GPIOB,ling2)=1)hy5=9; /* i
10、f(key21=1)&(GPIO_ReadInputDataBit(GPIOB,ling2)=1)hy5=10; if(key22=1)&(GPIO_ReadInputDataBit(GPIOB,ling2)=1)hy5=11; if(key23=1)&(GPIO_ReadInputDataBit(GPIOB,ling2)=1)hy5=12; if(key30=1)&(GPIO_ReadInputDataBit(GPIOB,ling3)=1)hy5=13; /* if(key31=1)&(GPIO_ReadInputDataBit(GPIOB,ling3)=1)hy5=14; if(key32
11、=1)&(GPIO_ReadInputDataBit(GPIOB,ling3)=1)hy5=15; if(key33=1)&(GPIO_ReadInputDataBit(GPIOB,ling3)=1)hy5=16; / hy2=9;/ return hy2; / void LCD_DataIo_In(void)/数据线输入 1602 输入引脚配置 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPI
12、O_Pin_5|GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); void LCD_DataIo_Out(void)/数据线输出 1602引脚输出配置 GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_
13、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); void hy() GPIO_ResetBits(GPIOE,GPIO_Pin_7); GPIO_ResetBits(GPIOE,GPIO_Pin_6); GPIO_ResetBits(GPIOE,GPIO_Pin_5); GPIO_ResetBits(GPIOE,GPIO_Pin_4); GPIO_ResetBits(GPIOE,GPIO_Pin_3); GPIO_ResetBits(GPIOE,GPIO_Pin_2); GPIO_ResetBi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1