电阻可变式电压表 单片机课设.docx

上传人:b****5 文档编号:4600126 上传时间:2022-12-07 格式:DOCX 页数:11 大小:198.75KB
下载 相关 举报
电阻可变式电压表 单片机课设.docx_第1页
第1页 / 共11页
电阻可变式电压表 单片机课设.docx_第2页
第2页 / 共11页
电阻可变式电压表 单片机课设.docx_第3页
第3页 / 共11页
电阻可变式电压表 单片机课设.docx_第4页
第4页 / 共11页
电阻可变式电压表 单片机课设.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

电阻可变式电压表 单片机课设.docx

《电阻可变式电压表 单片机课设.docx》由会员分享,可在线阅读,更多相关《电阻可变式电压表 单片机课设.docx(11页珍藏版)》请在冰豆网上搜索。

电阻可变式电压表 单片机课设.docx

电阻可变式电压表单片机课设

目录

一.设计要求2

1.1设计要求2

1.2设计目的2

二.设计方案与论证2

2.1设计思路2

2.2总体方案2

2.3总体框图3

三.设计原理及电路图(设计原理及流程图)3

3.1软件设计3

3.1.1软件环境3

3.1.2软件原理4

3.1.3软件流程图5

3.2硬件设计5

3.2.1硬件原理5

3.2.2电路图7

四.器件清单8

五.器件识别与检测9

六.控制系统实现(软件编程与调试)9

6.1软件编程9

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

3

晶振

CRYSTAL

1

数码管

7SEG-MPX1-CA

共阳极

2

滑动变阻器

POT-HG

1

排阻

RESPACK-8

1

开关

BUTTON

2

导线

LEAD

若干

电源地

POEWR、GROUDD

若干

五.器件识别与检测

根据单片机的C语言程序设计与应用,我们知道了C51单片机,所用的一般元器件有电阻、电容、开关、排阻,而对于晶振和数码管是我们所必须学习和掌握的,晶振是一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。

数码管根据公共端的连接情况有共阳极共阴极两种,对共阴极LED显示器的发光二极管的公共端的com接地,当某发光二极管的阳极为高电平时,相应的发光二极管点亮;共阳极LED显示器则相反。

六.控制系统实现(软件编程与调试)

6.1软件编程

#include

#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];

DelayMS(10);

P2=0xfd;

P0=LEDData[d/100%10];

DelayMS(10);

P2=0xfe;

P0=LEDData[d/1000];

DelayMS(10);

}

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语言程序设计与应用》

《微机原理接口与技术》

《单片机原理与应用技术》

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1