标题:
我是自学小白,麻烦问一下,如何控制4*4矩阵键盘在阳极管上显示数字?
[打印本页]
作者:
kkch9
时间:
2020-6-18 22:35
标题:
我是自学小白,麻烦问一下,如何控制4*4矩阵键盘在阳极管上显示数字?
这是我写的键盘扫描
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define ulong unsigned long
#define uint unsigned int
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };
uchar Digits[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
#define uchar unsigned char
void main()
{uchar i;
uchar firstnum,nextnum,keynum;
while(1)
{ for(i=0;i<8;i++)
{ P0=DSY_CODE[i];
P2=Digits[i]; } }
while(1)
{
P1=0x0f;
firstnum=P1;
P1=0xf0;
nextnum=P1;
keynum=nextnum|firstnum;
switch(keynum)
{case 0x11:P0=0x3f ;break;
case 0x12: P0=0x06; break;
case 0x14: P0=0x5b; break;
case 0x18:P0=0x4f ; break;
case 0x21: P0=0x66; break;
case 0x22:P0=0x6d ; break;
case 0x24:P0=0x7d ; break;
case 0x28:P0=0x07 ; break;
case 0x41:P0=0x7f ; break;
case 0x42:P0=0x67; break;
case 0x44:P0=0x77 ; break;
case 0x48:P0=0x7c ; break;
case 0x81:P0=0x39; break;
case 0x82:P0=0x5c ; break;
case 0x84:P0=0x79 ; break;
case 0x88:P0=0x71 ; break;
}
}
}
复制代码
但是,在keil上验证时没反应,看看是啥问题?
作者:
xianfajushi
时间:
2020-6-19 07:37
数码管显示需要延时才能符合眼光暂留现象,要写延时。
作者:
Chellson
时间:
2020-6-19 09:44
建议使用一个for循环。
作者:
wufeng391
时间:
2020-6-19 11:03
你可能更加需要一些基础的视频教程!你可能拥有一定的C语言基础,不过很多东西要自学都很费劲!并不说学不了,学不成,而是自学的时候遇到很多问题你连问都无法正确表达。入门还是需要有人带的,在网上有很多视频教程,可以先选择一种看,开发板自己看吧,可以借,可以买,因为要看到实际的效果还是需要触手可及的东西,模拟没有那种感觉,再说你自学都能写出这么长的程序确实很厉害。加油吧,刚开始学,要全部手动,避免什么复制之类的操作,因为单片机是实践性极强的东西,动手是必需的,你可以看看宋雪松的视频,51的,虽然比较早了,但可以参考一下。要有耐心的,视频不懂可以多看几遍,如果程序真是你自己写的,我想你的进度应该会很快的。但不要着急!B站上有免费的!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1