STC12C5A60S2.AD转换用数码管显示.docx

STC12C5A60S2.AD转换用数码管显示.docx

ID:53280279

大小:13.81 KB

页数:3页

时间:2020-04-02

STC12C5A60S2.AD转换用数码管显示.docx_第1页
STC12C5A60S2.AD转换用数码管显示.docx_第2页
STC12C5A60S2.AD转换用数码管显示.docx_第3页
资源描述:

《STC12C5A60S2.AD转换用数码管显示.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include"stc12c5a.h"#include"stdio.h"#include"intrins.h"//------------------------------------------------------------------------------voidAD_init();voidserial_init();voiddelay(unsignedinta);floatAD_work(unsignedcharchannel);unsignedintAD_get(unsignedcharc

2、hannel);voidchu(long);unsignedcharcodetable[]={0x06,0x7e,0x25,0x64,0x5c,0xc4,0x84,0x76,0x04,0x44};//带点的0-9,由于我的数码管连法不一样所以代码不一样unsignedcharcodetable1[]={0x02,0x7a,0x21,0x60,0x58,0xc0,0x80,0x72,0x00,0x40};//不带点unsignedcharshi,ge,fen1;longR;sbitfeng=P0^1;sbitj

3、i=P0^7;sbitdian=P0^6;//------------------------------------------------------------------------------voiddisplay(){shi=R/1000;ge=R%1000/100;fen1=R%100/10;P2=0X08;P3=table[ge];delay(5);P2=0X04;P3=table[fen1];delay(5);P2=0X02;P3=table1[shi];delay(5);}voidmain

4、(){chark;intb=0;P0=0X00;AD_init();//A/D转换初始化serial_init();//串口初始化while(1){unsignedchari;i=0;//P10口,i=n则是P1n口TI=1;chu(AD_work(i));if(b!=0)R=b;for(k=100;k>0;k--)//使用printf函数前须先将发送标志位TI置1display();TI=0;if((R>=8000)&(R<=8500)){b=R;P0=0XF2;delay(200);P0=0xf0;del

5、ay(200);}if((R>=6000)&(R<=6500)){b=R;P0=0XF2;delay(200);P0=0xf0;delay(200);}}}//------------------------------------------------------------------------------unsignedintAD_get(unsignedcharchannel){ADC_CONTR=0x88

6、channel;//开启AD转换10001000即POWERSPEED1SPEED0ADC

7、_FLAGADC_STARTCHS2CHS1CHS0_nop_();_nop_();_nop_();_nop_();//要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR寄存器while(!(ADC_CONTR&0x10));//等待转换完成ADC_CONTR&=0xe7;//关闭AD转换,ADC_FLAG位由软件清0return(ADC_RES*4+ADC_RESL);//返回AD转换完成的10位数据(16进制)}//------------------------------------

8、------------------------------------------floatAD_work(unsignedcharchannel){doubleAD_val,AD_vale;//定义处理后的数值AD_val为浮点数unsignedchari;for(i=0;i<100;i++)AD_val+=AD_get(channel);//转换100次求平均值(提高精度)AD_val/=100;AD_vale=(AD_val*5000)/1024;//AD的参考电压是单片机上的5v,所以乘5000,实

9、际电压值为N,就乘NX1000;returnAD_vale;}voidchu(longa){R=a;}//------------------------------------------------------------------------------voiddelay(unsignedinta)//延时约1ms{unsignedinti;while(--a!=0)for(i=600;i>

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。