基于C8051F的简易电压表

基于C8051F的简易电压表

ID:38711547

大小:79.50 KB

页数:6页

时间:2019-06-18

基于C8051F的简易电压表_第1页
基于C8051F的简易电压表_第2页
基于C8051F的简易电压表_第3页
基于C8051F的简易电压表_第4页
基于C8051F的简易电压表_第5页
资源描述:

《基于C8051F的简易电压表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、河南机电高等专科学校《C51程序设计》大作业设计题目:简易电压表(0~3.3V)班级:通技091学号:090413122姓名:成绩:2011年11月1设计任务设计制造一个简易电压表,要求精度0.01V,范围为0~3.3v。测量要反应灵敏,精度要。2电路原理图本次设计采用了电信班的单片机(c8051f410)实验板。原理图如下:3系统流程图单片机C8051F410八位数码管显示驱动CH452电压输入4源程序#include"C8051F410.h"voidPCA_Init()//关闭看门狗{PCA0MD&=~0x40;PCA0MD=0x00;}voidADC_Init()//初始

2、化adc转换{ADC0MX=0x08;ADC0CN=0x80;ADC0TK=0xF7;}voidVoltage_Reference_Init()//设置基准电压{REF0CN=0x18;}voidPort_IO_Init()//初始化I/O口{P1MDIN=0xFE;P1MDOUT=0x20;P2MDOUT=0xFF;P1SKIP=0x01;XBR1=0x40;}voidOscillator_Init()//设置振荡器频率{OSCICN=0x85;}voidInit_Device(void)//初始化函数{PCA_Init();ADC_Init();Voltage_Refere

3、nce_Init();Port_IO_Init();Oscillator_Init();}sbitFMQ=P1^7;//蜂鸣器sbitCH452_SCL=P1^3;sbitCH452_SDA=P1^4;sbitCH452_KEY=P1^5;unsignedchardispbuff[]={0,0,0,0,0,0,0,0};//显示缓冲,初始显示全0unsignedintCMD,DAT,DAT1,j;codeunsignedcharfont[32]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,//012345670xFE,0xF6,0xEE,0

4、x3E,0x9C,0x7A,0x9E,0x8E,//89ABCDEF0xFD,0x61,0xDB,0xF3,0x67,0xB7,0xBF,0xE1,0xFF,0xF7,0x00,0x62,0x02,0x12,0x7C,0x1C};unsignedlongads,AD_I,AD_II,AD_III,AD_IIII;unsignedintadc()//ADC转换函数{AD0BUSY=1;do{}while(AD0INT==0);AD0INT=0;ads=ADC0H*0x0100+ADC0L;return(ads);}voiddelayms(unsignedinti)/*mS延时*/

5、{unsignedintj;do{for(j=0;j!=1000;j++){;}}while(--i);}voiddelayus(void)/*uS延时*/{unsignedintk;for(k=0;k<10;k++){;}}voidtoch452(unsignedintcmda)/*命令、数据送CH452*/{unsignedcharj;CH452_SDA=0;delayus();CH452_SCL=0;delayus();CH452_SCL=1;delayus();CH452_SCL=0;for(j=0;j<16;j++){CH452_SDA=cmda&0x8000;CH4

6、52_SCL=1;delayus();CH452_SCL=0;cmda<<=1;};CH452_SDA=1;delayus();CH452_SCL=1;}main(){unsignedchari;Init_Device();//初始化delayms(100);CMD=0x9103;//设置CH452系统参数toch452(CMD);CMD=0x9500;//设置CH452显示参数toch452(CMD);FMQ=0;//蜂鸣器0不响while(1){for(j=0;j<1024;j++)//循环1024次求AD平均值{AD_I=adc();AD_II=AD_II+AD_I;}A

7、D_III=(AD_II>>10);//1024次求平均值AD_II=0;AD_IIII=((AD_III*3310)/4095);dispbuff[7]=26;//灭dispbuff[6]=30;//Udispbuff[5]=29;//=dispbuff[4]=(AD_IIII/1000)+0x10;dispbuff[3]=(AD_IIII%1000)/100;dispbuff[2]=((AD_IIII%1000)%100)/10;dispbuff[1]=((AD_IIII%1000)%1

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

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

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