找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

为何ad采集的数据无法用液晶显示那?

[复制链接]
admin 发表于 2012-9-2 20:28:23 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

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

×
我送别的数据显示了下,液晶显示正常,我测量了下ad也正常工作,硬件连接没有错误,我找不出程序哪儿错了,希望高手帮我看下,谢谢!
#include<reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

uchar data LCD_Buf[4]; //LCD缓冲区
uchar code ucDigitCode[16]={0x82,0xee,0x43,0x4a,0x2e,0x1a,0x12,0xce,0x02,0x0a}; //0,1,2,3,4,5,6,7,8,9

sbit DI=P1^5; //lcd DI数据引脚
sbit CLK=P1^6; //lcd CLK时钟引脚
sbit startflag=P2^4; // 开始按钮
sbit cs=P3^1; //芯片选择信号,控制芯片的启动和结果读取,低电平有效
sbit rd=P3^6; //读数据控制,低电平有效
sbit wr=P3^7; //AD转换起动控制,上升沿有效
sbit intr=P1^0; //AD转换结束输出低电平
sbit relay=P1^4; //继电器启动信号,高电平有效

void lcdwbit(bit n);
void lcdwd(uchar data1);
void LCDdisplay();
void FillLCDBuffer();
uint readad(void);
uint ad, addata;

unsigned char GetDigitCode(uchar n)
{
if(n>15) n=11;
return ucDigitCode[n];
}

void lcdwbit(bit n)
{
DI = n;
CLK = 1;
CLK = 0;
CLK = 1;
}

void lcdwd(uchar data1)
{
uchar i;
for(i=0;i<8;i++)
{
if((data1&0x80)==0x80) lcdwbit(1);
else lcdwbit(0);
data1<<=1;
}
}

void LCDdisplay()
{
uchar i;
for(i=0;i<4;i++) lcdwd(LCD_Buf[i]);
}

void FillLCDBuffer()
{
uint ivalue;
ivalue=ad;

LCD_Buf[0]=GetDigitCode(ivalue/1000);
LCD_Buf[1]=GetDigitCode((ivalue%1000)/100);
LCD_Buf[2]=GetDigitCode((ivalue%100)/10);
LCD_Buf[3]=GetDigitCode(ivalue%10);

}

uint readad(void)
{
wr=1; //当wr由0→1且cs=0时,AD开始转换号,此时intr设定为高。
rd=1;//当cs 、rd皆为低位时,AD将转换后的数字信号经由DB7 ~ DB0 输出至P0口。
intr=1; //中断请求。转换期间为高,转换完毕时intr会自动变低告知其它的处理单元已转换完成,可读取数字数据
P0=0; //将P0初始化为零
cs=0;
_nop_(); //空操作
wr=0;
wr=1; //WR由低变高时,AD开始转换由低变高时,AD开始转换
while(intr==1); //查询转换结束产生INTR 信号(低电平有效)
rd=0; //读取转换数据结果
_nop_(); //空操作
addata=P0;
rd=1;
cs=1; //读数完毕
return(addata);

}

void main()
{
relay=0;
startflag=1;
while(1)
{

if(startflag==0)
{
relay=1;
readad(); //读取AD
ad=readad();
FillLCDBuffer(); //送显示数据
LCDdisplay(); //液晶显示数据
}
}
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 09:47 , Processed in 0.059052 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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