基于stm32的LCD12864显示+16个矩阵键盘程序

上传人:yh****1 文档编号:126076604 上传时间:2020-03-21 格式:DOC 页数:15 大小:88KB
返回 下载 相关 举报
基于stm32的LCD12864显示+16个矩阵键盘程序_第1页
第1页 / 共15页
基于stm32的LCD12864显示+16个矩阵键盘程序_第2页
第2页 / 共15页
基于stm32的LCD12864显示+16个矩阵键盘程序_第3页
第3页 / 共15页
基于stm32的LCD12864显示+16个矩阵键盘程序_第4页
第4页 / 共15页
基于stm32的LCD12864显示+16个矩阵键盘程序_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于stm32的LCD12864显示+16个矩阵键盘程序》由会员分享,可在线阅读,更多相关《基于stm32的LCD12864显示+16个矩阵键盘程序(15页珍藏版)》请在金锄头文库上搜索。

1、 .#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)

2、 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, ENAB

3、LE);/* 全部用到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_Ou

4、t_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); /矩阵键盘引脚输出

5、配置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_InitS

6、tructure.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=GPIO_Pin_0,GPIO_Pin_1,GPIO_Pin_2,GPIO_Pin_9; GPIO_

7、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,lingjj=0); keyiijj=1; else keyiijj=0; /delay(50000); G

8、PIO_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)hy5=4; if(key10=1)&(GPIO_ReadInputDataBit(GPIOB,l

9、ing1)=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; /* if(key21=1)&(GPIO_ReadInputDataBit(GPIOB,ling2)=1)h

10、y5=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=1)&(GPIO_ReadInputDataBit(GPIOB,ling3)=1)hy5=15; i

11、f(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|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;GPIO_InitStructure.GPIO_M

12、ode = 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_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(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号