初入单片机遇到一些问题
废物先不说, 上图上代码才能有图有真相
#include <reg51.h>
#include "../time/Delay.h"
// 定义矩阵键盘I/O P2 口控制矩阵键盘
#define GPIO_KEY P2
// 定义静态数码管变量
#define GPIO_DIG P0
unsigned char code GPIO_S[6] = {0x3F, 0x06, 0x59, 0x4F, 0x67, 0x6D};
// ~ 0 1 2 3 4 5
void main()
{
unsigned char KeyValue;
GPIO_KEY = 0x0F;
while (1)
{
if (GPIO_KEY != 0x0F)
{
DelayMs_24M(10);
if (GPIO_KEY != 0x0F)
{
// 测试列
switch(GPIO_KEY)
{
case 0x07 : KeyValue = 0; break;
case 0x0B : KeyValue = 1; break;
case 0x0D : KeyValue = 2; break;
case 0x0E : KeyValue = 3; break;
}
// 测试行
GPIO_KEY = 0xF0;
switch(GPIO_KEY)
{
case 0x70 : break;
case 0xB0 : KeyValue = KeyValue + 4; break;
case 0xD0 : KeyValue = KeyValue + 8; break;
case 0xE0 : KeyValue = KeyValue + 12; break;
}
// 根据按下的按钮在静态数码管中显示对应数字
switch(KeyValue)
{
case 0x07 : GPIO_DIG = ~GPIO_S[0]; break;
}
}
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是板子的接线图


--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是电路原理图


--------------------------------------------------------------------------------------------------------------------------------------------------------------------
整个实验效果:按下矩阵键盘中的一个键然后静态数码管中显示一个数字
目前程序状况:按下矩阵键盘中的任意一个键,然后,然后就没有然后了
看在新手和上帝的份上, 各路大神帮我解答下吧
#include <reg51.h>
#include "../time/Delay.h"
// 定义矩阵键盘I/O P2 口控制矩阵键盘
#define GPIO_KEY P2
// 定义静态数码管变量
#define GPIO_DIG P0
unsigned char code GPIO_S[6] = {0x3F, 0x06, 0x59, 0x4F, 0x67, 0x6D};
// ~ 0 1 2 3 4 5
void main()
{
unsigned char KeyValue;
GPIO_KEY = 0x0F;
while (1)
{
if (GPIO_KEY != 0x0F)
{
DelayMs_24M(10);
if (GPIO_KEY != 0x0F)
{
// 测试列
switch(GPIO_KEY)
{
case 0x07 : KeyValue = 0; break;
case 0x0B : KeyValue = 1; break;
case 0x0D : KeyValue = 2; break;
case 0x0E : KeyValue = 3; break;
}
// 测试行
GPIO_KEY = 0xF0;
switch(GPIO_KEY)
{
case 0x70 : break;
case 0xB0 : KeyValue = KeyValue + 4; break;
case 0xD0 : KeyValue = KeyValue + 8; break;
case 0xE0 : KeyValue = KeyValue + 12; break;
}
// 根据按下的按钮在静态数码管中显示对应数字
switch(KeyValue)
{
case 0x07 : GPIO_DIG = ~GPIO_S[0]; break;
}
}
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是板子的接线图


--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是电路原理图


--------------------------------------------------------------------------------------------------------------------------------------------------------------------
整个实验效果:按下矩阵键盘中的一个键然后静态数码管中显示一个数字
目前程序状况:按下矩阵键盘中的任意一个键,然后,然后就没有然后了
看在新手和上帝的份上, 各路大神帮我解答下吧
...全文
51单片机应用开发---什么是单片机?为什么要学习单片机? 单片机是集成在一块(单)芯片上的微型计算机。平时我们把 MCU: Micro-Controller Unit,微控制器俗称单片机。 阅读详情
相关推荐
单片机与DSP中的AT89S系列单片机ISP下载线设计
传统的单片机开发通常需要昂贵的仿真器和编程器,这为初入行业的技术人员和企业增加了门槛。
屌丝的逆袭:我从接触单片机到成为主管的人生经历
电子技术员工作内容:作者在初入职场时找到了一份技术员的工作,主要工作内容包括焊接LED灯珠、测试灯条、使用万用表和示波器进行测量,以及接触了单片机焊接等。
《基于PROTEUS的电路及单片机系统设计与仿真》随书光盘.rar
《基于PROTEUS的电路及单片机系统设计与仿真》随书光盘是一个非常有价值的资源,对于初入电子工程和单片机编程领域的学习者来说尤其有益。
看看单片机牛人成长感悟,让人豁然开朗
由于学校的教学资源有限,作者最终选择了与自己的兴趣和市场需求更为匹配的方向——单片机。#### 三、初入行业:培训与实践作者在毕业后选择了一家名为“MCU起航”的培训机构进行学习。
51单片机项目集 入门篇
总之,《51单片机项目集 入门篇》是一份宝贵的自学资源,为初入51单片机世界的新手提供了一个良好的起点,引导他们逐步踏入精彩的嵌入式系统开发领域。


单片机/工控
