cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2002|回复: 2

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

[复制链接]
发表于 2008-8-31 11:22:42 | 显示全部楼层 |阅读模式
我这有0804的转换程序,还是51串口发送程序,哪位大哥可以把二者合一下,使0804转换后的量过能串口发给电脑。
0804转换后LED显示程序
#include<reg51.h>
#include <intrins.h>

sbit smg1=P2^6;
sbit smg2=P2^5;
sbit smg3=P2^4;     //接LCD的前三个指示
#define  uchar unsigned char
#define  uint  unsigned 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[temp/100];                //显示百位
        smg1=0;
    delay(2);
    smg1=1;
/****************************************************/

   smg3=1;
   P0=table[temp%100/10];                //显示十位
   smg2=0;
   delay(2);
   smg2=1;
/****************************************************/
   smg1=1;
   P0=table[temp%10];                //显示个位
   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[a];
}
void main()
{
chushi();
while(1)
{
while(!RI);
RI=0;
a=SBUF;
display();
}
}
 楼主| 发表于 2008-9-5 22:07:07 | 显示全部楼层
自已搞定了,谢谢大家~~~~有用的说一下
发表于 2008-10-10 21:08:12 | 显示全部楼层
谢谢好心的楼主 俺要份可以么 jetaiemamote@yeah.net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-10 09:18 , Processed in 0.538845 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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