资源简介
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
相关资源
- 在ROS中与其他器件使用十六进制串口
- 串口抓包软件AccesPort
- STM32F407串口IAP
- 51单片机红外遥控风扇
- 精密称重AD7730读写程序,并通过串口
- 基于51单片机音乐播放器
- 51单片机用温度传感器控制直流电机转
- 基于51单片机的密码锁程序
- 51单片机的医院无线护理呼叫系统的设
- 单片机多定时器软件,解决单片机内
- 虚拟串口vuart驱动
- 语音播放WT588D一线串口
- 毕业设计__基于51单片机的公交车自动
- 光电编码器C程序
- 含有串口通讯的LabVIEW万用表上位机
- 基于51单片机的温室大棚温湿度测控系
- 可任意设置非标准波特率的串口调试
- STorM32-BGC串口通讯协议
- ALIENTEK MINISTM32 实验3 串口实验
- 虚拟串口SerialNull V1.7 破解版
- 串口通信的界面交互性的设计与实现
- Atmega128串口485通信
- 串口调试程序485,用于接收发送数据
- linux 串口数据接收 发送
- 基于AT89C2051单片机的智能充电器设计
- 串口通信解决数据乱码和数据丢失
- CC1101的51单片机收发程序
- 基于verilog的串口实现
- 基于51单片机的智能大棚设计
- 51单片机数码管时钟
评论
共有 条评论