资源简介

51单片机控制ADC0809芯片读取外界环境信号,并把采样得到的数据发送到串口显示。

资源截图

代码片段和文件信息

//---------------------------------------------------------------
//与串口通信
//file_name: 小白.c
//文件描述:
//摘要:数据的采集和向上位机发送数据
//当前版本号:V1.0
//修改日期:
//起草日期 2012-5-19
//---------------------------------------------------------------
#include
#include 
#define uchar unsigned char 
#define uint unsigned int
#define PI 3.14
sbit ADD_A = P1^0;
sbit ADD_B = P1^1;
sbit ADD_C = P1^2;
sbit START = P1^4;
sbit EOC = P1^5;
sbit OE = P1^6;
sbit CLK = P1^7;
sbit Key = P3^7;

uchar getdata;

uchar flag_serialtemp;
enum STATE
{
sample = 0
triangle
pulse
sin_wave
}state;

unsigned char code SIN[256]={   0x800x830x860x890x8D0x900x930x96
0x990x9C0x9F0xA20xA50xA80xAB0xAE
0xB10xB40xB70xBA0xBC0xBF0xC20xC5
0xC70xCA0xCC0xCF0xD10xD40xD60xD8
0xDA0xDD0xDF0xE10xE30xE50xE70xE9
0xEA0xEC0xEE0xEF0xF10xF20xF40xF5
0xF60xF70xF80xF90xFA0xFB0xFC0xFD
0xFD0xFE0xFF0xFF0xFF0xFF0xFF0xFF
0xFF0xFF0xFF0xFF0xFF0xFF0xFE0xFD
0xFD0xFC0xFB0xFA0xF90xF80xF70xF6
0xF50xF40xF20xF10xEF0xEE0xEC0xEA
0xE90xE70xE50xE30xE10xDE0xDD0xDA
0xD80xD60xD40xD10xCF0xCC0xCA0xC7
0xC50xC20xBF0xBC0xBA0xB70xB40xB1
0xAE0xAB0xA80xA50xA20x9F0x9C0x99
0x960x930x900x8D0x890x860x830x80
0x800x7C0x790x780x720x6F0x6C0x69
0x660x630x600x5D0x5A0x570x550x51
0x4E0x4C0x480x450x430x400x3D0x3A
0x380x350x330x300x2E0x2B0x290x27
0x250x220x200x1E0x1C0x1A0x180x16
0x150x130x110x100x0E0x0D0x0B0x0A
0x090x080x070x060x050x040x030x02
0x020x020x020x010x010x010x010x01
0x010x010x010x010x010x020x020x02
0x020x030x040x050x060x070x080x09
0x0A0x0B0x0D0x0E0x100x110x130x15
0x160x180x1A0x1C0x1E0x200x220x25
0x270x290x2B0x2E0x300x330x350x38
0x3A0x3D0x400x430x450x480x4C0x4E
0x510x550x570x5A0x5D0x600x630x66
0x690x6C0x6F0x720x760x790x7C0x80};




void delay_ms(uint t)
{
 uint xy;
 for(x = t;x > 0;x--)
  for(y = 110;y > 0;y--);
}

void Key_Scan()
{
if(Key == 0)
{
delay_ms(20);
if(Key == 0)
{
while(!Key);
switch(state)
{
case sample:
state =  triangle;
break;
case triangle:
state =  pulse;
break;
case pulse:
state =  sin_wave;
break;
case sin_wave:
state =  sample;
break;
default:
state =  sample;
break;
}
}
}
}
void Serial_Init()
{
TMOD=0x22;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;

TH0=(256-40);
   TL0=(256-40);
ET0 =1;
TR0=1;


TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void Serial_Send(unsigned char dat)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      93446  2012-05-25 16:36  0809串口打印\ADC0809模数转换与显示.DSN

     文件        795  2012-05-26 23:27  0809串口打印\ADC0809模数转换与显示.PWI

     文件      93391  2012-05-23 19:52  0809串口打印\ADC0809模数转换与显示_low_version.DSN

     文件        795  2012-05-23 19:53  0809串口打印\ADC0809模数转换与显示_low_version.PWI

     文件      93395  2012-05-25 15:59  0809串口打印\Last Loaded ADC0809模数转换与显示.DBK

     文件       6376  2005-03-22 15:22  0809串口打印\STARTUP.A51

     文件      14049  2012-05-27 12:53  0809串口打印\STARTUP.LST

     文件        749  2012-05-27 12:53  0809串口打印\STARTUP.OBJ

     文件       4868  2012-05-27 12:53  0809串口打印\Text1.c

     文件      15017  2012-05-27 12:53  0809串口打印\Text1.LST

     文件      10215  2012-05-27 12:53  0809串口打印\Text1.OBJ

     文件       9538  2012-05-27 12:53  0809串口打印\小白

     文件       2005  2012-05-27 12:53  0809串口打印\小白.hex

     文件         57  2012-05-27 12:53  0809串口打印\小白.lnp

     文件      14646  2012-05-27 12:53  0809串口打印\小白.M51

     文件       1040  2012-05-27 12:54  0809串口打印\小白.Opt

     文件        598  2012-05-27 12:54  0809串口打印\小白.plg

     文件       2213  2012-05-20 23:13  0809串口打印\小白.Uv2

    .......      1041  2012-05-27 12:49  0809串口打印\小白_Opt.Bak

    .......      2209  2012-05-20 09:49  0809串口打印\小白_Uv2.Bak

     目录          0  2012-05-28 13:43  0809串口打印

----------- ---------  ---------- -----  ----

               366443                    21


评论

共有 条评论