预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

设计成绩简易数字电压表的设计学号专业年级指导教师2021年12月14日一、概述:CAD是puterAidedDesigi计算机辅助设计)的简称,旨在通过计算机来完成电子线路的设计过程、包括电原理图的编辑、电路功能仿真、工作环境模拟、印制板设计〔包括自动布局、自动布线〕与检测〔包括布线、布局规则的检测和信号完整性分析〕等。二、课程设计的目的1、对protel99软件的全面掌握和熟练运用。2、掌握原理图的绘制。3、学会元件库文件的绘制、保存与应用。4、能区分各种不同的文件和元件的作业。5、电路规则的检查并修改原理图中的错误。6、PCB板的生成。7、设计布线规则并布线。8、生成材料清单。97、印制PCB板和焊接。三、课程设计的要求运用Protel99SE软件绘制出一个由STC15F204EA单片机控制的简易电压表的原理图和PCB板,并将PCB板印制出来做成实物图,使之加载程序后可实现显示测量电压的功能。电路中有1路输入电压,通过STC15F204EA单片机中的A/D转换通道,将电压模拟信号转换为数字信号,结果并按十进制由4位LED灯显示。四、芯片介绍STC15F204EA单片机是宏晶科技推出的新一代超低价A/D转换单片机单片机,1个时钟/机器周期,高速、高可靠,8路10位高速A/D转换。内部高精度R/C时钟,,±1%温飘,彻底省掉外部昂贵的晶振,5MHz~35MHz宽范围可设置。它采用低功耗设计,内部高精度R/C时钟,内部高可靠复位,8级可选复位门槛电压复位,彻底省掉外部复位电路,可测的电压宽度为5.5~3.8V工作频率:5M~35MHz,相当于普通8051:60M~420MHz,含有256字节片内RAM数据存储器,内EEPROM功能,擦写次数10万次以上。8通道,10位高速ADC,速度可达30万次/秒,2路定时器还可当2路PWM或D/A使用,2个16位可重装载定时器。有硬件看门狗,先进的指令集构造,26个通用I/O,串功能可由[P3.0/INT4,P3.结合定时器实现。STC15F204EA管脚图如下:五、硬件设计电压输入彳A/D转换单片机]3由显(示|LED显示,''''简易数字电压表驱动电路原理图如下:PCB图如下:需要的原料清单:实验原理:利用STC15F204EA单片机中的A/D转换通道,将被测的输入模拟量转换为数字量,再对其进展进制的转换与变量别离,使被测电压通过LED显示出来,即完成了要求的简易电压表。六、软件设计程序代码:#include<STC15.h>voiddisplay(void);#defineLed_duanP2//定义各LED灯的连接收脚sbitLedl=P3A7;sbitLed2=P3"6;sbitLed3=P3A5;sbitLed4=P3A4;#defineFull1//为1时表示溢出#defineEmpt0//为0时表示清零UnsignedcharcodeDisp_Tab[]={0*03,0*9f,0*25,0*0d,0*99,0*49,0*41,0*1f,0*01,0*09,0*02};/供阴数码管代码段unsignedcharDisplay_buffer[]={0*3f,0*3f,0*3f,0*3闹始/(LEDunsignedintV_value=0;voiddelay(unsignedint/i/延时函数{unsignedcharj;while(i--)for(j=0;j<115;j++);}unsignedcharflag=0,count=0;voidmain(void){unsignedcharbb=10;IE=0*A0;/允许总中断和串行中断P1ASF=0*01;while(1){ADC_CONTR=0*8a;//A/D转换控制存放器赋值while(bb--){EA=0;关闭中断display();}EA=1;ADC_CONTR=0*8a;}voidAD101(void)interrupt4//u使用串行中断{V_value=ADC_RES;//A/转换结果高8位ADC_CONTR=0*;V_value=V_value*5/255;Display_buffer[0]=Disp_Tab[V_value/1];Display_buffer[1]=Disp_Tab[V_value%1/10];Display_buffer[2]=Disp_Tab[V_value%10];EA=0;}voiddisplay(void)//Led_duan=P2{Led2=Empt;Led_duan=Display_buffer[0]&0*fe;