失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言编程的电压表设计 简易数字直流电压表的设计(最终版)最新版

c语言编程的电压表设计 简易数字直流电压表的设计(最终版)最新版

时间:2019-04-18 02:34:24

相关推荐

c语言编程的电压表设计 简易数字直流电压表的设计(最终版)最新版

《简易数字直流电压表的设计.doc》由会员分享,可免费在线阅读全文,更多与《简易数字直流电压表的设计(最终版)》相关文档资源请在帮帮文库()数亿文档库存里搜索。

1、可在μs或更短时间内完成转换。TLC每μs重复一次完整的输入转换输出(inutconversionoutut)周期。内部系统时钟和IOCLOCK独立使用且不需要任何特定的速度或二者之间的相位关系。这种独立性简化了器件的硬件和软件控制任务。由于这种独立性和系统时钟的内部产生,控制硬件和软件只需关心利用IO时钟读出先前转换结果和启动转换。内部系统时钟以这种方式驱动转换电路以便控制硬件和软件不需要涉及此项任务。当CS为高电平时,DATAOUT处于高阻状态且IOCLOCK(IO时钟)简易数字直流电压表的设计设计一个简易数字直流电压表。(量程VV、测量速度为大于等于次秒、测量误差在V以内,有超限报警、数码管显示。)模块:系统设计()分析任务要求,写出系统整体设计思路从试题的要求分析,主要包括的内容为ADC转换电路的控制、采用定时器定时读取ADC转换器的数据、将ADC转换器的数据

2、询中断标志的方式来响应的中断,所以主程序要循环完成如下任务:中断标志的查询、AD转换器数据的读取、电压值的换算以及数码管的动态扫描显示。主程序开始初始化变量设置定时器T的参数数码管动态扫描显示TF==?TF=设置TH、姆电阻起限流作用。AD转换器的参考电压由精密基准电源TL提供,标准参考电压Vref+为伏,Vref为伏。由于VV内的测量误差控制在V内,因此位AD转换器即可满足要求。AD转换器TLC是以位开关电容逐次逼近AD转换器为基础而构造的CMOSAD转换器。它们设计成能通过态数据输出和模拟输入与微处理器或外围设备串行接口。TLC仅用输入输出时钟(IOCLOCK)和芯片选择(CS)输入作数据控制。TLC的IOCLOCK输入频率最高可达MHz。TLC提供了片内系统时钟,它通常工作在MHz且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入输出的时序并允许TLC

3、和TLC象许多软件和硬件所要求的IOCLOCK和内部系统时钟一起可以实现高速数据传送以及对于TLC为每秒,次转换的转换速度。TLC的引脚排列分别如图下。如图TLC的引脚排列TLC的工作时序如图所示。图TLC的工作时序转换周期需要个系统时钟周期(最大为μs),它开始于CS变为低电平之后IOCLOCK的第个下降沿,这适用于该时刻其地址存在于存储器中的通道。在CS变为低电平后,最高有效位(A)自动被放置在DATAOUT总线上。其余的位(AA)在前个IOCLOCK下降沿由时钟同步输出。TLC的工作原理TLC是在单个芯片内的完善的数据采集系统。每一个器件包含内部系统时钟,采样和保持,位AD转换器,数据寄存器以及控制逻辑电路。为了提高灵活性和访问速度,器件有两个控制输入:IOCLOCK和芯片选择(CS)。这些控制输入和与TTL兼容的态输出易于与微处理器或小型计算机的串行通信。器件

4、方案及软硬件联合调试方案软件调试方案:伟福软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。在“项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以“*hex”和“*bin”后缀的目标文件。硬件调试方案:在设计平台中,将单片机的P接TLC的CLK管脚,P接TLC的DOUT管脚,P接TLC的CS管脚。在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台上,运行“MCU下载程序”,选择相应的flash数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。模块程序设计晶振:MHz,定时器T每ms中断一次,每隔秒读ADC一次*AD转换器使用TLCC

5、方案及软硬件联合调试方案软件调试方案:伟福软件中,在“文件\新建文件”中,新建C语言源程序文件,编写相应的程序。在“文件\新建项目”的菜单中,新建项目并将C语言源程序文件包括在项目文件中。在“项目\编译”菜单中将C源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以“*hex”和“*bin”后缀的目标文件。硬件调试方案:在设计平台中,将单片机的P接TLC的CLK管脚,P接TLC的DOUT管脚,P接TLC的CS管脚。在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台上,运行“MCU下载程序”,选择相应的flash数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash中。然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。模块程序设计晶振:MHz,定时器T每ms中断一次,每隔秒读ADC一次*AD转换器使用TLCC

6、ockDataoutCS*includequotreghquotincludequotintrinshquotincludequotmathhquotsbitad_clk=P^;sbitad_dout=P^;sbitad_cs=P^;unsignedchardatare_data;unsignedintdataT_cnt;doublevolt,xishu;charcodeled_seg_code[]={xf,x,xb,xf,x,xd,xd,x,xf,xf};led_seg_code[]代表的段码voiddelay(unsignedinti)延时{while(i);}voidled_show(doublef){unsignedchari,s;unsignedintk,*j;if(flt){k=f;取整数部分i=k;P=led_seg_code[i]|x;P=xfb;de

7、sbitad_clk=P^;sbitad_dout=P^;sbitad_cs=P^;unsignedchardatare_data;unsignedintdataT_cnt;doublevolt,xishu;charcodeled_seg_code[]={xf,x,xb,xf,x,xd,xd,x,xf,xf};led_seg_code[]代表的段码voiddelay(unsignedinti)延时{while(i);}voidled_show(doublef){unsignedchari,s;unsignedintk,*j;if(flt){k=f;取整数部分i=k;P=led_seg_code[i]|x;P=xfb;delay();LT_cntlt?YNT_cnt=读取AD转换器数据转换为电压值T_cnt++图数字电压表的主程序流程图()设计系统软件调试方案、硬件调试

8、器TLC的数据unsignedcharreceive_data(){unsignedchari,d;d=;ad_cs=;CS置高,片选无效ad_clk=;ad_cs=;_no_();for(ilt;ilt;i++){ad_clk=;d=dltlt;if(ad_dout){d++;}ad_clk=;}ad_cs=;for(i=;ilt;i++)适当延时超过us_no_();returnd;}main(){T_cnt=;TMOD=x;定时器设置TTH=禁止。正常控制时序为:CS被拉至低电平。当CS变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATAOUT端。前个IOCLOCK周期的下降沿输出前次转换结果的第、第、第和第个最高有效位。在IOCLOCK第个高电平至低电平的跳变之后,片内采样和保持电路开始对模拟输入采样。采样操作主要包括内部电容器充电到模拟输入电压

9、l时序将失去同步。此外,如果CS变为高电平,那么它必须保持高电平直至转换结束为止。否则,CS的有效高电平至低电平跳变将引起复位,它使正在进行的转换失败。在个系统时钟周期发生之前,通过完成步骤至可以启动新的转换,同时正在进行的转换中止。此操作产生先前的转换结果而不是正在进行的转换结果。()分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图软件的任务包括定时器的定时功能、AD转换器TLC的控制与数据的读取,数码管的动态扫描。程序设计思路,采用查询定时器中断标志的方式来启动AD转换器TLC的工作,在读取AD转换器的数据之后,再对数据进行计算换算为对应的电压值。需要分配的单片机存储资源包括AD转换器数据的暂存变量(re_data)、定时器溢出次数的计数变量(T_cnt)、数据换算的系数(xishu)以及电压值(volt)等。主程序的流程图如图所示。由于采用

10、lay();xc;us=(xc)*TL=;EA=;TR=;re_data=x;volt=;xishu=;while(){if(TF==){TF=;TH=xc;us=(xc)*TL=x;if(T_cntlt)T为毫秒溢出一次,每ms读取一次AD转换器数据{T_cnt++;}else{T_cnt=;计时到ms了re_data=receive_data();转换为电压值volt=re_data;volt=volt*xishu;}}led_show(volt);}}i=f*;i=i%;P=led_seg_code[i];P=xfd;delay();i=f*;取小数后位i=i%;P=led_seg_code[i];P=xfe;delay();else超限报警,显示“”{P=x;P=xfb;delay();P=xfd;delay();P=xfe;delay();}}读取ADC转换

11、计算为对应的电压值,最后在数码管上显示出来。整体设计思路:硬件采用单片机的P输出数码管的段码,P口输出数码管的位控信号。用P的三个IO管脚连接ADC转换器的接口,通过查询定时器T中断标志是否有效来启动ADC转换器的工作,并读取ADC转换器的转换结果。然后,根据ADC转换器的参考电压将ADC转换器的转换结果计算为对应的电压值,并在数码管上显示出来。()选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS系列单片机AtS作为主控制器,外围电路器件包括数码管驱动、AD转换器TLC、基准电压TL等。数码管驱动采用个四联共阴极数码管显示,由于单片机驱动能力有限,采用HC作为数码管的驱动。在HC的段码输出线上串联欧姆ockDataoutCS*includequotreghquotincludequotintrinshquotincludequotmathhquot

12、的电平。其后再把三个IOCLOCK周期加至IOCLOCK端,在这些时钟周期的下降沿,第、第和第个转换位被移出。最后(第个)时钟周期被加至IOCLOCK。此时钟周期高电平至低电平的跳变使片内采样和保持电路开始保持功能。保持功能在接着四个内部系统时钟周期内继续进行,在此之后保持功能结束且在下面个系统时钟周期内完成转换,总共为个周期。在第个IOCLOCK周期之后,CS必须变为高电平,否则IOCLOCK必须保持低电平达至少个系统时钟周期以供保持和转换功能的完成。在多个转换周期内CS可保持低电平。在多个转换周期内使CS保持低电平时必须特别注意防止IOCLOCK线上的噪声闪变。如果在IOCLOCK上发生闪变,那么在微处理器控制器和器件之间的IOLT_cntlt?YNT_cnt=读取AD转换器数据转换为电压值T_cnt++图数字电压表的主程序流程图()设计系统软件调试方案、硬件调试

如果觉得《c语言编程的电压表设计 简易数字直流电压表的设计(最终版)最新版》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。