一位数码管循环显示0到9实验程序

作者&投稿:英丹 (若有异议请与网页底部的电邮联系)
~

具体程序如下:

#include <reg51.h>

#define uchar unsigned char 

sbit P20=P2^0;

void delay_ms(unsigned int ms) //1ms延时

{

uchar a;

while(ms--)

for(a=123;a>0;a--);

}

uchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,

0x6D,0x7D,0x07,0x7F,0x6F};

void main()

{

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的接法不同分为共阴和共阳两类,了解数码管的这些特性,数码管对编程是很重要的。

因为不同类型的数码管,除了数码管的硬件电路有差异外,数码管编程方法也是不同的。数码管的发光原理是一样的,只是数码管的电源极性不同而已。

数码管颜色有红,绿,蓝,黄等几种。数码管广泛用于仪表,时钟,车站,家电等场合。选用数码管时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用数码管内部引脚图片。

数码管引脚定义每一笔划都是对应数码管一个字母表示数码管DP是小数点。数码管透过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是数码管动态驱动。每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应。

尽管实际上各位数码管并非同时点亮LED数码管,但只要数码管扫描的速度足够快,数码管给人的印象就是一组稳定的显示资料,数码管不会有闪烁感,数码管动态显示的效果和静态显示是一样的,数码管能够节省大量的I/O口,而且数码管功耗更低。




数码管循环显示0-9,当外部中断0来时,数码管停止循环,点亮led灯,编译无...
include<reg51.h> define uint unsigned int define uchar unsigned char bit k = 1;uchar code duan[16] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};sbit led = P2^0;void delay(uint z){ uint x;ucha...

在任意一个数码管上循环显示0到9,每显示一个数字后,蜂鸣响一次, 单片机...
include<reg51.h> define uchar unsigned char uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};sbit speaker=P2^0;void delay()\/\/延时约400毫秒 { uchar i,j;for(i=0;i<200;i++)for(j=0;j<250;j++);} main(){ uchar i,times=0;TMOD=0x01;TH0=(65536-...

51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
include<reg51.h> sbit k1=P1^0;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...

...显示数码管0~9,开始成功了,可是循环几次后一直闪烁显示0,这是为 ...
在面包板上接电路,那肯定是不稳定的,很多导线都是插到面包板上的,接触不好也不牢固,稍不注意碰到了就掉了。要用面包板搭个临时电路还勉强,但每一条导线都要插牢了。

我这程序是让数码管连续从9显示到0(相当于一直倒数数),但他只显示一次...
unsigned int n;---0~65535 for(n = 9; n >= 0; n--) \/\/n >= 0;的条件永远满足 无论减去多少次,都是大于等于零。改成:for(n=9;n != 65535; n--)试试看。

单片机 两位数码管显示,使用两位数码管显示器,循环显示两位数0-99
;共阴动态显示 P0接段控,P1接位控,P3接按键输入 ;P0口接键盘扫描接口,P1口接数码管接口段控,P2口低四位接位控 ;DIR :MOV R0,#00H MOV DPTR,#TAB MOV R4,#100 DIR4:MOV R3,#0feH MOV R2,,02H DIR1:CJNE R2,#01,DIR2 MOV A,R0 MOV B,#0AH DIV AB SJMP DIR3 DIR2...

51单片机 让数码管自动显示0至9的C程序。有没有比这个更简单的...
数组代码如下:chara[10]={0xff,0x3,0x9f,0x25,0xd,0x99,0x49,0x41,0x1f,0x1,0x9};三、设置数码管显示循环 数码管显示循环可以不用编写一次又一次的数码管显示代码,既方便又简洁。具体代码如下:for(int i=0;i<10;i++){ P0=a[i];delay();} ...

...数码管为共阴极,循环显示0-9,时间间隔1S,自编延时子程序。
利用8255设计一位7段LED数码显示电路,数码管为共阴极,循环显示0-9,时间间隔1S,自编延时子程序。 10 急,谢谢大家了~ 匿名 | 浏览6850 次 |举报 我有更好的答案推荐于2017-12-16 11:03:52 最佳答案 为方便起见,令数据,PORT1 POR2分别为,I\/O口PA,PB的地址PA连八盏灯,PB只连两盏AGAIN:MOV AL,01H...

单片机数码管从0到9的显示并循环的原理图
这个原理图很简单的。比如这个:

单片机c程序不懂 如图是单只数码管循环显示0~9 i=(i+1)%10;是什么意思...
就是i+1然后除以10 得到余数,这样i就能在0~9一直循环了 当i=9的时候 再运行i+1,这样等于10,再余10 就能回到0.

襄樊市19220299398: 单个数码管循环显示0到9的程序. -
东方俊贝西: 主函数中的P2 = LED_CODE[led];led++;可以删去,没有任何的意义 ,因为定时和循环显示都在中断函数里面完成了,主函数只是起了一个初始化的作用,led++影响LED_CODE[led]的值,它使LED_CODE[10] = { 0xC0,0xF9,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.

襄樊市19220299398: 数码管静态显示.使实验板上的一个数码管循环显示0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F -
东方俊贝西:[答案] 子程序为延迟,用for循环就可以实现.主程序中控制每一次子程序调用后输出的值依次对应0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F就行了

襄樊市19220299398: 汇编语言 数码管显示0 - 9.每个数字闪烁三次,再显示下一个数字,如此循环.求程序,, -
东方俊贝西: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R0,#0 MOV R1,#3LOOP:MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR MOV P1,A LCALL DELAY MOV P1,#00H LCALL DELAY DJNZ R1,LOOP INC R0 MOV R1,#3 ...

襄樊市19220299398: AT98C51单片机数码管显示0.0秒到9.9秒循环计时C语言程序 -
东方俊贝西: #include<reg51.h>#define uchar unsigned char uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9 unsigned char times=0,sec=0,sec01,scanled; unsigned char disdat[2]; void dischg() { disdat[0]=sec01; disdat[1]=sec; } ...

襄樊市19220299398: 通过8051单片机,在p1口接一位数码管,让数码管从0显示到9,循环显示.试画出AT89S51与外设的连接图 -
东方俊贝西: 这是一个十进制计数器,但是只循环显示0~9,显示位数可以设定,按键按下,开始循环.#include #define uchar unsigned char#define uint unsigned int#define dispseg P0#define dispbit P2#define disnum 3 uchar dispp[disnum],TimeCount,...

襄樊市19220299398: 急!!!求单只数码管循环显示0~9的代码解释,数码管是共阳极的.万分感谢!!! -
东方俊贝西: #include//单片机寄存器相关的文件 #include//具有空指令的文件 #define uchar unsigned char//宏定义 以后用uchar替代unsigned char #define uint unsigned int //宏定义作用同上 uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,...

襄樊市19220299398: 实现一个循环显示程序.循环显示数字0到9,更新周期为0.5秒 -
东方俊贝西: //用LED数码显示器循环显示数字0~9 #include<reg52.h> // 包含51单片机寄存器定义的头文件 /************************************************** 函数功能:延时函数,延时一段时间 ***************************************************/ void delay(void) { ...

襄樊市19220299398: 编程控制LED数码管循环显示0 - 9 -
东方俊贝西: 可以采用15点显示的,接P1.0~P2.4 15个点分别编号 以便记忆,例如15个灯全亮 00H 全灭7FFFH 根据1灭0亮 用二进制表示 再转换成16进制的输入到程序中 0-9显示的问题解决了下面就是循环的问题这个程序应该可以做出来吧做不出来也不要紧1个灯1个灯亮然后全灭的实验做过吧就那个程序段就可以套用了记得要加做延时程序段否则看不出效果的如果么看懂再问,现在有点忙,一会把程序段给你弄下,啊嗯嗯,简单就这些

襄樊市19220299398: 用完整的汇编语言编写使数码管循环显示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 /*********************** 共阴...

襄樊市19220299398: 用单片机实现一位数码管循环显示'0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0',当按一个按键后就停止循环,只显示一个数字 -
东方俊贝西: 用单片机实现一位数码管循环显示'0-1-2-3-4-5-6-7-8-9-0',当按一个按键后就停止循环,只显示一个数字

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网