电阻可变式电压表 单片机课设Word格式.docx
- 文档编号:17535050
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:11
- 大小:198.75KB
电阻可变式电压表 单片机课设Word格式.docx
《电阻可变式电压表 单片机课设Word格式.docx》由会员分享,可在线阅读,更多相关《电阻可变式电压表 单片机课设Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
6.2软件调试11
七.设计心得12
八.参考文献13
一.设计要求
1.1设计要求
有液晶显示当前电压,能够根据可调电阻改变电压的大小。
1.2设计目的
掌握A/D转换芯片ADC0809与单片机的接口方法及ADC0809芯片性能;
了解单片机实现数据采集的方法。
用单片机和A/D转换芯片,将模拟电压量转换成数字电压量,用LED位数码管显示电压数值。
二.设计方案与论证
2.1设计思路
由一个滑动变阻器和电源组成一个电阻可调式电压表,通过阻值的变化使电压表输出不同的数值。
2.2总体方案
本设计是编写一段程序,通过ADC0809实现单片机对模拟输入通道电压的采集,使采集到的数据显示在数码管上。
把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用导线分别连接到电阻排的2~9号管脚,电阻排的1号管脚连接电源。
再把LED上的ABCDEFG管脚分别连到P0.0/AD0-P0.7/AD7端口,1234管脚连到单片机的P2.0/A8~P2.3/A11端口。
(2)ADC0808芯片的OUT1~OUT8管脚连到AT89C51的P3.0~P3.7管脚,CLOCK连P1.3,START连P1.2,EOC连P1.1,OE连P1.0,滑动变阻器连IN0口。
(3)AT89C51的RET管脚接单片机的总复位电路
2.3总体框图
三.设计原理及电路图(设计原理及流程图)
3.1软件设计
3.1.1软件环境
Proteus不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
整个软件通过C语言编程,先在KeilC51集成开发环境下将编好的程序进行编译、调试,调试通过后会生成ADC.HEX文件。
此软件具有以下特点:
智能原理图设计、完善的电路仿真功能、单片机协同仿真功能、丰富的元件库资源。
点击界面中的P进入仿真元件库,将电路中的所有元件从元器件库中调出来,放到绘图区,布局并设置好参数,然后连接导线。
此仿真电路利用AT89C51单片机控制ADC0809模数转换芯片的读写信号,通过调节可变电阻RV1的值,改变输入模拟电压,经ADC0809转换成数字信号输出,由LED显示。
下图分别为Proteus编辑界面、器件选择对话框
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
3.1.2软件原理
运行Proteus模拟仿真软件,打开已经绘制好的仿真电路原理图,选中单片机AT89C51,左键点击AT89C51,出现对应的对话框,在programfile中找到编译好的ADC.HEX文件,然后点OK进行仿真,点击模拟调试按钮的运行按钮,进入调试状态,通过改变可变电阻R的值,可以看到对应的数字信号在LED上显示。
3.1.3软件流程图
3.2硬件设计
3.2.1硬件原理
(1)AT89C51:
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(2)LED显示:
实现八段数码管的显示三位十六进制数。
来进行倒计时,即来限制抢答的时间。
本次课程设计选用的是共阴极的八段数码管,实现LED的动态显示,动态显示的电路要求:
动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共端COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
(3)A/D转换电路:
A/D转换器的功能是把模拟量变换成数字量。
由于实现这种转换的工作原理和采用工艺技术不同,因此生产出种类繁多的A/D转换芯片。
A/D转换器按分辨率分为4位。
6位。
8位。
10位。
14位。
16位和bcd码的31/2位。
51/2位等。
按照转换速度可分为超高速(转换时间≤330ns),次超高速(330~3.3μs),高速(转换时间3.3~333μs),低速(转换时间>330μs)等。
A/D转换器按照转换原理可分为直接A/D转换器和间接A/D转换器。
所谓直接A/D转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。
其中逐次逼近型A/D转换器,易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化A/D芯片采用逐次逼近型者多;
间接A/D转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。
其中积分型A/D转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。
有些转换器还将多路开关。
基准电压源。
时钟电路。
译码器和转换电路集成在一个芯片内,已超出了单纯A/D转换功能,使用十分方便。
3.2.2电路图
复位电路
控制电路
显示电路
四.器件清单
器件名称
型号
主要参数
数量
备注
单片机
AT89C51
4KB,33MHz
1
电阻
RES
10K,220K
3
电容
CAP
10uF,30pF
晶振
CRYSTAL
无
数码管
7SEG-MPX1-CA
共阳极
2
滑动变阻器
POT-HG
排阻
RESPACK-8
开关
BUTTON
导线
LEAD
若干
电源地
POEWR、GROUDD
五.器件识别与检测
根据单片机的C语言程序设计与应用,我们知道了C51单片机,所用的一般元器件有电阻、电容、开关、排阻,而对于晶振和数码管是我们所必须学习和掌握的,晶振是一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
数码管根据公共端的连接情况有共阳极共阴极两种,对共阴极LED显示器的发光二极管的公共端的com接地,当某发光二极管的阳极为高电平时,相应的发光二极管点亮;
共阳极LED显示器则相反。
六.控制系统实现(软件编程与调试)
6.1软件编程
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeLEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbitOE=P1^0;
sbitEOC=P1^1;
sbitST=P1^2;
sbitCLK=P1^3;
voidDelayMS(uintms)
{
uchari;
while(ms--)
for(i=0;
i<
120;
i++);
}
voidDisplay_Resulat(ucharm)
uintd=m;
/**********根据当前输入量m大小,在【0-255】所占比例,转换为当前数字量**********/
floatk=d*1.00;
k=(k/256*1000);
//1000代表当前所设定电阻的值。
256代表整体【0-255】的长度
d=k;
/*****P0口分别显示个、十、百、千等位的大小(段码),P2显示的位置(位码)***********/
P2=0xf7;
P0=LEDData[d%10];
DelayMS(10);
P2=0xfb;
P0=LEDData[d/10%10];
P2=0xfd;
P0=LEDData[d/100%10];
P2=0xfe;
P0=LEDData[d/1000];
voidmain()
TMOD=0x02;
TH0=0x14;
TL0=0x00;
IE=0x82;
TR0=1;
while
(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
Display_Resulat(P3);
OE=0;
}
voidTimer0_INT()interrupt1
CLK=!
CLK;
6.2软件调试
仿真结果如下:
选中单片机AT89C51,左键点击AT89C51,出现对应的对话框,在programfile中找到编译好的ADC.HEX文件,然后点OK进行仿真,点击模拟调试按钮的运行按钮,进入调试状态,通过改变可变电阻R的值,可以看到对应的数字信号在LED上显示。
当滑动变阻器改变时,显示的电压值也相应改变,但电压值的最大值一般都会比理想状况下小一点,因为电路中有一定的内阻。
本实验基本可以达到预期效果。
七.设计心得
本次设计的是电阻可调式电压表,在设计的过程中通过本次课程设计,我得到了老师同学的帮助,由于以前的C语言没怎么学好,在编程的这一部分遇到了许多困难,出现很多错误,经过多次的修改才成功。
课堂主要学习基本知识,基本理论,基本方法,而这次设计正是为我们提供了一个深入学习探索的机会,成为课堂教学的有益补充,课设是综合运用所学知识,发现实际为题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。
这个过程很重要,谢谢老师给予我们的帮助与指导。
八.参考文献
《单片机的C语言程序设计与应用》
《微机原理接口与技术》
《单片机原理与应用技术》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电阻可变式电压表 单片机课设 电阻 可变 电压表 单片机