8个数码管依次左移?

作者&投稿:戢怕 (若有异议请与网页底部的电邮联系)
数码管依次左移实现8个数码管从最右边依次向左显示123456789,一次增加一个数显示,如下,第一~

改好的程序如下;

#include

#include

#define uchar unsigned char

#define unit unsigned int

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9共阳数码管段码表

uchar led[]={1,2,3,4,5,6,7,8};

void delayms(uchar x)

{  unit j;

   for( ;x>0;x--)

   for(j=200;j>0;j--);

}

void display()

{

uchar aa=0x80,j;

for(j=0;j<8;j++)

{

P3=aa;

P0=table[led[j]];

delayms(2)【摘要】
数码管依次左移实现8个数码管从最右边依次向左显示123456789,一次增加一个数显示,如下,第一次显示1,第二次显示12,第三次显示123,依次类推。【提问】
改好的程序如下;

#include

#include

#define uchar unsigned char

#define unit unsigned int

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9共阳数码管段码表

uchar led[]={1,2,3,4,5,6,7,8};

void delayms(uchar x)

{  unit j;

   for( ;x>0;x--)

   for(j=200;j>0;j--);

}

void display()

{

uchar aa=0x80,j;

for(j=0;j<8;j++)

{

P3=aa;

P0=table[led[j]];

delayms(2)【回答】

//PROTEUS对三极管支持不好,这个是不用三极管的程序,仅供参考
//8位共阴数码管间隔0.5S循环左移依次显示 12345678、23456781、34567812 ...
//2012 01 06 更新 E:\DPJ\OTHER\1\8位左移\8位左移-2.C
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar temp;
uchar code tab[ ]={0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F};
bit flag;
void delay(int ms)
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void T0INTinit()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
void disp();
void main()
{
T0INTinit();
temp=0xfe;
while(1)
{
disp();
if(flag)
{
flag=0;
temp=_cror_(temp,1);
}
}
}
void disp()
{
uchar i;
for(i=0;i<8;i++)
{
P0=tab[i];
P2=temp;
delay(1);
P2=0xff;
temp=_crol_(temp,1);
}
}
void T0INT() interrupt 1
{
uchar time;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time==10)
{
time=0;
flag=1;
}
}

用C语言编写8个共阴极数码管从最右边向左依次显示123456789026,一次增加一个数,如第一次显示1,第二次显示12,第三次显示123,依次类推,1秒增加一个数
答:需要给出电路图,就是一个循环输出语句,加上一个定时器


while(1)\/\/主循环 { \/\/1位数码管全部显示 if(irok) \/\/如果接收好了进行...
比如右移显示1234 左移不是变成了4321了 如右移数码管显示正常 你左移还的改变数码管位数的显示顺序 要倒过来显示

数码管程序。前一个程序和后一个程序在定时器设定及以后的程序内容有区...
wela=1; \/\/打开位选 P1=0xff; \/\/将P1口置数11111111全部高电平, 打开8个数码管 wela=0; \/\/关闭位选 dula=1;\/\/打开段选 temp=0xfe; \/\/赋temp值为11111110 ,也就是数码管的a段 P1=temp; \/\/将temp的值赋予给P1口 delay(10); \/\/调用延时程序 while(1) { temp=_crol_(temp,1); \/\/左移一...

单片机如何控制ch452
> 数码管的字数据左移、右移、左循环、右循环。> 各数码管的数字独立闪烁控制,可选快慢两种闪烁速度。> 任意段位寻址,独立控制各个LED 或者各数码管的各个段的亮与灭。> 64 级光柱译码,通过64 个LED 组成的光柱显示光柱值。> 扫描极限控制,支持1 到8 个数码管,只为有效数码管分配扫描时间。...

单片机开发板STC89C52..想要在四个数码管显示自己的学号
rlc al 所有寄存器带标志位左移 rlc all 移动一次寄存器 AHH =09 AH=09 AL=23 ALL=10 ”“”这里在做个子程序 难得写子程序 你自己看懂了就好 从低位寄存器开始 由于的数值低位=1所以子程序做成 低位开始ALL 低位=0 那么写入0A进入 显示子程序将不会显示0A的值 ALL 高位=0 ...

串行数码管模块接口
具体的你可以去查一下595的芯片资料吧,我这里就直接说一下怎么用。准备两个字节的空间,因为这个里面是两个595芯片联级的,先发的一个字节会转到下一级的595芯片里面去,是位选的信号,后面一个字节才是在前级的595芯片,是段选信号,将发送的这个字节带进位的循环左移(或右移,这上你看你的...

89C51单片机的p3口接一个共阳极的数码管
temp = 0x01; \/\/计划先判断P1.0位 for(i = 0; i < 4; i++) { \/\/循环四次 if(!(P1 & temp)) \/\/从P1低四位,截取1位 return (i + j * 4); \/\/返回取得的按键值 temp <<= 1; \/\/判断的位,左移一位 } } return 16; \/\/判断结束,没有键按下,返回16 }...

...按下按键抬起后在多位数码管上将当前显示数字左移一位
void data_l(void) \/\/左移 { uchar i;static keytemp=0;i=kbscan();if(i!=0){ if(!(keytemp==i)){ keytemp=i;Thousand=Hundred; \/\/千位 Hundred=Ten;\/\/百位 Ten=Bits; \/\/十位 Bits=i-1; \/\/个位 } } else keytemp=0;} void display(void)\/\/数码管显示,调试方法...

关于51单片机C语言 数码管 4*4按键 简单的密码锁 请您帮助一下_百度知...
六位数码管依次显示小横杠。 2、更改密码: 只有当开锁(LED亮)后,该功能方可使用。 首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应 的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。 3、重试密码: 当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当...

keil51单片机数码管滚的显示
二.动态数码管的显示(共阴)思路: 建立显存、断码、位码表格,将软件延时部分设计成子函数的结构,在主函数中利用查表的方法来获得相应的位码和段码,这种思路经常用于显示变化的字符。显示的状态(左移动态显示,类似于常见的广告牌)3.原理图(protues仿真图)4.设计方法 在多个...

单片机控制八段数码管时电阻和三极管的选取问题
动态显示就是给管脚abcdefg赋值,控制管脚通断可以左移或者右移,也可赋值。三极管没用过,直接加电阻接单片机管脚就好了。驱动芯片有用74LS47的

天长市18756684324: 选用P1口作为输出口,接8只发光二极管,编程实现使8个发光二极管每隔200ms循环依次左移点亮. -
机霭康诺: #include <reg51.h> #define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1) #define uchar unsigned char //用uchar代替unsigned char方便操作 #define uint unsigned int /*------------------time ms延时函数-----------------*/ void delay_ms(uint ...

天长市18756684324: 51单片机数码管数字左移的程序思路,按一个数字再按一个数字…,数字依次往左移,四个数码管,只取后面 -
机霭康诺: 声明一个变量..显示用%10 /10%10 /100%10 /1000%10 来显示 左移的话就x10 最高位就会被踢出 低位就会补0 这时候你可以把补0位重新赋值

天长市18756684324: 请教各位高手如何用C51编程实现数码管的拉幕式流动(数码管左移,一共有八个数码管)! -
机霭康诺: 以前写过一个类似的:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/36bd7634baa8ba0691ef390a.html

天长市18756684324: c语言和汇编的程序八个LED依次左移逐个点亮,点亮后在依次右移逐个点亮不断循环 -
机霭康诺: C语言 #include<reg51.h> void delay(unsigned int a) {unsigned i,j;for(i=0;i<a;i++)for(j=0;j<1000;j++); } main() {unsigned LED,i;LED = 0xfe;EA = 0;while(1){for(i=0;i<7;i++){delay(100);LED = (LED<<1)|0x01;P3 = LED;}for(i=0;i<7;i++){delay(...

天长市18756684324: 跪求单片机实验四位七段数码管显示程序!!!
机霭康诺:#include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管 uchar code seg[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //位段数据 uchar q...

天长市18756684324: 89c51单片机二极8位数码管每发生一次按键数码管亮,按一次左移一次的编程 -
机霭康诺: 用以为函数就可以了.main() { unsigned char LED; LED = 0xfe; //0xfe = 1111 1110 while(1) { P2 = LED; delayms(250); LED = LED << 1; //循环右移1位,点亮下一个LED "<<"为左移位 if(P2 == 0x00 ) {LED = 0xfe; } // 0xfe = 1111 1110} }

天长市18756684324: 跪求单片机实验四位七段数码管显示程序!!! -
机霭康诺: 我给你一个数码管代码,自己修改:/******************************************************************************** 标题: 伟纳电子ME300B单片机开发系统演示程序 - LED数码管显示1-8 ** 文件: wl004.C ** 日期: 2004-1-5 ** 版本: 1.0 ** 作者: 伟纳...

天长市18756684324: 单片机控制数码管显示1~6,并且从左向右移动.请大侠给个程序或者程序思路,急用,谢谢了,非常感谢!!1 -
机霭康诺: 用查表法,八个数码管,表格里面前面八个数据全部为灭,假如移动速度为100ms,那么每隔100ms往后面查数,第一个100ms时,得到的值全是灭的值,第二个100ms时查到第九个数0,就会显示在最左边的数码管上,然后依次类推,就会看到移动的效果

天长市18756684324: 设计一个4位数码管显示电路,编程使8从右到左显示一遍用C语言? -
机霭康诺: 这个 采用动态扫描方式就可以了 节省IO口,也可以使用按键和数码管管理芯片(比如zlg的)通过IIC通讯赋值.

天长市18756684324: 51单片机C语言,求解IO口如何同时输出... -
机霭康诺: 1、每一次调用移位子函数,数码管变化子函数,子函数只做一次变化,即子函数只操作p0,p2口一次; 2、变量放在子函数外; 3、子函数中不要有延时,p0,p2口操作后使用; 4、移位子函数是8次一轮回,数码管变化子函数是16次一轮回,所以“移位”2回“变化”一回; 5、只要应用好调用与延时,就可有多种变化显示; 6、p0; p2; 延时1; p2; 延时1;一轮回8次,同时完成.

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