
<font size="7"><font size="2">下面是 程序说明 具体的程序参看附件 程序说明 此程序实现了键盘扫描的功能,键盘使用行列式扫描的方法,并且将扫描到的按键值用开发板上的lcd显示出来! 1.其中键盘的分布如下所示: 键盘 -8------————9------————---------------------GPIO_Pin_6 | | | | | | | | -4------————5-------——---6-------------7------GPIO_Pin_5 | | | | | | | | -0------————1--------------2-------------3------GPIO_Pin_4 GPIO_Pin_7 GPIO_Pin_1 GPIO_Pin_2 GPIO_Pin_3 2.有关键盘的扫描按如下方法扫描: 键盘扫描函数 1.先将 GPIO_Pin_4设置为低电平,GPIO_Pin_5、GPIO_Pin_6设置为高电平 * 依次扫描GPIO_Pin_7 ,判断GPIO_Pin_7 是否为0,若GPIO_Pin_7 为0,说明有键按下, 查表得键值0x00,若不为0则扫描GPIO_Pin_1; 扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1 为0,说明有键按下, 查表得键值0x01,若不为0则扫描GPIO_Pin_2; 扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下, 查表得键值0x02,若不为0则扫描GPIO_Pin_3; 扫描GPIO_Pin_3 ,判断GPIO_Pin_3 是否为0,若GPIO_Pin_3为0,说明有键按下, 查表得键值0x03,若不为0则进行下一轮扫描; 2. 再将 GPIO_Pin_5设置为低电平,GPIO_Pin_4、GPIO_Pin_6设置为高电平 * 依次扫描GPIO_Pin_7 ,判断GPIO_Pin_7 是否为0,若GPIO_Pin_7 为0,说明有键按下, 查表得键值0x04,若不为0则扫描GPIO_Pin_1; 扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1 为0,说明有键按下, 查表得键值0x05,若不为0则扫描GPIO_Pin_2; 扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下, 查表得键值0x06,若不为0则扫描GPIO_Pin_3; 扫描GPIO_Pin_3 ,判断GPIO_Pin_3 是否为0,若GPIO_Pin_3为0,说明有键按下, 查表得键值0x07,若不为0则进行下一轮扫描; 3. 再将 GPIO_Pin_6设置为低电平,GPIO_Pin_4、GPIO_Pin_5设置为高电平 * 依次扫描GPIO_Pin_7 ,判断GPIO_Pin_7 是否为0,若GPIO_Pin_7 为0,说明有键按下, 查表得键值0x08,若不为0则扫描GPIO_Pin_1; 扫描GPIO_Pin_1 ,判断GPIO_Pin_1 是否为0,若GPIO_Pin_1 为0,说明有键按下, 查表得键值0x09,若不为0则扫描GPIO_Pin_2; 扫描GPIO_Pin_2 ,判断GPIO_Pin_2 是否为0,若GPIO_Pin_2 为0,说明有键按下, 查表得键值0x10,若不为0则扫描GPIO_Pin_3; 扫描GPIO_Pin_3 ,判断GPIO_Pin_3 是否为0,若GPIO_Pin_3为0,说明有键按下, 查表得键值0x11,若不为0则结束扫描,回到主函数; 若要显示则只需将变量jianzhi送入到lcd显示程序中去即可 以下是键盘扫描函数: void jiansao(void) { unsigned char kongzhi,scan,i; GPIO_WriteBit(GPIOD,GPIO_Pin_5|GPIO_Pin_6, Bit_SET); GPIO_WriteBit(GPIOD, GPIO_Pin_4, Bit_RESET); kongzhi=0; for(i=0;i |
systickæ¶éï¼ä¸å¯è°ï¼.rar
下载625.25 KB, 下载次数: 42
RE:用systick定时器写的时钟
回复:用systick定时器写的时钟