① 单片机C51编程(C语言):实现学号的显示(学号是10位数字)
你用什么驱动数码管呢?
不同的驱动,程序写法不同。
如果直接用I/O口驱动,8位数码管就这样写:
wei=位选
an=段选
//断码表
uchar
code
shuzi[12]={0xc0,0xf9,0xa4,0xb0,0x99,//0,1,2,3,4,
0x92,0x82,0xf8,0x80,0x90,//5,6,7,8,9,
0x00,0xff};
void
led_scan(void)
{
uchar
i,j;//共阳数码管
wei=0xff;
j=0x01;
for(i=0;i<8;i++)
{
an=shuzi[i];
wei=!j;
delay(200);
j<<=1
;
}
wei=0xff;
}
② 51单片机编写lcd1602显示程序,第一行显示自己的姓名,第二行显示学号
1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。
③ 51单片机怎么让数码管显示学号用汇编语言
数码管连接电路如图1所示,P0口输出码型,P2口输出位选。锁存器74HC573起驱动作用,提供驱动电流供数码管发光。译码器74HC138将位选地址转换成位选信号,例如当前是第5个数码管显示,那么P2口输出位选地址05H,译码器输入CBA=110,输出位选信号Y7-Y0=11101111,其中Y5=0,第5个数码管选通并显示,其它数码管不显示。实验时将J6的左边两个引脚针(1和2)用跳冒连接,锁存器11脚接VCC,关闭锁存功能。
数码管显示方式为动态扫描方式,当P0口送绝搏第一个数0的码型到锁存器时,P2送位选地址01H,即Y0=0,只有第一个数码管亮,宏宏枯显示0,其他数码管不显示。当P0口送第二个数1的码型到锁存器时,P2送位选地址02H,即Y1=0,只有第二个数码管亮,显示1,其他数码管不显示。即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉蔽洞的暂留现象,看到的却好象全都点亮着,这就是动态扫描。
数码管显示数字的码型由数码管的数据脚a~dp决定,图2为数码管的笔段分布图,由于是共阴极的,所以当a~dp为高电平时相应的笔段会亮,电路中P1.0~P1.7分别接数码管的a.b.c.d.e.f.g.dp,得到0~9这10个数字的码型如表1所示。
图2数码管的笔段分布图
引脚 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1P0.0数字码型
笔段 dp g f e d c ba
0 0 1 1 1 1 11 03FH
0 0 0 0 0 1 10 106H
0 1 0 1 1 0 11 25BH
0 1 0 0 1 1 11 34FH
0 1 1 0 0 1 10 466H
0 1 1 0 1 1 01 56DH
0 1 1 1 1 1 01 67DH
0 0 0 0 0 1 11 707H
0 1 1 1 1 1 11 87FH
0 1 1 0 1 1 11 96FH
1 0 0 0 0 0 00 小数点80H
只要把上面的相关数,改成学好就可以了。