问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机数码管循环左移 为什么我下面的代码无法实现??

发布网友 发布时间:2022-07-10 07:56

我来回答

3个回答

热心网友 时间:2023-10-13 14:07

用硬件实验,还是用PROTEUS仿真?
最好能提供显示部分的电路图。
现在的显示,究竟是什么样?追问硬件 显示01234567没有变化
有两个74hc573d芯片 一个控制位码 一个控制段吗

追答既然显示函数没有问题,那就仅仅需要改动主函数:
//-----------------------------------
void main(void)
{
uchar i, s, m;
for(m = 0; m < 8; m++) temptable[m] = table[m]; //初始化显示内容.
while(1) {
//--------------------------下面进行移位.
s = temptable[0];
for(i = 0; i < 7; i++) temptable[i] = temptable[i + 1];
temptable[7] = s;
//--------------------------下面显示几百毫秒.
for(i = 0; i < 250; i++) display(0, 8);
}
}
//-------------------------------------

热心网友 时间:2023-10-13 14:08

流水灯按1秒间隔流动,数码管间隔2秒从0到F变化显示
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,num;
sbit la=P2^2;
sbit wela=P2^3;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
num=0;
aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
temp=0xfe;
P1=temp;
la=1;
P0=table[0];
la=0;
wela=1;
P0=0xc0;
wela=0;
while(1)
{
delay(1000);
temp=_crol_(temp,1);
P1=temp;
/*if(aa==40)
{
aa=0;
num++;
if(num==16)
num=0;
la=1;
P0=table[num];
la=0;
}*/
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
if(aa==40)
{
aa=0;
num++;
if(num==16)
num=0;
la=1;
P0=table[num];
la=0;
}
}

数码管同时显示12345678
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,num,numwe;
sbit la=P2^2;
sbit wela=P2^3;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code tablewe[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//void delay(uint z);
void main()
{
num=0;
numwe=0;
aa=0;
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
//delay(1000);
//temp=_crol_(temp,1);
//P1=temp;
if(aa==1)
{
aa=0;
num++;
if(num==9)
num=1;
la=1;
P0=table[num];
la=0;
wela=1;
P0=tablewe[numwe];
wela=0;
numwe++;
if(numwe==8)
numwe=0;
}
}
}
/*
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}*/

void timer0() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
aa++;
}
或者

#include "reg51.h"
void delay() /*延时函数*/
{ int t;
for(t=0; t<0x6000; t++);
}
main()
{
unsigned char i;
for(;;)
{
P1=1; /*P1 口最低位亮*/
for(i=0; i<8; i++)
{
delay();
P1=P1<<1; /*左移*/
}
}
}

热心网友 时间:2023-10-13 14:08

我先看看,明天回复
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
万能粉碎机清洁规程 中药粉碎机如何清洗比较好 磨粉机能用水洗吗 正确的家用粉碎机清洗方法 粉碎机清洗不干净粉碎机怎么清洗才干净 励志语句长句精选123句 caxa如何保存图幅模板 美迪特MDT-IN158重要参数 打玻尿酸已一个月眼睛疼,会不会打玻尿酸一个月,突然眼睛疼会不会... 玻尿酸失明概率真的小吗-玻尿酸失明有光感还能恢复吗 陈华军人物简介 51单片机。用C语言的_crol_()函数实现LED灯循环左移。为什么我的程序只亮一盏灯啊。。。没有循环啊 在51单片机中,用汇编语言,RLC A,为什么左移两位以后,不是两个灯点亮? C语言51单片机左移函数的问题 51单片机不能对端口进行循环左移,简单问题求大神 东莞哪里有塑料颗粒包装机??包装颗粒塑料的 寄居蟹是软体动物吗? 有个小说作者叫什么喵、我忘了全名,只是她写的全是腹黑搞笑小说 跪求卫玛的《必须爱,鉴定完毕》雁芦雪的《夫水难收》五更雨的《门当夫不对》!!! 求《必须爱,鉴定完毕》txt下载 拜托拜托~~ 花火全城热恋系列小说列表 女主叫凌芮的小说! 必须爱,鉴定完毕txt 如何购买正规的,最好的小分子肽?- 问一问 必须爱,鉴定完毕小说txt全集免费下载 必须爱,鉴定完毕的txt全集下载地址 师傅 能给我GSK980TDa广州数控车床仿真软件下载地址吗 谢谢 求Tda式改変-霊梦 广数980tda仿真软件m98m99用不了 有谁用过GSK980TDA 的模拟软件啊,在对刀是输入X值时怎么显示的是输入未允许啊 求圣诞结的钢琴谱!!! 关于51单片机循环左右移用的时候为什么我想做流水灯的时候。我宏定义了a来给LED的IO口赋值。 昆山市城北邮编 昆山邮政编码城北 江苏省苏州市昆山市玉山镇城北望山南路邮编是什么? 江苏省苏州市昆山市玉山镇城北永丰余路永丰余北路邮编是什么? 昆山城北邮政编码 江苏省苏州市昆山市玉山镇城北虹桥路邮编是什么? 昆山城北邮政编码是多少 怎样让老婆全心全意回归家庭?应该怎么做呢? 怎么让自己的老婆回心转意?! 精绝古城21集高清未删减,麻花疼1347684122 求鬼吹灯有声小说,艾宝良版本,无删减版本,最好精绝古城那一部有胡八一祖父跟老鼠抽大烟跟女鬼结婚那段 FINGERCROXX是什么品牌?急需,谢谢 潮牌fingercroxx 这个牌子怎么样,什么档次,为什么穿的人那么少,这个牌子有人说是美国的, fingercroxx的创始人是谁 哪个国家的 洒水车洒水泵坏了该怎样修补? fingercroxx和张震岳是什么关系?这个牌子不是阿岳自己创的吗? 洒水车把车弹坏了 洒水车光坏垫子是怎么回事? 洒水车坏了哪里可以维修?