1.请问如何用51单片机实现8*8矩阵动态显示“南昌大学”四个字?求输入字
2.使用单片机的单片动态P1口扩展4*4键盘矩阵,实现在键盘上每按一个数字键用静态显示或动态显
3.如何在51单片机矩阵键盘里按一个键可实现数码管动态显示而不是一个值
4.51单片机数码管动态显示从右往左
请问如何用51单片机实现8*8矩阵动态显示“南昌大学”四个字?求输入字
8*8矩阵是显示不了一个汉字的,至少要*的机动矩阵点阵,而且也只能显示一个字,态矩四个字要动态交替显示的阵源超级资金 源码。
这要4块8*8的码单点阵组成*的点阵。
你这要程序,片机订餐软件源码首先得要确定,源码你是单片动态仿真,还是机动矩阵实物。还要有仿真图或实物开发板的态矩原理图,才能写程序的阵源。你以为那么简单吗,码单说写程序就写出来啦,片机jdk源码 github你怎么不自己写呢?
使用单片机的源码P1口扩展4*4键盘矩阵,实现在键盘上每按一个数字键用静态显示或动态显
P1.0~P1.3为列线,P1.4~P1.7为行线;列线和行线的单片动态交叉点接按键。先在列线上依次输出1,open linux源码然后再在行线上读取;可根据行线的输入和列线的输出来判定是哪个按键按下。具体的显示部分,应该很简单吧。妹子ui源码
如何在单片机矩阵键盘里按一个键可实现数码管动态显示而不是一个值
#include<reg.h>
#define uchar unsigned char;
uchar distab[]={ 0x3f,0x,0x5b,0x4f,0x,0x6d,0x7d,0x,0x7f,0x6f,0x,0x7c,0x,0x5e,0x,0x,0x}; //0到f
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P1=0x0f; //发0扫描,列线输入
if ((P2 & 0x0f) != 0x0f) //有键按下
{
delay(); //延时去抖动
if ((P1&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行扫描初值
while((sccode&0x)!=0)
{
P1=sccode;
if((P1&0x0f)!=0x0f)
{
recode=(P1&0x0f)|0xf0;
while((P1&0x0f)!=0x0f);//等待键抬起
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x;
}
}
}
return 0; //无键按下,返回0
}
uchar getkey(void)
{
unsigned char key,keyval=0xff;
key=kbscan();
switch(key)
{
case 0x:keyval=1;break;
case 0x:keyval=2;break;
case 0x:keyval=3;break;
case 0x:keyval=;break; //+
case 0x:keyval=4;break;
case 0x:keyval=5;break;
case 0x:keyval=6;break;
case 0x:keyval=;break; //-
case 0x:keyval=7;break;
case 0x:keyval=8;break;
case 0x:keyval=9;break;
case 0x:keyval=;break; //清除
case 0x:keyval=;break;
case 0x:keyval=0;break;
case 0x:keyval=;break; //小数点
case 0x:keyval=;break; //确认
default:keyval=;break;
}
return(keyval);
}
main()
{
uchar keyin;
while(1)
{
keyin=getkey();
P0=distab[keyin];
}
}
单片机数码管动态显示从右往左
这是四位数码管从右从左流动显示,像滚动字幕一样的。用不着矩阵按键哪。其实程序很简单,没那么复杂。程序如下
#include <reg.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={ 0x3f,0x,0x5b,0x4f,0x,0x6d,0x7d,0x,0x7f,0x6f,0x};//共阴段码码,0x为灭
void delay()//延时子程序
{
uint y;
for(y=;y>0;y--);
}
void main()
{
uchar n,x;
while(1)
{
n++;
if(n>)//n为显示一屏显示次数,n大小可调节流动速度
{
n=0;
x++;//从下一个位置开始显示
if(x>8)x=0;
}
}
}
仿真结果