8255数码管显示c语言,用单片机+8255A驱动数码管显示的这个程序哪里有错误?

有没有大佬能帮忙看下

e652c4fdeff1ba56d46939d93655d3ad.png

单片机源程序如下:

#include

#include

#define uint unsigned int

#define uchar unsigned char

#define DATA P1

#define PA     XBYTE[0xBcFF]

#define PB     XBYTE[0xBdFF]

#define PC     XBYTE[0xBeFF]

#define COM    XBYTE[0xBFFF]

sbit OE  = P2^5;

sbit EOC = P3^3;

sbit ST  = P2^7;

sbit C1  = P3^0;

sbit C2  = P3^1;

sbit C3  = P3^2;

uint display_data = 0;  /*显示数据*/

uchar code LEDData[]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

};

void DelayMS(uint ms)

{

uchar i;

while(ms--)

{

for(i=0;i<120;i++);

}

}

void Display_Result(uint d)

{

P2 = 0xf7;

PB = LEDData[d%10];

DelayMS(5);

P2 = 0xfb;

PB = LEDData[d%100/10];

DelayMS(5);

P2 = 0xfd;

PB = (LEDData[d%1000/100]| 0x80);

DelayMS(5);

P2 = 0xfe;

PC = LEDData[d/1000];

DelayMS(5);

}

void main()

{

COM =0X80;

C1  = 1;

C2  = 1;

C3  = 0;

while(1)

{

ST = 0;

ST = 1;

ST = 0;

while(EOC == 0);

OE = 1;

display_data = ((8.0/255) * DATA) * 1000;

Display_Result(display_data);

OE = 0;

}

}

图里面的开关本来是想要控制PB口的,全为1就输出,否则就不输出(但还没写程序)。

目的是做一个数模转换的C语言显示,必须要用8255驱动数码管,所以这有点迷茫。

95d1098ed7cbcc93a3c84393e0bd5f5e.gif

2021-3-16 19:07 上传

点击文件名下载附件

30.48 KB, 下载次数: 2

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值