欢迎来到天天文库
浏览记录
ID:52680086
大小:42.00 KB
页数:6页
时间:2020-03-29
《完整的单片机AD采样程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include/*-----------------------------------------------------*/#defineuintunsignedint#defineucharunsignedchar#defineADCOMXBYTE[0x4000]/*AD574启动地址*/#defineADHIXBYTE[0x4002]/*AD574高8位地址*/#defineADLOXBYTE[0x4003]/*AD
2、574低4位地址*/ucharcodeslave_addr[4]={00,01,02,255};/*从机地址*//*-----------------------------------------------------*/voidini_ad(void);/*初始化硬件函数*/voidaverage_send(void);/*求均值与发送函数*/voidcheck_addr(void);/*地址核对*//*-----------------------------------------------------*
3、/uint*data_ad_ori_pt;/*数据保存指针*/uintdata_ad_ori[16];/*-----------------------------------------------------*/ucharbdatasample_s,test_s0,test_s1;/*test_s0,test_s1可以不用,是测试位*/sbitsample_permit=sample_s^0;sbitaverage_permit=sample_s^1;sbitaddress_true=sample_s^2;sbi
4、tempty_pin=sample_s^3;sbitcmd_in_permit=sample_s^4;/*允许主机命令输入标志位*/sbittest_bit1=sample_s^5;/*P1.0、P1.1、P1.2在硬件上已经作AD输入线选择口*/sbitP1_3=P1^3;/*作串口输出信号的使能口,P1_0=0时接通串口,输出信号*/sbitP3_4=P3^4;/*测试位,可选*/sbitWD=P1^7;/*看门狗*/uchardataj,k,data_avr_no;ucharkey_in,done_no;/*d
5、one_no为用到*/uintsample_no,AD_finished_no;/*其实可以用uchar格式,记录采样次数和AD完成次数*/main()6{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;/*不允许求均值标志*/
6、address_true=0;empty_pin=0;cmd_in_permit=0;test_bit1=0;P1_3=1;/*开机时需要关断,串口发送功能,需要时再接通*/P3_4=0;done_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_ori[j]=0x00;}data_ad_ori[0]=0x00;/*这一步有些重复*/j=0;ini_ad(
7、);do{if(address_true==1){address_true=0;check_addr();}while(sample_permit==1){if(average_permit==1){average_send();6if(AD_finished_no==sample_no){AD_finished_no=0;sample_permit=0;/*完成数据传送后,才恢复为恢复为多机模式,SM2=1*/SM2=1;}data_ad_ori_pt=data_ad_ori;average_permit=0;}e
8、lse{if(average_permit!=1){//这里有问题?ADCOM=0;}}}WD=!WD;/*MAX813喂狗*/}while(1);}voidinterserial(void)interrupt4using2/*串口0中断服务子程序*/{key_in=0;if(RI){key_in=SBUF;RI=0;if(SM2==1){/*
此文档下载收益归作者所有