普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 8266|回复: 11

奇怪,数码管就是点不亮

 关闭 [复制链接]

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
发表于 2017-10-18 15:43:29 | 显示全部楼层 |阅读模式
HC6800-ES,应该是老版的,带触摸屏!小的12864接口问题,静态数码管(一位)就是点不亮,动态显示0~7可以,看程序与电路,没有看出什么问题


#include<reg51.h>
#define GPIO_DIG P0

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值



void main(void)
{
        LSA=0;
        LSB=0;
        LSC=0;
        while(1)
        {
                GPIO_DIG=DIG_CODE[6];
        }                               
}


请教问题何处?大家遇到的吗?LSA,LSB,LSC的值重新设定,试过了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

8

主题

29

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2017-10-18 16:41:51 | 显示全部楼层
你试试

#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
#define GPIO_DIG P0

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值



void main(void)
{
        LSA=0;
        LSB=0;
        LSC=0;
        while(1)
        {
                GPIO_DIG=DIG_CODE[6];
        }                                
}
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-10-18 16:50:25 | 显示全部楼层
本帖最后由 xzf586 于 2017-10-18 16:52 编辑

谢谢,不过没有看出程序有何不同之处?应该不会亮的
回复 支持 反对

使用道具 举报

8

主题

29

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2017-10-18 16:52:46 | 显示全部楼层
typedef unsigned char u8;
typedef unsigned int u16;
这两个是你的程序没有的
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-10-18 16:59:14 | 显示全部楼层
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
这句话都没有写成
u8 code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
要那两句干什么?
回复 支持 反对

使用道具 举报

8

主题

29

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2017-10-18 17:56:14 | 显示全部楼层
xzf586 发表于 2017-10-18 16:59
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
这句话都没有写 ...

类似宏定义吧,你要不试试,
回复 支持 反对

使用道具 举报

8

主题

29

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2017-10-18 18:01:03 | 显示全部楼层
pzgj 发表于 2017-10-18 17:56
类似宏定义吧,你要不试试,

是啊,不要也可以 ,我试过了,在我的板上能点亮
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-10-18 19:26:05 | 显示全部楼层
pzgj 发表于 2017-10-18 18:01
是啊,不要也可以 ,我试过了,在我的板上能点亮

谢谢,我的有可能是硬件问题,我得仔细检查一下,

typedef unsigned char u8;
typedef unsigned int u16;

这两句是常规变量类型定义,也就是unsigned char 简写成u8,对于这个程序无任何影响
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-10-18 19:30:05 | 显示全部楼层
pzgj 发表于 2017-10-18 17:56
类似宏定义吧,你要不试试,

正好那个按键的加减,是你问的,是不是那种现象?
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-10-18 20:12:04 | 显示全部楼层
void main(void)
{
     unsigned char i;
//        LSA=0;
//        LSB=1;
//        LSC=1;
     
        while(1)
        {               
          for(i=0;i<2;i++)
          {
               P2=0x04+i*4;
               GPIO_DIG=DIG_CODE[6];
               Delay10ms();
          }
        }                                
}
单独亮一个还不行,一定要两个一起亮,只好这样改一下!糊弄,怀疑138问题!性能不良
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-27 08:44 , Processed in 0.106805 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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