资源简介
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
相关资源
- Modbus协议官方文档中、英文全
- 易语言OTG串口通信
- delphi 串口通讯
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- STM32蓝牙和串口程序
- LCD显示温度+串口接收温度.rar
- WPF USB 网络 串口 通信软件
- 51单片机PWM程序,占空比、周期可调整
- DELPHI与西门子200PLC的串口通信实例
- 单片机和adc0809数字电压表
- Verilog FPGA UART串口控制器
- 51单片机多功能自行车测速仪
- USB转串口驱动,FT232R驱动程序,最新
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- 51单片机控制舵机程序
- PC 串口调试软件
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 单片机与PC机串口通讯仿真
- 串口调试助手V5.0
- 双串口调试助手 V4.0 _ 可同时调试两个
- 读取串口数据并画实时曲线的VC 程序
评论
共有 条评论