#include<>#include<>#include<>//-----------------------------------------------------------------------------//16-bitSFRDefinitionsfor'F35x//-----------------------------------------------------------------------------/*需求:1、AD转换,24位精度:、四个按键:K1=P1^4,K2=P1^5,K3=P1^6,K=P1^73、1602液晶屏显示AD值:LCD1602_RS=P0^6,LCD1602_EN=P0^7,DB4=P1^0,DB0=DB5=P1^1,DB6=P1^2,DB7=P1^34、存储(24C02):SDA=P0^0,SCL=P0^1函数:1、voidmain(void)//主函数{while(1){//连续不间断地得到AD值ADZ=(AD值);}}2、voidKeyScan(void){if(K1==0){K1OK=1;}}3、voidT2_ISR(void)interrupt5{//定时器,定时扫描按键,当有按键按下时,显示ADZTF2H=0;KeyScan();if(K1OK==1){K1OK=0;//LCD1602第一行显示字母“ADZ”,第二行显示数字ADZ,24C02存储此值}}*//*****1602高四位LCD1602_RS=P0^6,LCD1602_EN=P0^7,DB4=P1^0,DB5=P1^1,DB6=P1^2,DB7=P1^3AD转换,24位精度:,Verf+接100K可调电阻测试,满量程2500mv四个按键:K1=P1^4,K2=P1^5,K3=P1^6,K=P1^7存储(24C02):SDA=P0^0,SCL=P0^1(和T2扫描按键有冲突,应该实时存储)*****//////////////Routinessfr16ADC0DEC=0x9A;//ADC0DecimationRatioRegistersfr16TMR3RL=0x92;//Timer3reloadregisterssfr16TMR3=0x94;//Timer3counterregisterssfr16TMR2RL=0xCA;//Timer2ReloadRegistersfr16TMR2=;//Timer2RegistersbitSDA=P0^0;//=P0^1;//=P1^4;//四个按键sbitK2=P1^5;sbitK3=P1^6;sbitK4=P1^7;//-----------------------------------------------------------------------------//GlobalCONSTANTS//-----------------------------------------------------------------------------//--------------------------------------------------------------------------------#defineSYSCLK24500000//SYSCLKfrequencyinHz#defineMDCLK2457600//ModulatorclockinHz(idealis//()#defineOWR20//DesiredOutputWordRateinHzADC0输出字速率,最大960#defineBAUDRATE115200//BaudrateofUARTinbps//------------------------------------------------------------------#defineSMB_FREQUENCY50000//TARGetSCLclockrate//Thisexamplesupportsbetween10kHz//and100kHz#defineWRITE0x00//mand#defineREAD0x01//mand#defineEEPROM_ADDR0xA0//DeviceADDressforslavetARGet//Note:ThisADDressisspecified//intheMicrochip24LC02B//datasheet.//SMBusBufferSize#defineSMB_BUFF_SIZE0x08//Definest
基于8051f350的ad转换显示存储程序 来自淘豆网www.taodocs.com转载请标明出处.