原创 VT_TFT8060 VT_TFT6448 显示AD数据

2009-5-6 16:22 1940 1 2 分类: MCU/ 嵌入式

如果只用这种LCD智能显示终端显示AD值那就真是大才小用,白浪费了,


其实这里用于显示只是为了测试方便,在产品中可把AD结合用,AD只是小部份一个功能


费白少说了,开始说学习过程吧`


ac8f91f2d6f95f73342acc57.jpg

AD用的是PCF8591,包函有AD和DA功能~,让我最大感触的就是~在用内部晶振时EXT 12脚改须接地,还测会受干扰非常大,或者直接用不了,我在这花了好多时间呢~另外就是当单用一个通信时,指令选择是正确的,如通道1即是0x40,通道4则时0x43,而两个通道以上一起用就不一样了,指令要向后推一个周期,如我四条通道一起用,则第1通道0x41,第四通道即是0x40了,会不一样.


PCF8591是IIC总线通信,IIC通信我就不说了,都玩透啦~直接说主代码吧


bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val)
{
   Start_I2c();              //启动总线
   SendByte(sla);            //发送器件地址
   if(ack==0)return(0);
   //delay(1);
   SendByte(c);              //发送控制字节
   if(ack==0)return(0);
   //delay(1);
   SendByte(Val);            //发送DAC的数值
   if(ack==0)return(0);
   Stop_I2c();               //结束总线
   return(1);
}


/*******************************************************************
ADC发送字节[命令]数据函数              
*******************************************************************/
bit ISendByte(unsigned char sla,unsigned char c)
{
   Start_I2c();              //启动总线
   SendByte(sla);            //发送器件地址
   if(ack==0)return(0);
   //delay(5);    //增加延时2ms
   SendByte(c);              //发送数据
   if(ack==0)return(0);
   //delay(5);   //增加延时2ms
   Stop_I2c();               //结束总线
   return(1);
}


/*******************************************************************
ADC读字节数据函数              
*******************************************************************/
unsigned char IRcvByte(unsigned char sla)
{ unsigned char c;


   Start_I2c();          //启动总线
   SendByte(sla+1);      //发送器件地址
   if(ack==0)return(0);
   //delay(5); //增加延时2ms
   c="RcvByte"();          //读取数据0
   //delay(5); //增加延时2ms
   Ack_I2c(1);           //发送非就答位
  
   Stop_I2c();           //结束总线
   return(c);
}


在main函数则可直接搞用


void main(void)
{
uchar i;
AUXR = 0x02; //禁止内部RAM


IT1 = 0;         //外部中断1为电平触发方式。   
EA=1;            //全局中断使能,(EA=0,关全局中断;EA=1,开全局中断)
EX1 = 1;          //外部中断使能置1,允许外部中断
CS0 = 0;
PINT = 1;
  
Fcolor = 0x0;
//Bcolor = 0xff;//白色背影
Bcolor = 0xdb;//原背影图片颜色做背景
i = 0;
P1=0x00;
P2=0xFF;
while(!(i == 0xF0))
{
   i = Read_Byte();
}
P2=0x00;
Lcd_Clr();     //清除全屏。
    DIS_BMP(0,0,0);//(x,y,图1)显示位图子程序
DIS_String(100,68,"广州微嵌计算机科技有限公司");
DIS_String(100,68+16,"AD1:");
DIS_String(100,68+32,"AD2:");
DIS_String(100,68+48,"AD3:");
DIS_String(100,68+62,"AD4:");
while(1)
{
   switch(AD_CHANNEL)
   {
   case 0:
    ISendByte(PCF8591,0x41);


    D[0]=IRcvByte(PCF8591)*2; //ADC2 模数转换1
    break;
   case 1:  
   ISendByte(PCF8591,0x42);
    D[1]=IRcvByte(PCF8591)*2; //ADC2 模数转换2
    break;
   case 2:
    ISendByte(PCF8591,0x43);
    D[2]=IRcvByte(PCF8591)*2; //ADC2 模数转换3
    break;
   case 3:
   ISendByte(PCF8591,0x40);
    D[3]=IRcvByte(PCF8591)*2; //ADC2 模数转换4
    break;
   default:
   break;
   }
   
    //delay(5); //增加延时2ms
   DACconversion(PCF8591,0x40, D[2]/4); //DAC   数模转换
   if(++AD_CHANNEL>3)
   AD_CHANNEL=0;
   DIS_Value(100+80,68+16,D[0],3);
   DIS_Value(100+80,68+32,D[1],3);
   DIS_Value(100+80,68+48,D[2],3);
   DIS_Value(100+80,68+62,D[3],3);
}
}



广州市微嵌计算机科技有限公司 
http://www.qxlcd.com/
Email:zhqf@qxlcd.com 
地  址: 广州科学城彩频路11号广东软件园B栋301M室
联系人:张权锋 电话:020-32206277 传真:020-62824100

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户297006 2010-4-30 10:18

看了芯片资料和这个通道好像对不上啊? 通道0时,控制号不是01000000(0x40)吗怎么会是0x41?谢谢 switch(AD_CHANNEL) { case 0: ISendByte(PCF8591,0x41); D[0]=IRcvByte(PCF8591)*2; //ADC2 模数转换1 break; case 1: ISendByte(PCF8591,0x42); D[1]=IRcvByte(PCF8591)*2; //ADC2 模数转换2 break; case 2: ISendByte(PCF8591,0x43); D[2]=IRcvByte(PCF8591)*2; //ADC2 模数转换3 break; case 3: ISendByte(PCF8591,0x40); D[3]=IRcvByte(PCF8591)*2; //ADC2 模数转换4 break; default: break; }
相关推荐阅读
用户206355 2009-05-06 16:26
单片机控制液晶显示器
 单片机控制液晶显示器、单片机控制工业显示器、智能液晶显示器,不同的名字同一样的产品~都是一块利用串口或打印机并口发送简单指令就可控制的显示器,包含触摸功能,是人机界面产品的明智选择。        ...
用户206355 2009-05-06 16:25
单片机控制液晶屏 并口通信
根据上原理图的接法:P0.0~P0.7是数据传输线,也可理解不地址线P3.6、P3.7分别为片外写读信号线,P3.1接CS:为片外部RAM片选P3.2为显示器触摸信号线(作标志用)P3.3作外部中断用...
用户206355 2009-05-06 16:24
微处理器控制液晶显示器
在微处理器系统包括(MCS-51、C8051F、AVR、PIC、MPS430、DSP、部分工业用的ARM)使用LCD 液晶显示器设计一般比较麻烦。特别对于大点阵或者彩色的LCD设计更加困难。     ...
用户206355 2009-05-06 16:17
工业WINCE单板电脑,LCD一体化电脑
工业WINCE单板电脑,LCD一体化电脑玩了一段时间VT_TFT8060、VT_TFT6448智能液晶显示器感觉很好,在工业应用真的非常方便,现开始了解一下工业WINCE单板电脑,LCD一体化电脑,再...
我要评论
1
1
关闭 站长推荐上一条 /4 下一条