打印

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

[复制链接]
1517|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主





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

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

附件).rar (40.03 KB)

相关帖子

沙发
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 | 只看该作者
谁能帮帮呀

使用特权

评论回复
5
uet_cache| | 2012-12-10 18:32 | 只看该作者
课本上的东西,懒得看啊。没有任何应用价值。
自己看书吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

22

帖子

0

粉丝