革命家 发表于 2008-8-31 11:22:42

adc0804+51+RS232外传求教。C写的

我这有0804的转换程序,还是51串口发送程序,哪位大哥可以把二者合一下,使0804转换后的量过能串口发给电脑。
0804转换后LED显示程序
#include<reg51.h>
#include <intrins.h>

sbit smg1=P2^6;
sbit smg2=P2^5;
sbit smg3=P2^4;   //接LCD的前三个指示
#defineuchar unsigned char
#defineuintunsigned int
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
                     
//{ 192,249,164,176,153,146,130,248,128,144}
/*************ad控制管脚定义*******************************/
sbit cs=P3^3;
sbit wr=P3^5;
sbit rd=P3^4;

void delay(uint count)      //delay
{
uint i;
while(count)
{
    i=200;
    while(i>0)
    i--;
    count--;
}
}
/*************读AD0804子程序*******************************/
unsigned char adc0804( void )   //读AD0804子程序
{   unsigned char addata,i;
        rd=1;wr=1;//int1=1; //读ADC0804前准备
        P1=0xff;         //P1全部置一准备
        cs=0;wr=0;wr=1; //启动ADC0804开始测电压
        rd=0;   //开始读转换后数据
        i=i; i=i;    //无意义语句,用于延时等待ADC0804读数完毕
        addata=P1;//读出的数据赋与addate
        rd=1;cs=1;//读数完毕
return(addata);//返回最后读出的数据
}

void display(int temp)                        //显示程序
{
/****************************************************/   
    smg3=1;
        smg2=1;
    delay(2);
    P0=table;                //显示百位
        smg1=0;
    delay(2);
    smg1=1;
/****************************************************/

   smg3=1;
   P0=table;                //显示十位
   smg2=0;
   delay(2);
   smg2=1;
/****************************************************/
   smg1=1;
   P0=table;                //显示个位
   smg3=0;
   delay(2);
   smg3=1;
/****************************************************/
}
void main()
{
while(1) display(adc0804());
}
串口发送字符串程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define shuju P0
#define bus P1
#define lcdbus P3
sbit wei=P2^2;
uchar a;
uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
void chushi()
{
TMOD=0x20;
SCON=0x50;
TH1=0xfA;
TL1=0xfA;
PCON=0x80;
TR1=1;
EA=1;
ES=0;
RI=0;
TI=0;
}
void display()
{
wei=0;
shuju=tab;
}
void main()
{
chushi();
while(1)
{
while(!RI);
RI=0;
a=SBUF;
display();
}
}

革命家 发表于 2008-9-5 22:07:07

自已搞定了,谢谢大家~~~~有用的说一下

amote 发表于 2008-10-10 21:08:12

谢谢好心的楼主 俺要份可以么 jetaiemamote@yeah.net
页: [1]
查看完整版本: adc0804+51+RS232外传求教。C写的