基于单片机的简易数字直流电压表毕业设计.doc

上传人:仙*** 文档编号:34499615 上传时间:2021-10-21 格式:DOC 页数:8 大小:75KB
收藏 版权申诉 举报 下载
基于单片机的简易数字直流电压表毕业设计.doc_第1页
第1页 / 共8页
基于单片机的简易数字直流电压表毕业设计.doc_第2页
第2页 / 共8页
基于单片机的简易数字直流电压表毕业设计.doc_第3页
第3页 / 共8页
资源描述:

《基于单片机的简易数字直流电压表毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易数字直流电压表毕业设计.doc(8页珍藏版)》请在装配图网上搜索。

1、基于MCS-51单片机的简易数字直流电压表设计设计一个简易数字直流电压表。(量程0V-2V、测量速度为大于等于2 次/秒、测量误差在0.05V以内,有超限报警、数码管显示。)1:系统设计(1)分析任务要求,写出系统整体设计思路从试题的要求分析,主要包括的内容为ADC 转换电路的控制、采用定时器定时读取ADC 转换器的数据、将ADC 转换器的数据计算为对应的电压值,最后在数码管上显示出来。整体设计思路:硬件采用单片机的P0 输出数码管的7 段码,P2 口输出数码管的位控信号。用P1 的三个I/O 管脚连接ADC 转换器的接口,通过查询定时器T0 中断标志是否有效来启动ADC 转换器的工作,并读取

2、ADC 转换器的转换结果。然后,根据ADC 转换器的参考电压将ADC 转换器的转换结果计算为对应的电压值,并在数码管上显示出来。(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51 系列单片机At89S51 作为主控制器,外围电路器件包括数码管驱动、AD 转换器TLC549、基准电压TL431 等。数码管驱动采用2 个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244 作为数码管的驱动。在74HC244 的7 段码输出线上串联100 欧姆电阻起限流作用。AD 转换器的参考电压由精密基准电源TL431 提供,标准参考电压Vref+为2.5 伏, Vref-

3、为0 伏。由于0V-2V 内的测量误差控制在0.05V 内,因此8 位A/D 转换器即可满足要求。AD 转换器TLC549是以8 位开关电容逐次逼近A/D 转换器为基础而构造的CMOS A/D 转换器。它们设计成能通过3态数据输出和模拟输入与微处理器或外围设备串行接口。TLC549 仅用输入/输出时钟(I/O CLOCK)和芯片选择(CS)输入作数据控制。TLC549 的IO CLOCK 输入频率最高可达1.1MHz。TLC549 提供了片内系统时钟,它通常工作在4MHz 且不需要外部元件。片内系统时钟使内部器件的操作独立于串行输入/输出的时序并允许TLC548 和TLC549 象许多软件和硬

4、件所要求的I/O CLOCK 和内部系统时钟一起可以实现高速数据传送以及对于TLC549 为每秒40,000 次转换的转换速度。TLC549 的引脚排列分别如图1。图1 TLC549 的引脚排列TLC549 的工作时序如图2所示。图2 TLC549 的工作时序转换周期需要36 个系统时钟周期(最大为17s),它开始于CS 变为低电平之后I/O CLOCK的第8 个下降沿,这适用于该时刻其地址存在于存储器中的通道。在CS 变为低电平后,最高有效位(A7)自动被放置在DATA OUT 总线上。其余的7 位(A6-A0)在前7 个I/O CLOCK 下降沿由时钟同步输出。TLC549 的工作原理TL

5、C549 是在单个芯片内的完善的数据采集系统。每一个器件包含内部系统时钟,采样和保持,8 位A/D 转换器,数据寄存器以及控制逻辑电路。为了提高灵活性和访问速度,器件有两个控制输入:I/OCLOCK 和芯片选择(CS)。这些控制输入和与TTL 兼容的3 态输出易于与微处理器或小型计算机的串行通信。器件可在17s 或更短时间内完成转换。TLC549 每25s 重复一次完整的输入-转换-输出(input-conversion-output)周期。内部系统时钟和I/OCLOCK 独立使用且不需要任何特定的速度或二者之间的相位关系。这种独立性简化了器件的硬件和软件控制任务。由于这种独立性和系统时钟的内

6、部产生,控制硬件和软件只需关心利用I/O 时钟读出先前转换结果和启动转换。内部系统时钟以这种方式驱动转换电路以便控制硬件和软件不需要涉及此项任务。当CS 为高电平时,DATAOUT 处于高阻状态且I/OCLOCK(I/O 时钟)被禁止。正常控制时序为:1.CS 被拉至低电平。当CS 变为低电平时,前次转换结果的最高有效位(MSB)开始出现在DATAOUT端。2.前4 个I/OCLOCK 周期的下降沿输出前次转换结果的第2、第3、第4 和第5 个最高有效位。在I/OCLOCK 第4 个高电平至低电平的跳变之后,片内采样和保持电路开始对模拟输入采样。采样操作主要包括内部电容器充电到模拟输入电压的电

7、平。3.其后再把三个I/OCLOCK 周期加至I/OCLOCK 端,在这些时钟周期的下降沿,第6、第7 和第8 个转换位被移出。4.最后(第8 个)时钟周期被加至I/OCLOCK。此时钟周期高电平至低电平的跳变使片内采样和保持电路开始保持功能。保持功能在接着四个内部系统时钟周期内继续进行,在此之后保持功能结束且在下面32 个系统时钟周期内完成转换,总共为36 个周期。在第8 个I/OCLOCK 周期之后,CS必须变为高电平,否则I/OCLOCK 必须保持低电平达至少36 个系统时钟周期以供保持和转换功能的完成。在多个转换周期内CS 可保持低电平。在多个转换周期内使CS 保持低电平时必须特别注意

8、防止I/OCLOCK 线上的噪声闪变。如果在I/OCLOCK 上发生闪变,那么在微处理器/控制器和器件之间的I/O 时序将失去同步。此外,如果CS 变为高电平,那么它必须保持高电平直至转换结束为止。否则,CS 的有效高电平至低电平跳变将引起复位,它使正在进行的转换失败。在36 个系统时钟周期发生之前,通过完成步骤1 至4 可以启动新的转换,同时正在进行的转换中止。此操作产生先前的转换结果而不是正在进行的转换结果。(3)分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图软件的任务包括定时器的定时功能、AD 转换器TLC549 的控制与数据的读取,数码管的动态扫描。程序设计思路

9、,采用查询定时器中断标志的方式来启动AD 转换器TLC549 的工作,在读取AD转换器的数据之后,再对数据进行计算换算为对应的电压值。需要分配的单片机存储资源包括AD 转换器数据的暂存变量(re_data)、定时器溢出次数的计数变量(T_cnt)、数据换算的系数(xishu)以及电压值(volt)等。主程序的流程图如图3所示。由于采用查询中断标志的方式来响应的中断,所以主程序要循环完成如下任务:中断标志的查询、AD 转换器数据的读取、电压值的换算以及数码管的动态扫描显示。图3 数字电压表的主程序流程图(4)设计系统软件调试方案、硬件调试方案及软硬件联合调试方案软件调试方案:伟福软件中,在“文件

10、新建文件”中,新建C 语言源程序文件,编写相应的程序。在“文件新建项目”的菜单中,新建项目并将C 语言源程序文件包括在项目文件中。在“项目编译”菜单中将C 源文件编译,检查语法错误及逻辑错误。在编译成功后,产生以“*.hex”和“*.bin” 后缀的目标文件。硬件调试方案:在设计平台中,将单片机的P1.0 接TLC549 的CLK 管脚,P1.1 接TLC549 的DOUT 管脚,P1.2 接TLC549 的CS 管脚。在伟福中将程序文件编译成目标文件后,将下载线安装在实验平台上,运行“MCU 下载程序”,选择相应的flash 数据文件,点击“编程”按钮,将程序文件下载到单片机的Flash 中

11、。然后,上电重新启动单片机,检查所编写的程序是否达到题目的要求,是否全面完整地完成试题的内容。2 程序设计/晶振:11.0592MHz,定时器T0 每50ms 中断一次,每隔0.1 秒读ADC 一次/* AD 转换器使用TLC549p1.0-Clockp1.1-Data outp1.2-CS*/#include reg51.h#include intrins.h#include math.hsbit ad_clk=P10;sbit ad_dout=P11;sbit ad_cs=P12;unsigned char data re_data;unsigned int data T_cnt;doub

12、le volt,xishu;char code led_seg_code10=0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/led_seg_code0-9代表0-9 的7 段码/-void delay(unsigned int i)/延时 while(-i); /-void led_show(double f) unsigned char i,s;unsigned int k,*j;if (f2) k=f;/取整数部分i=k;P0=led_seg_codei | 0x80;P2=0xfb;delay(50);i=f*10;i=i%10

13、;P0=led_seg_codei;P2=0xfd;delay(50);i=f*100; /取小数后1 位i=i%10;P0=led_seg_codei;P2=0xfe;delay(50);else /超限报警,显示“-” P0=0x40;P2=0xfb;delay(50);/-P2=0xfd;delay(50);/-P2=0xfe;delay(50);/-读取ADC 转换器TLC549 的数据-unsigned char receive_data()unsigned char i,d;d=0;ad_cs=1; / /CS 置高,片选无效ad_clk=0;ad_cs=0;_nop_();for

14、(i0;i8;i+) ad_clk=1;d=d1;if (ad_dout) d+;ad_clk=0;ad_cs=1;for(i=0;i10;i+) / 适当延时超过17us_nop_();return d;/-main()T_cnt=0;TMOD=0x01; /定时器设置T0TH0=0x4c; /50000us=(65536-0x4c00)*12/11.0592TL0=00;EA=0;TR0=1;re_data=0x00;volt=0;xishu=2.5/255.0;/-while(1) if(TF0=1) TF0=0;TH0=0x4c; /50000us=(65536-0x4c00)*12/11.0592TL0=0x0;if (T_cnt2) /T0 为50 毫秒溢出一次,每100ms 读取一次AD 转换器数据T_cnt+;else T_cnt=0;/计时到100ms 了re_data=receive_data();/转换为电压值volt=re_data;volt=volt*xishu;led_show(volt); (注:文件素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注。)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!