adc0809与单片机连接图附程序).pdfVIP

  • 136
  • 0
  • 约1.27千字
  • 约 5页
  • 2021-07-09 发布于湖北
  • 举报
ADC0809 电路图 成品 程序 2008 年 08 月 17 日 星期日 21:13 我为了这个 ADC0809已经痛苦了好几天了,今天终于成功了。算是一个里程碑了。 为了纪念它,把东西发上来。 电路图 PCB图 实物图 程序 #includereg51.h #includeintrins.h sbit 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)

1亿VIP精品文档

相关文档