#include<reg51.h>
void main()
{
unsigned char shuma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int i,j;
P0=0x00;
for(i=0;i<50000;i++);
while(1)
{
for(j=0;j<10;j++)
{
P0=~shuma[j];
for(i=0;i<50000;i++);
if(j==10){j=0;}
}
}
在这个程序中,P0=~shuma[j]; 为什么要取反,求告知
先上数码管的引脚图
首先,数码管的原理是,给数码管的某段加一个合适的电压,该段就会发亮。七段式数码管有七段加一点(DP),这种数码管有两种,一种是共阳极,这种接低电平时亮,另一种就是共阴极,就是楼主用的这种,通高电平亮。
数码管左边的引脚从上至下依次是接a,b,c,d,e,f,g,dp。要让数码管显示数字,就是需要指定部分亮,比如0,就是需要a,b,c,d,e,f这六段亮,也就是P0.0~P0.5为1,即P0=00111111=0x3f,而现在shuma[0]=0xc0是用来点亮0的,这两个是取反的关系,即~0xc0=0x3f,你当然可以直接设置shuma[0]=0x3f,就不需要取反了。至于为何要这样做呢,统计不亮的段比较方便,毕竟不亮的少嘛,也许只是习惯问题。
怎样让led数码管显示0~9
1、TAB:DB3FH,06H,5BH,4FH;0-3DB66H,6DH,7DH,07H;4-7DB7FH,6FH,77H,7CH;8-BDB39H,5EH,79H,71H;C-F编码规则:a-dp分别对应0-7,小数点dp默认是低电平。2、比如0是要让a,b,c,d,e,f段亮。输入的显示码为(h段为高位)11000000B十六进制为0C0H,同样一到九...
一位数码管循环显示0到9实验程序
while(1) {uchar b; P20=0; P0=tab[b]; delay_ms(1000);\/\/1s延时 b++; if(b==10) b=0; } }扩展资料: 数码管原理 数码管常用段数一般为7段有的另加一个小数点,还有一种数码管是类似于3位“+1”型。数码管位数有半位,1,2,3,4,5,6,8,10位等。数码管根据LED的接法不同分为共阴和共阳...
单数码管循环怎么显示0到9?
0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }数组中的10个值依次赋给P2,依次显示0--9的数字,即当led = 0时,P2接受0xC0,对应数码显示0,当led = 1时,P2接受LED_CODE[1]=0xF9,对应显示1,依次类推,从而显示0--9。
LED数码管显示0-9的含义是什么?
Led[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} 这些就代表0-9,为什么呢?数码分为7段式(7个发光二级管)和8段式(8个发光二级管)的,而二极管的亮灭对应0x3F的一位(1或0),为0时灭,1为亮;比如 0x3f 就是 0b00111111 那么他对应的数码管的最外面一圈的...
PLC如何控制数码管显示0~9???
设计用PLC控制数码管循环显示数字0-9,控制要求如下(1)按下启动按钮后,数码管从0开始显示,1s后显示1,再过1s后显示2,…,显示9,1s后再重新屏示0.如此循环。(2)当按下停止孩钮后,数码管烟灭。7数码营实际上是由7只发光二极管组成,要显示0-9数字,首先确定数字与7只发光管(即PC的输出控制点)的...
用完整的汇编语言编写使数码管循环显示0,1,2,3,4,5,6,7,8,9的程序
程序如下:\/ 用P0口输出到数码管显示0-9 编写:jzy23 交流:paulucy@126.com \/ include<reg52.h> define uint unsigned int define uchar unsigned char \/ 共阴数码管显示码 \/ uchar code display[10]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };\/ 延时函数 功...
单片机数码管显示0到9
define uint16 unsigned int define uchar unsigned char uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(){ uint16 i=1000;while(i--);} void main(){ uchar n ;P2=0xfe;P1=0xff;while(1){ if(k1==0){ if(n>=9) n=0;else...
单支数码管循环显示0-9数码管不显示是什么原因
单支数码管循环显示0-9数码管不显示是共阳极。用C语言编写程序实现51单片机控制1只数码管,循环显0~9。并用仿真软件仿真出实验结果。
共阳极数码管显示0~9对应的段码
其段码为0xC0、0x0xF9等。共阳极数码管的字形码0-9分别为:0xC0、0x0xF9、0xA4、0xB0、0x99、0x92、0x82、0xF8、0x80、0x90。可通过判断出是共阴还是共阳之后,判断Yo-Y7分别对应数码管的哪一位来确定段选。
显示一个数码管0-9
要让数码管显示数字,就是需要指定部分亮,比如0,就是需要a,b,c,d,e,f这六段亮,也就是P0.0~P0.5为1,即P0=00111111=0x3f,而现在shuma[0]=0xc0是用来点亮0的,这两个是取反的关系,即~0xc0=0x3f,你当然可以直接设置shuma[0]=0x3f,就不需要取反了。至于为何要这样做呢,统计不亮...