《基于51单片机的AD0809转换.docx》由会员分享,可在线阅读,更多相关《基于51单片机的AD0809转换.docx(3页珍藏版)》请在优知文库上搜索。
1、1、软件部分程序#includereg51.h#include,absacc.h#defineCOUNT5000#defineAINOXBYTE0x0000/定义夕卜部地力I:sbitEoC=P37;转换结束信号unsignedcharLED_seg=0x3f,0x06,0x5b,0x4f,0x66z0x6d,0x7d,0x07,0x7f,0x6f;/unsignedcharYLED_seg=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfdz0xf7,0xff,0xef;unsignedcharLED-bit4=0x01z0x02,0x04,0x08;unsignedcha
2、rLED-buf3=0;/fosc=11.0592MHz,9600bps串口初始化函数960ObPSvoidSbufJnit(VOid)(SCON=050;10位方式波特率设置PCON=OxOO;波特率不倍增TMOD=(TMOD&OxOf)1020Tl方式2THl=Oxfd;/Tl计数初值TLl=Oxfd;/ES=IjEA=I;串口中断使能TRl=I;启动定时器)voidTOJSR(void)interrupt1(staticunsignedchari=0;THO=(65536-COUNT)256;TLO=(65536-COUNT)%256;if(i=2)显示小数点(P2=LED-biti;先
3、送位码PI=LED_segLED_bufi10x80;再送段码;0x80对应的是段码口的dp位)else(P2=-LED_biti;先送位码Pl=LED_segLED_bufi;再送段码)i+;if(i=3)i=0;)voidTimerOJnit(Void)(TMOD=(TMOD&OxfO)IOXO1;定时器0为工作方式1THO=(65536-COUNT)56;装初值高八位TLO=(65536-CoUNT)%256;低八位ETO=1;开定时器0中断EA=I;开总中断TRo=1;启动定时器0)voiddelay(unsignedintn)(unsignedinti;for(i=0;in;i+)v
4、oidmain(void)(unsignedinti=O,ad,pre_ad=O;TimerO_lnit();SbufJnitf);while(l)(AINO=O;启动转换i=i;i=i;delay(20);WhiIe(EOC=O);等待AD转换结束ad=AINO;读AD转换结果if(ad!=pre_ad)(ad=ad乃1;8位A/D转换精度为lZ225*5V=19.6mVLED_buf2=(ad*100/51)/100;LED,bufl=(ad*10051)0%10;LED_buf0=(ad*100/51)%10;)pre_ad=ad;2、硬件部分仿真图复位电急口2OInl为最高位ADeMO9不能仿真.可用ADOO网代H9H共哪数码青CC先编出位码再编出段码