【求助】有关51单片机的ADC0832数码管显示问题

[复制链接]
 楼主| hjm200891 发表于 2012-12-9 22:09 | 显示全部楼层 |阅读模式





数据采集不到,但是P1.0 P1.2有闪说明有数据采集,但是数码管不显示
本来这个程序是单片机100例里面的,是ADC0832模数转换与显示(基于LCD1602液晶显示),但是我想用数码管来显示 就改了下 结果没用;且对于0832的数据采集部分没有改动;

程序及仿真图附件中有  
希望大家能帮我看看谢谢



本帖子中包含更多资源

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

×
 楼主| hjm200891 发表于 2012-12-9 22:11 | 显示全部楼层
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define delay4us() {_nop_();_nop_();_nop_();_nop_();}
sbit CS = P1^0;
sbit CLK = P1^1;
sbit DIO = P1^2; uchar Display_Buffer[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b}; void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
uchar Get_AD_Result()
{
uchar i,dat1=0,dat2=0;
CS = 0;
CLK = 0;
DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
CLK = 1;DIO = 1; _nop_(); _nop_();
CLK = 0;DIO = 1; _nop_(); _nop_();
for(i=0;i<8;i++)
{
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
dat1 = dat1 << 1 | DIO;
}
for(i=0;i<8;i++)
{
dat2 = dat2 << ((uchar)(DIO)<<i);
CLK = 1; _nop_(); _nop_();
CLK = 0; _nop_(); _nop_();
}
CS = 1;
return (dat1 == dat2) ? dat1:0;
} void main()
{

uint A,B,C;
uint d;
DelayMS(10);

while(1)
{

d = Get_AD_Result()*500.0/255/100;
A=d/100;
B=d/10%10;
C=d%10;
P2=0x01;
P0=~Display_Buffer[A];

DelayMS(1);
P2=0x02;
P0=~Display_Buffer;

DelayMS(1);
P2=0x04;
P0=~Display_Buffer[C];

DelayMS(1);
}
}
 楼主| hjm200891 发表于 2012-12-9 22:24 | 显示全部楼层

本帖子中包含更多资源

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

×
 楼主| hjm200891 发表于 2012-12-10 17:47 | 显示全部楼层
谁能帮帮呀
uet_cache 发表于 2012-12-10 18:32 | 显示全部楼层
课本上的东西,懒得看啊。没有任何应用价值。
自己看书吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

22

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部