找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2795|回复: 9
收起左侧

单片机八位数码管仿真不亮啊 求指导

[复制链接]
ID:974245 发表于 2021-10-22 22:09 | 显示全部楼层 |阅读模式
屏幕截图 2021-10-22 220755.png
单片机代码如下:
#include <reg51.h>
sfr LED=0xA0;
void delay(int time);
unsigned char code LED_SUM[8]={0x02,0x10,0x21,0x30,0x40,0x54,0x60,0x78};
void main(){
        unsigned char i=8;
        while(i--){
                LED=LED_SUM[i ];
                delay(10);
        }
}

void delay(int time){
        unsigned char j;
        for(time;time>=0;time--)
                for(j=125;j>0;j--)
                        {;}
}

回复

使用道具 举报

ID:332444 发表于 2021-10-23 08:35 | 显示全部楼层
LED=LED_SUM【?】;
回复

使用道具 举报

ID:882573 发表于 2021-10-23 10:51 | 显示全部楼层
你这……随便问几句,while(i--)i==0时,程序会不会跑飞,没有位选设置,你准备让哪个数码管亮,LED=LED_SUM一个有初值,一个是数组吗?这俩能画等号吗?LED若是准备用于段选的变量,LED=LED_SUM[i];才对吧
回复

使用道具 举报

ID:974245 发表于 2021-10-23 12:45 | 显示全部楼层

少写了东西我再试试
回复

使用道具 举报

ID:974245 发表于 2021-10-23 12:48 | 显示全部楼层
天涯仗剑 发表于 2021-10-23 10:51
你这……随便问几句,while(i--)i==0时,程序会不会跑飞,没有位选设置,你准备让哪个数码管亮,LED=LED_SU ...

高四位用来段选,低四位用来位选
回复

使用道具 举报

ID:974245 发表于 2021-10-23 13:01 | 显示全部楼层
写错了一个地方:LED=LED_SUM[i ];
回复

使用道具 举报

ID:974245 发表于 2021-10-23 13:02 | 显示全部楼层

LED=LED_SUM【i】,谢谢啊
回复

使用道具 举报

ID:213173 发表于 2021-10-23 13:25 | 显示全部楼层
无标题.jpg
  1. #include <reg51.H>

  2. void main()
  3. {
  4.         unsigned char L,H;
  5.         unsigned int i;
  6.         while(1)
  7.         {
  8.                 H++;
  9.                 if(H>=8)
  10.                         H=0;
  11.                 L++;
  12.                 if(L>=8)
  13.                         L=0;
  14.                 P2=H<<4|L;
  15.                 i=500;
  16.                 while(i--);//延时
  17.         }
  18. }
复制代码



回复

使用道具 举报

ID:974245 发表于 2021-10-23 14:51 | 显示全部楼层
1.png

我可以了,38译码器的错误,代码小改,也可以了,代码可以成功运行。谢谢大家的帮助
  1. #include <reg51.h>
  2. sfr LED=0xA0;
  3. void delay(int time);
  4. unsigned char code LED_SUM[8]={0x01,0x12,0x23,0x34,0x45,0x56,0x67,0x78};
  5. void main(){
  6.         unsigned char i=8;
  7.         while(i--){
  8.                 LED=LED_SUM[i];
  9.                 delay(10);
  10.         }
  11.        

  12. }
  13. void delay(int time){
  14.         unsigned char j;
  15.         for(time;time>=0;time--)
  16.                 for(j=125;j>0;j--)
  17.                         {;}
  18. }
复制代码



回复

使用道具 举报

ID:974245 发表于 2021-10-23 14:52 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表