完整的单片机AD采样程序(6页).doc

上传人:1595****071 文档编号:35958866 上传时间:2022-08-24 格式:DOC 页数:6 大小:25.50KB
返回 下载 相关 举报
完整的单片机AD采样程序(6页).doc_第1页
第1页 / 共6页
完整的单片机AD采样程序(6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《完整的单片机AD采样程序(6页).doc》由会员分享,可在线阅读,更多相关《完整的单片机AD采样程序(6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-#include #include #include/*-*/ #define uint unsigned int#define uchar unsigned char#define ADCOM XBYTE 0x4000/*AD574启动地址*/#define ADHI XBYTE 0x4002/*AD574高8位地址*/#define ADLO XBYTE 0x4003/*AD574低4位地址*/uchar code slave_addr4=00, 01, 02, 255; /*从机地址*/*-*/void ini_ad(void); /*初始化硬件函数*/void average_sen

2、d(void); /*求均值与发送函数*/void check_addr(void); /*地址核对*/*-*/uint * data_ad_ori_pt; /*数据保存指针*/uint data_ad_ori16;/*-*/uchar bdata sample_s, test_s0, test_s1;/*test_s0, test_s1可以不用,是测试位*/sbit sample_permit=sample_s0;sbit average_permit=sample_s1;sbit address_true=sample_s2;sbit empty_pin=sample_s3;sbit cm

3、d_in_permit=sample_s4; /*允许主机命令输入标志位*/sbit test_bit1=sample_s5;/*P1.0、P1.1、P1.2在硬件上已经作AD输入线选择口*/sbit P1_3=P13;/*作串口输出信号的使能口, P1_0=0时接通串口,输出信号*/sbit P3_4=P34;/*测试位,可选*/sbit WD=P17; /*看门狗*/uchar data j,k,data_avr_no;uchar key_in, done_no;/*done_no为用到*/uint sample_no,AD_finished_no;/*其实可以用uchar格式,记录采样次

4、数和AD完成次数*/main() P1=0xf9;/*采样通道设置为1通道*/WD=1; /*看门狗先为1,电平翻转为喂狗*/test_s0=0;test_s1=0;data_ad_ori_pt=data_ad_ori; /*指针指向数组*/sample_s=0; /*有点定义重复的意思?*/sample_permit=0; /*不允许采样标志*/average_permit=0; /*不允许求均值标志*/address_true=0;empty_pin=0;cmd_in_permit=0;test_bit1=0;P1_3=1;/*开机时需要关断,串口发送功能,需要时再接通*/P3_4=0;d

5、one_no=0;sample_no=1; /*需要采样的次数*/AD_finished_no=0; /*AD完成采样的次数*/data_avr_no=0;j=0;k=0;for(j=0;j=15;j+)data_ad_orij=0x00;data_ad_ori0=0x00; /*这一步有些重复*/j=0;ini_ad();doif(address_true=1) address_true=0;check_addr();while(sample_permit=1)if(average_permit=1)average_send();if (AD_finished_no=sample_no) A

6、D_finished_no=0;sample_permit=0; /*完成数据传送后,才恢复为恢复为多机模式,SM2=1*/SM2=1;data_ad_ori_pt=data_ad_ori;average_permit=0;else if(average_permit!=1) /这里有问题?ADCOM=0; WD=!WD; /*MAX813喂狗*/ while(1);void interserial (void) interrupt 4 using 2 /*串口0中断服务子程序*/ key_in=0;if(RI) key_in=SBUF; RI=0;if (SM2=1) /*SM2=1,必须有

7、RB8=1串口才中断*/ /*SM2=1,为多机模式, 接收主机地址*/ /*接收到的字节为地址*/ /*接收的地址与本机地址比较,判断是否一致*/if(key_in=slave_addr0) /*确认地址完毕,设置SM2=0,进入单机模式*/SM2=0;address_true=1;if (SM2=0)& (RB8=0)/*SM2=0,RB8=1或RB8=0串口都中断*/*SM2=0,为单机模式, 接收主机数据*/*接收到的字节为数据*/*接收主机指令完毕,必须在从机完成任务后,才恢复为多机模式,设置SM2=1*/if(key_in=0xff)SM2=1; /*接收主机命令,使从机设置为多机

8、模式*/if (key_in=0xfe) /*接收主机命令,使从机开始采样*/cmd_in_permit=1;if (cmd_in_permit=1)&(key_in=0xde) /*接收主机命令,使从机开始采样*/cmd_in_permit=0; sample_permit=1; WD=!WD; /*MAX813喂狗*/void interint0(void) interrupt 0 using 1 /*外部中断0服务子程序*/ uint ad_hl,k0; ad_hl=(uint)(ADHI4);*data_ad_ori_pt=(ad_hl&0x0fff);data_ad_ori_pt+;

9、for(k0=0;k0=100;k0+) _nop_(); /*定义采样时间间隔?微秒*/data_avr_no+;if(data_avr_no=11)data_avr_no=0;average_permit=1;WD=!WD; /*MAX813喂狗*/ void average_send(void) uchar j1,average_no, i;uint ad_hl,ad_h,ad_l, avg, sum;uint *pt3;average_no=10; /*需要平均的AD采样数据个数*/sum=0;for(j1=1;j18);ad_l=(uchar)(avg&0x00ff);test_s0

10、=ad_h;test_s1=ad_l;pt3=data_ad_ori;P1_3=0;for(i=0;i=20;i+) _nop_(); SBUF=ad_h;do while(TI=0); TI=0;SBUF=ad_l;do while(TI=0); TI=0;P1_3=1;for(i=0;i=20;i+) _nop_(); AD_finished_no+;WD=!WD; /*MAX813喂狗*/void check_addr(void) uchar i=0;P1_3=0;for(i=0;i=20;i+) _nop_(); SBUF=slave_addr0;/*发送地址核对成功,发送从机地址给主

11、机*/do while(TI=0); TI=0;P1_3=1;for(i=0;i=20;i+) _nop_(); WD=!WD; /*MAX813喂狗*/void ini_ad(void) TMOD = 0x21;/*T0设定为方式1,16位;T1设定为方式2,8位,常数自动装入*/TH1=0xfd;/*TH1 用于设置波特率, 9.6kB/s*/TL1=0xfd;/*TL1 用于设置波特率, 9.6kB/s*/PCON=0x00;/*波特率不加倍*/SCON = 0xd0; /*SCON 工作方式3, 允许发送*/SM2=1;/*多机通信, 发送第9位1 */*初始化时,需设置从机的SM2l,根据运行要求在程序子函数中设置SM20*/IP=0x10; /*优先级别,串口为高优先级*/EA=1;EX0=1; /*允许INT0中断*/ES=1; /*允许串口中断*/IT0=1; /*INT0为边沿触发*/TR1=1; /* TCON 启动定时器1*/WD=!WD; /*MAX813喂狗*/-第 6 页-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁