单片机源程序如下:
- #include "yxxAD0809.h"
- #include "yxxlcd.h"
- #include "yxxkey.h"
- unsigned char AD_DATA_SAVE[4]={0,0,0,0};
- unsigned char AD_P1;
- unsigned int vol;
- extern unsigned char cha_count;
- /*******************************************************************************
- * 函 数 名 : AD0809_init
- * 函数功能 : 初始化AD0809,定时器中断产生时钟信号
- * 输 入 : c
- * 输 出 : 无
- *******************************************************************************/
- void AD0809_init()
- {
- TMOD=0x02;
- TH0=(256-250);
- TL0=(256-250);
- ET0 =1;
- EA = 1;
- TR0=1;
-
- }
- void T0_CLK() interrupt 1
- {
- CLK=~CLK;
- }
- //void channel()
- //{
- // if(mode==0) {SA=0; SB=0; SC=0;onechar(10,0,'1');}
- // else if(mode==1) {SA=0; SB=0; SC=1;onechar(10,0,'2');}
- // else if(mode==2) {SA=0; SB=1; SC=0;onechar(10,0,'3');}
- // else if(mode==3) {SA=0; SB=1; SC=1;onechar(10,0,'4');}
- // else if(mode==4) {SA=1; SB=0; SC=0;onechar(10,0,'5');}
- // else if(mode==5) {SA=1; SB=0; SC=1;onechar(10,0,'6');}
- // else if(mode==6) {SA=1; SB=1; SC=0;onechar(10,0,'7');}
- // else if(mode==7) {SA=1; SB=1; SC=1;onechar(10,0,'8');}
- // else {mode=0; }
- //}
- //void channel1()
- //{
- // switch(mode)
- // {
- // case 0: SA=0; SB=0; SC=0;break;
- // case 1: SA=0; SB=0; SC=1;break;
- // case 2: SA=0; SB=1; SC=0;break;
- // case 3: SA=0; SB=1; SC=1;break;
- // case 4: SA=1; SB=0; SC=0;break;
- // case 5: SA=1; SB=0; SC=1;break;
- // case 6: SA=1; SB=1; SC=0;break;
- // case 7: SA=1; SB=1; SC=1;break;
- // }
- //}
- /*******************************************************************************
- * 作 者 :叶星鑫
- * 学 号 :201536110116
- * 函 数 名 : AD0809_data
- * 函数功能 : 得到采集到的数据
- * 输 入 : c
- * 输 出 : 无
- *******************************************************************************/
- void AD0809_data(unsigned char channel)
- {
- channel=cha_count;
- switch(channel)
- {
- case 0: SA=0; SB=0; SC=0;listchar(10,0,"chn0");break;
- case 1: SA=1; SB=0; SC=0;listchar(10,0,"chn1");break;
- case 2: SA=0; SB=1; SC=0;listchar(10,0,"chn2");break;
- case 3: SA=1; SB=1; SC=0;listchar(10,0,"chn3");break;
- case 4: SA=0; SB=0; SC=1;listchar(10,0,"chn4");break;
- case 5: SA=1; SB=0; SC=1;listchar(10,0,"chn5");break;
- case 6: SA=0; SB=1; SC=1;listchar(10,0,"chn6");break;
- case 7: SA=1; SB=1; SC=1;listchar(10,0,"chn7");break;
- }
- START=0;
- START=1;
- START=0;
- while(!EOC);
- ENABLE=1;
- AD_P1=AD_DATA;
- ENABLE=0;
- vol=AD_P1*196;
- vol=vol/10;
- AD_DATA_SAVE[0]=0x30+vol/1000;//显示个位
- AD_DATA_SAVE[1]=0x30+vol/100%10;
- AD_DATA_SAVE[2]=0x30+vol/10%10;
- AD_DATA_SAVE[3]=0x30+vol%10;
- }
- /*******************************************************************************
- * 函 数 名 : vol_display
- * 函数功能 : 将得到采集到的数据显示出来
- * 输 入 : c
- * 输 出 : 无
- *******************************************************************************/
- void display_vol()
- {
- // write_com(0x01);
- listchar(0,0,"voltage:");
- onechar(3,1,AD_DATA_SAVE[0]);
- onechar(4,1,'.');
-
- onechar(5,1,AD_DATA_SAVE[1]);
- onechar(6,1,AD_DATA_SAVE[2]);
- onechar(7,1,AD_DATA_SAVE[3]);
-
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
AD0809_查询法.zip
(76.46 KB, 下载次数: 13)
|