矩阵键盘问题STC51单片机,4 * 4 矩阵键盘,接在P1接口,LED接在P3.7.程序应该实现功能,按下键1时(1行
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/04/28 08:56:36
矩阵键盘问题
STC51单片机,4 * 4 矩阵键盘,接在P1接口,LED接在P3.7.程序应该实现功能,按下键1时(1行1列),LED亮,按下键2(1行2列)时,LED灭.
我按上面的程序实现,按下哪个键LED都没有反应.
//
void main (void){ //主程序
while(1){
if(Key() == 1){
LED = 0; //取LED相反状态
}
if(Key() == 2){
LED = 1; //取LED相反状态
}
}
return (b);//将b作为返回值
}
main 中的 return (b); 这句没有的.
STC51单片机,4 * 4 矩阵键盘,接在P1接口,LED接在P3.7.程序应该实现功能,按下键1时(1行1列),LED亮,按下键2(1行2列)时,LED灭.
我按上面的程序实现,按下哪个键LED都没有反应.
//
void main (void){ //主程序
while(1){
if(Key() == 1){
LED = 0; //取LED相反状态
}
if(Key() == 2){
LED = 1; //取LED相反状态
}
}
return (b);//将b作为返回值
}
main 中的 return (b); 这句没有的.
1、main()当中,return(b)这行去掉.main是主函数,不允许返回东西.而且b生存期和作用域仅在key中.我觉得程序编译可能有问题吧?
2、其他问题不大.主程序改成如下,再测试看看,测P3.7能否变化
main()
{
while(1)
{
while(key()!=10) LED=1;
LED=0;
}
}
如果灯跳变了,检查硬件连接.
再问: KEY = 0xf0;//将键盘口置为11110000 DELAY_MS (2);//延时20毫秒 c = KEY;//将第二次取得值放入寄存器c 加上延迟就可以了。猜想是单片机的P1口还没有达到稳定状态的缘故吧。
再答: 跟你学了一招。行列线上的分布电容过大、上拉电阻值过小造成的。使得单片机在1uS左右没有读到正确的电平。解决了就好。
2、其他问题不大.主程序改成如下,再测试看看,测P3.7能否变化
main()
{
while(1)
{
while(key()!=10) LED=1;
LED=0;
}
}
如果灯跳变了,检查硬件连接.
再问: KEY = 0xf0;//将键盘口置为11110000 DELAY_MS (2);//延时20毫秒 c = KEY;//将第二次取得值放入寄存器c 加上延迟就可以了。猜想是单片机的P1口还没有达到稳定状态的缘故吧。
再答: 跟你学了一招。行列线上的分布电容过大、上拉电阻值过小造成的。使得单片机在1uS左右没有读到正确的电平。解决了就好。
矩阵键盘问题STC51单片机,4 * 4 矩阵键盘,接在P1接口,LED接在P3.7.程序应该实现功能,按下键1时(1行
4*4矩阵键盘的问题.4*4矩阵键盘接P1口,高4位接列,低4位接行,上拉电阻10K,AT89S52单片机
求.用89C51单片机设计4*4矩阵式键盘计算器程序,
用51单片机和C语言编程.利用矩阵键盘依次显示1,2,3,4,5.……12的平方,显示在数码管上.
用单片机开发板89C51设计一个用数码管显示4*4键盘实现加减乘除计算器功能的程序
51单片机C语言,如何把只在P3口带LED的程序改成P1 P2 P3三个口同时带LED的?
简单的51系列单片机控制4*4矩阵键盘显示电路图
C语言编写 89C51单片机 用矩阵键盘 小数码管计算器 实现两位数 加减乘除运算
单片机的独立键盘或矩阵键盘电路,必须要加电阻和电源吗?
判断矩阵是否对称编写函数 判断 4 阶矩阵是否对称,对称时返回 1 ,不对称时返回 0 . 主函数中由键盘读入 4 阶矩
51单片机控制12个led灯,分别接8个灯P0口,4个灯P1的前4个口,程序怎么写能实现从P0口到P1口的流水灯?
单片机p1口和p0口之间加发光二极管,p1=1,p0=0,能使led发光么?如何才能使其发光,我想做矩阵led!