- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ADC0809 电路图 成品 程序
2008年08月17日 星期日 21:13
我为了这个ADC0809已经痛苦了好几天了,今天终于成功了。算是一个里程碑了。
为了纪念它,把东西发上来。
电路图
PCB图
实物图
程序
#includereg51.h#includeintrins.hsbit CLOCK=P2^7; sbit OE=P2^6;sbit START=P2^5;unsigned char _data;
void init(){SM0=0;??? //SM01组合代表8位uart方式,波特率可变SM1=1;REN=1;??? //允许串行接受TH1=0xF3;?? //波特率2400,误差0.12%TL1=0XF3;TMOD=0X20;????? //定时器1工作于8位自动重载模式, 用于产生波特率EA=1;??? //总开关中断方式ET1=0;??? //定时器1 不允许中断ES=1;???? //允许串口中断TR1=1;??? //计时器启动控制位START=0;OE=0;}void wait(unsigned char time) //产生时钟{ unsigned char i,j; for(i=0;itime;i++) ?? for(j=0;j125;j++)?? {CLOCK=0;_nop_();_nop_();_nop_();_nop_();_nop_();?? CLOCK=1;_nop_();_nop_();_nop_();_nop_();_nop_();} }void get()//获取数据{START=1;wait(10);START=0;wait(10);wait(10);OE=1;_data=P0;OE=0;START=0;}void show()//发送到串口与led灯{P1=_data;TI=0; SBUF=_data;??while(!TI);??TI=0;}void main() { unsigned char i;int j=0;init();//初始化while(1){?? P2=0;?? j=0;?? for(i=0;i10;i++)//测10次后显示??? {get();//获得数据????? j+=_data;????? }?? _data=j/10;????? show();//发送数据
原创力文档


文档评论(0)