单片机课程设计测量电阻和电容.docx

上传人:scccc 文档编号:13930554 上传时间:2022-01-26 格式:DOCX 页数:22 大小:459.47KB
返回 下载 相关 举报
单片机课程设计测量电阻和电容.docx_第1页
第1页 / 共22页
单片机课程设计测量电阻和电容.docx_第2页
第2页 / 共22页
单片机课程设计测量电阻和电容.docx_第3页
第3页 / 共22页
单片机课程设计测量电阻和电容.docx_第4页
第4页 / 共22页
单片机课程设计测量电阻和电容.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《单片机课程设计测量电阻和电容.docx》由会员分享,可在线阅读,更多相关《单片机课程设计测量电阻和电容.docx(22页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用课程设计报告设计课题:电容、电阻参数单片机测试系统的设计专业班级:电子信息工程0 9 1学生:?指导教师:何老师2012 年 6 月目录11 设计任务书 21.1 基本设计要求 21.2 选作项目22设计阐明 212.1 设计容 212.2 计要求312.3 备及工作环境 33系统方案整体设计 43.1 设计思路 43.2 系统整体框图 44硬件设计 54.1 系统硬件设计 54.1.1 按键电路设计 错误!未定义书签。4.1.2 LCD 显示器54.2 系统工作原理论述 65软件设计 75.1 分析论证 75.1.1 显示模块 75.1.2 产生脉冲模块 75.1.3 转换模

2、块 75.1.4 启动/暂停,复位模块85.1.5 整体功效 85.2 程序流程图 85.3 程序清单 86调试过程及分析 87设计总结 18参考文献201设计任务书1.1 基本设计要求(1)在综合单片机实验箱的硬件结构上编写软件完成设计。(2)程序的首地址应使目标机可以直接运行,即从 0000H开端。在主程序的开端部分必须设置一个合适 的栈底。程序放置的地址须持续且靠前,不要在中间留下大批的空间地址,以使目标机可以应用较少的硬件资 源。(3)在液晶显示屏上显示测量的电阻电容,第一行显示measures第二行显示测的的值,如R=00.0KQ或者C=00.00uF(4)在电路中设定三个按键一个是

3、换电阻的按键,其余分别为测电容和测电阻时的按键,当按下测电阻键 时,显示相应的电阻值,当按下电容值时显示测得的电容值(5)软件设计必须应用8052片定时器,采用定时中断结构,可以采用软件中断的延时法。1.2 选作项目1、另设三个键,分别作液晶显示器的调校。2 、可以通过硬件电路,编写相应的软件程序,实现显示字幕的左移,右移等功能,本程序没有3 、同时也可以设置相应的量程来设计,本程序有相应的硬件电路,但软件读者可以自己编写2设计阐明12.1设计容用ZY15MCU12BD型综合单片机实验箱及串口电路设计实现显示时间并能够调校时间的时钟,还能够实现秒表的启动/暂停,复位功能。说明设计中包含的容1.

4、2 设计要求(1)在ZY15MCU12BD型综合单片机实验箱的硬件结构上编写软件完成设计。(2)程序的首地址应使目标机可以直接运行,即从 0000H开端。在主程序的开端部分必须设置一个合适 的栈底。程序放置的地址须持续且靠前,不要在中间留下大批的空间地址,以使目标机可以应用较少的硬件资 源。(3)在液晶显示屏上显示测量的电阻电容,第一行显示measures第二行显示测的的值,如 R=00.0K或者C=00.00uF(4)在电路中设定三个按键一个是换电阻的按键,其余分别为测电容和测电阻时的按键,当按下测电阻键 时,显示相应的电阻值,当按下电容值时显示测得的电容值(5)软件设计必须应用8052片定

5、时器,采用定时中断结构,可以采用软件中断的延时法。(6)上机调试程序。(7)写出设计报告。1.3 设备及工作环境(1)硬件:盘算机一台、ZY15MCU12BD型综合单片机实验箱一台、通信电缆一根。(2)软件:Windows操纵系统、Keil C51软件。3系统方案整体设计3.1 设计思路或设计方案论证 对电阻的测量,可将待测电阻与一标准电阻串联后接在 +5V的电源上,根据串联分压原理,利用ADC测定电阻两端电压后,即可得到其阻值。对电容的测量,可将其与已知阻值的电阻RA和RB组成基于NE555B勺多谐振荡器如下页图。其产生的方波信号频率为1.44 fC(Ra 2Rb)郎22CK uih.inF

6、测定方波仔:切:! S R B - P,黑弗:毋5-HQ :_ s IDnF,一 .,*TSXT-*故通过测定方波信号的频率可以比较精确的测定 C的值。号频率的力泣。测量频率有测频法和测周法两种(1)测频法,利用外部电平变化引发的外部中断,测算 1s的波数,从而实现对频率的测定;(2)测周法,通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。简而言之,测频法是直 接根据定义测定频率,测周法是通过测定周期间接测定频率。理论上,测频法适用于较高频率的测量,测周法 适用于较低频率的测量。经过调校,在测量低频信号时,本项目中测频法精度已高于测周法,故舍弃测周法,全量程采用测频法3.2 系统

7、整体框序复位电路输入电阻RNE555输入电容图1系统整体框图4硬件设计4.1系统硬件设计4. 1. 1按键电路设计按键是实现人机对话的比较直观的接口,可以通过按键实现人们想让单片机做的不同的工作。键盘是一组 按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。键盘分编码键盘 和非编码键盘,案件的识别由专用的硬件译码实现,并能产生键编号或键值的称为编码键盘,而缺少这种键盘 编码电路要靠自编软件识别的称为非编码键盘。在单片机组成的电路系统及智能化仪器中,用的更多的是非编 码键盘。就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输

8、出的低电平4.1.2 LCD显示器1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个 5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。 每位之间有一个点距的间隔每行之间 也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形(用自定义CGRAM ,显示效果也不好)n1602LCD是指显示的容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。n目前市面上字符液晶绝大多数是基于 HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的 控制程序可以很方便地应用于市面上大部分的字符

9、型液晶。+5V电压,对比度可调含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM建有192个5X7点阵的字型的字符发生器 CGROM8个可由用户自定义的5X7的字符发生器CGRAM电压,对比度可调含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器 DDRAM 建有192个5X7点阵的字型的字符发生器 CGROM 8个可由用户自定义的5X7的字符发生器CGRAM4.1 . 3 ADC0804 转换ADC080隹一个8位CMO型逐次比较式A/D转换器,具有三态锁存输出功能,最短转换时间为1

10、00us,CS:片选信号,低电平有效;RD外部读取转换结果的控制信号,当RD为高电平时,DB0-DB7为高阻态;当RD为低电平时,数据才会通过DB0-DB7俞出;WR:A/D转换器启动控制信号,当WRi高电平变为低电平时,转换器被清零,当WRM氐电平变为高电平时,A/D 转换正式开始;CLK IN和CLK R:时钟输入端,在ADC080瑞有时钟发生器,采用部时钟时,在 CLK INCLK R和地线之间连接RC电路即可,ADC0804勺工作频率约为100-1460khz,若使RC电路作为时钟,其振荡频率为1/ (1.1RC);INTR:中断请求输出信号,当A/D转换结束时,INTR引脚输出低电平

11、,只有当数据被取走后(单片机发出读数 据指令),此引脚才会变为高电平;VIN+和VIN-:差动模拟电压输入端,若输入为单端正电压,VIN-应接地,若差动输入,则输入信号直接加入VIN+ 和 VIN-;AGND.DGN模拟信号地与数字信号地,若系统对抗干扰要求严格,则这两条地线必须分接地;VREF/2参考电压值白一半,若在 ADC080和成的电路中需要的参考电压为 5V,则此引脚可以悬空。若电路中 需要使用的参考电压小于5V,即参考电压值的一半小于2.5V,这时可将此引脚连接到需要的参考电压 值(如4V)白1/2电压值上(如2V),在ADC0804E片部会自动判断参考电压的选择,当 VREF/2

12、引 脚的电压值低于2.5V时,芯片会自动选择由VREF/2引脚电压放大2倍以后的电压值作为参考电压。DB0-DB7 8位数字输出端。4.2 系统工作原理论述1 .实验硬件设备:LCD1602夜晶显示器一块,ADC0804K片一片,两个滑动变阻器,一个 150pF电容, 两个200欧姆的电阻,一个10K欧姆的电阻,STC89C51E片,电源,地线,按键(复位电路和晶振 电路另加),杜邦线诺干。2 . ADC080/使用时,外围电压的连接比较简单,只需要对参考电压和时钟输入端进行设计即可。通常 情况下,时钟的输入可以选用RC谐振电路,ADC080M进行A/D转换的时钟频率为100 1460KHz

13、典型值为640KHz这里选用R=10K欧姆.C=150PF的谐振电路,利用公式1/(1.1RC)计算后,此时的 时钟频率约为606KHz与典型值十分接近。3 .模拟电压的计算:这里选用的是 8位A/D转换器,数值的变化围是0255(00H-FFH),模拟电压的输 入围是0-5V,每个数码的变化,对应的电压值的变化为 0.0196V,所以要计算模拟电压值,就可以利 用下面的公式进行计算:V=D*0.0196式中,V为计算出的模拟电压值,D为A/D转换器转换后的数字量。4 .克服浮点运算方法:从上式不难看出,在计算过程,需要乘以一个0.0196,这是一个小数,在计算机中称为浮点数。而对于8位单片机

14、来说,不具有浮点运算能力,如果一定要计算浮点数,将占用单 片机量的存单元和CPU时间。这里采用一种简单的方法:就是将从A/D读取进来的数字量直接乘以196,即进行整数运算,运算结果是真正值的1000倍,这个整数运算的速度是非常快的,不会占用过 多的CPU时间。由于是两个8位的二进制数相乘,得到的结果不会超过 16位二进制数。5 .电压值的显示:最常用到的二进制转换成BCD码的方法是用除法。先用得到的16位二进制数除以10000,得到的商就是模拟电压值的整数部分(模拟电压的输入为 0-5V,所以整数部分只有1位), 得到的余数是模拟电压值的小数部分;接下来用余数除以1000,商是十分位,余数作为

15、被除数再除以100,商为百分位,余数再除以10,商为千分位。这样就将16位的二进制数转换成了 4位BC则。6 .再将电压值转化为电阻值,并显示7 .电容的测量是利用555产生方波,采用8052部定时器,计算得到的脉冲数,在利用公式即可求出电容 值5软件设计5.1 分析论证此电容、电阻参数单片机测试系统的设计与实现,主要采用了 1LCD显示屏,8052部二进制8位定时器/ 计数器,ADC0804模数转换,NE555芯片,包含显示模块,产生脉冲模块和转换模块三大功效模块。5.1.1 显示模块用LCD显示屏的显示功效来设计。采用 LCD1602来显示,1602液晶也叫1602字符型液晶它是一种专门

16、用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因 为如此所以他不能显示图形(用自定义CGRAM ,显示效果也不好)n1602LCD是指显示的容为16X2,即可以显示两行,每行 16个字符液晶模块(显示字符和数字)。 n目前市面上字符液晶绝大多数是基于 HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大 部分的字符型液晶。+5V电压,对比度可调含复位电路提供各种才$制命令,如:清屏、字符闪烁、

17、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM 建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器 CGRAM电压,对比度可调含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM建有192个5X7点阵的字型的字符发生器 CGROM 8个可由用户自定义的5X7的字符发生器CGRAM5.1.2 产生脉冲模块NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不 同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而 555是一

18、个用途很广且相当普遍的计时 IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉波讯号。NE555的作用围很广,但一般多应用于单稳态多谐振荡器(Monostable Mutlivibrator)及无稳态多谐振荡器(Astable Multivibrator)。5.1.3 转换模块ADC0804H属于连续渐进式(Successive Approximation Method ),即AD转换器,这类型的 A/D转换器除 了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。以输出8位的ADC080作来说明“连续渐进式 A/D转换器”的转换原理

19、,动作步骤如下表示(原则上先从左侧 最高位寻找起)。第一次寻找结果:10000000 (若假设值0输入值,则寻找位 二假设位=1)第二次寻找结果:11000000 (若假设值输入值,则寻找位 H贸设位=1)第三次寻找结果:11000000 (若假设值输入值,则寻找位=假设位=0)第四次寻找结果:11010000 (若假设值0输入值,则寻找位 二假设位=1)第五次寻找结果:11010000 (若假设值输入值,则寻找位=假设位=0)第六次寻找结果:11010100 (若假设值0输入值,则寻找位=假设位=1)第七次寻找结果:11010110 (若假设值0输入值,则寻找位 h贸设位=1)第八次寻找结果

20、:11010110 (若假设值 输入值,则寻找位=假设位=0)这样使用二分法的寻找方式,8位的A/D转换器只要8次寻找,12位的A/D转换器只要12次寻找,就能完成转换的动作,其中 的输入值代表图1的模拟输入电压Vin 。各管脚的作用:D0-D7:八位数字量输出端;CLK为芯片工作提供工作脉冲,时钟频率计算方式是:fck=1/(1.1 XRX C)CS片选信号; WR写信号输入端;RD读信号输入端;INTR:转换完毕中断提供端;其他管脚连接如图,是供电和提供参考电压的管脚输入端。1.1.4 启动/暂停,复位模块该模块的功能是实现秒表的启动/暂停,复位。本实验中第一次按下 09键进入测量程序,开

21、始测量,第 次按下09键暂停测量,并返回到主程序,在电路中设定三个按键一个是换电阻的按键,其余分别为测电容和测 电阻时的按键,当按下测电阻键时,显示相应的电阻值,当按下电容值时显示测得的电容值,此外还有量程更 改的键,程序未编写,但画图有。1.1.5 整体功效当按下测量电阻按键是,液晶屏第一行显示 measures第二彳T显示R=? ? .? KQ,当按下测量按键时,液 晶屏第一行显示measures第二行显示C = ? ? E? ? uF ,若同时按下,则轮流显示。按复位键时,程序会自 动重新执行,电阻的测量在25 0 KQ较准确,电容只能测量15 0 uF。当然,可以通过程序更改5.2 程

22、序流程图略5.3 程序清单#include#include#define DATA P0#define uchar unsigned char#define uint unsigned intsbit adcs=P2A3;/何以硬件直接接地sbit adrd=P2A5;sbit adwr=P2A4;sbit RW=P2A1;/1602 写数据sbit RS=P2A0;/1602 写地址sbit EN=P2A2; /1602 工作使能sbit b_test=P3A7;开始测量电容的按键输入sbit c_test=P3A6;sbit _reset=P3A5;/555时基芯片工作控制信uint T_

23、flag,N,D,C,i,Dis1,Dis0;uchar get_ad();uint A,F,H,A1,A2;uint r=R,=,0,0,.,0,K,0Xf4;uint b9=C,=,0,0,.,0,0,u,F;/显示 C=00.00UFuint Datal;/* 延时 ims*/void Delay1ms(uint mm)uint i;for(;mm0;mm-) for(i=0;i0;x-)for(y=110;y0;y-);/* 检查忙否 */void Checkstates()uchar dat;RS=0;RW=1;doEN=1;/下降沿_nop_();/保持一定间隔_nop_();da

24、t=DATA;_nop_();_nop_();EN=0;while(dat&0x80)=1);/*LCD写命令函数 */void wcomd(uchar cmd)Checkstates();RS=0;RW=0;DATA=cmd;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;/*LCD 写数据函数 */void wdata(uchar dat)Checkstates();RS=1;RW=0;DATA=dat;EN=1;_nop_();_nop_();_nop_();_nop_();EN=0;/*初始化 */void LCDINIT()Delay1ms(15)

25、;wcomd(0x38);/功能设置Delay1ms(5);wcomd(0x38);/功能设置Delay1ms(5);wcomd(0x01);/清屏Delay1ms(5);wcomd(0x08);/关显示Delay1ms(5);wcomd(0x0c);/开显示,不开光标/*显示函数 */void Display(void) 显示函数uchar i,j;uchar a12=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53; 显示 measurements for(i=0;i12;i+) 写显示第一行 wcomd(0x80+i)

26、;Delay1ms(1);wdata(ai);Delay1ms(1);for(j=0;j9;j+)/ 写显示第二行wcomd(0xc0+j);Delay1ms(1);wdata(bj);Delay1ms(1);Delay1ms(150);void Display1() /显示函数显示电阻uchar i,j;uchar a12=0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53;/ 显示 measurementsfor(i=0;i12;i+)/ 写显示第一行 wcomd(0x80+i);Delay1ms(1);wdata(ai)

27、;Delay1ms(1);for(j=0;j5000)/设置最长等待时间_reset=0; /最长等待时间到还没有中断,停止 555 if(N5000)/如果计数值大于5000,显示LARGER,表示应换用大一点的量程b6=0x15;b5=0x17;b4=0x22;b3=0X11;b2=0X1C;if(N=100 & N=5000)C=N/100;D=N%100;/计算电容的大小b2=C/10;/计算电容值的十位b3=C-b2*10;计算电容值的各位b5=D/10;b6=D-b5*10;Display。; 显示电容的大小wcomd(0x80+0x42);Delay1ms(5);wdata(0x

28、30+b2);Delay1ms(5);wcomd(0x80+0x43);Delay1ms(5);wdata(0x30+b3);Delay1ms(5);wcomd(0x80+0x45);Delay1ms(5);wdata(0x30+b5);Delay1ms(5);wcomd(0x80+0x46);Delay1ms(5);wdata(0x30+b6);Delay1ms(1000);if(!c_test=1)Display1();Data1=get_ad();A=100*Data1;H=A/(256-Data1);A1=H/10;A2=H%10;wcomd(0x80+0x43);Delay1ms(5

29、); wdata(0x30+A1);Delay1ms(5); wcomd(0x80+0x45);Delay1ms(5); wdata(0x30+A2);Delay1ms(1000);void int0(void) interrupt 0第一次中断开始计数,第二个中断停止计数T_flag=!T_flag;if(T_flag=1).TR0=1;/开始计时if(T_flag=0) .TR0=0;/停止计时EX0=0;/关闭中断_reset=0;/停止发出方波N=TH0*256+TL0; /计算计数器的值N=N*5/3;TH0=0x00;/恢复初值TL0=0x00;6 执行显示图当电阻测量键按下时仿真

30、结果一 *LC01一. UUHI61 SV Fext 1X小Jr:困:EXP三-SilOc. .II一 WF,,B a afil. &。风传g1, r . 1S -3!rrSBFDQACC PEMfAtl FOAIEmizFDJAK3FDLMKM PEI皆丸越 POSAtS pQl慎肘PZIVJIB 陞”,pa,P23AI1 PZWAIZ PT1 KVA-inALE PH看曲“ PZJfHISP1STZP3 3H- IPlumFi.irro 1Hp 1 jiIM .pj.wm pari13 ,1月P1 Tm而15网FCS v+白:隹 1E1 TTHEfiSLiREnENTSR=0.0KnTI1

31、TLECT师 IjTF GLK IN TITK A (MD P GM VfiEFfZ CLKR。is (田亚BB1B2BB3W日FGKB6 。射眸昨17VIB*RIOl imc r cTExlfeC5. - R11 iK-1 fTCT.当电容测量键按下时,仿真结果乂u:uv口0 2k .:TTJk.TH:lR11 .A,-=T KdS- -*F cTEm1-LODI 1 Lumsi 一:TE:vgFKrMl=T&nEASUREHENTSC=02.25uFR8-.1&., uKF 而 CILK IN im.A &MD D OMD VREFO: GMCRra工口HXTAL1PDCVAtC F型除M

32、蜀mupduuabIFDSAtSFDjBAEpf向折P2JIMSM.SPy VA KALEPN 心 IEETPZ1M15F1OTT2胪3卬通电PlLimMHFIZIN HpaSronP1.*.15M JSF1.T击3?VT如.J L弋1 ih TTf引器RIQi .113:.VIN* vin-AEiCEQk. C5.调试过程及分析编写好的源程序在 Keil编译后呈现很多错误,这些错误有很多时平时的实验碰到过的,例如:字母开头忘加0,零和字母。弄混杂了,有些标号用了几次,CJNE写成了 CJNZ等等,幸好这些错误在平时的实验中碰 到了,所以改错误很轻易,。除了常见的错误外,还有几条错误时在前几次

33、实验都没有出现过,如: AJMP跳转 指令跳不回指定的地位,是由于跳转的长度大于AJMP跳转的长度,最后只好用LJMP跳转后才跳到指定的地位。在前期的程序编写和几天的上机调试,使我又获得了很多新的知识,由于前期编写程序时查了很多材料学 到了很多知识,这几天的调试更时获得很新的知识,由于程序中又很多的错误,为了修正错误必须看书或向别 人请教,在这个过程中无意识的获得了很多知识。同时也使我对单片机更感兴趣了,这点我感到很重要,相信 这会对以后的学习有所帮助。7设计总结本次课程设计是用 ZY15MCU12BD综合单片机实验箱及串口电路设计一个时钟秒表,经过一个星期的调 试,成果满足基本设计请求,验证

34、无误。设计重要用到了多种芯片,程序也比较长,比较麻烦,同时也碰到了不少艰苦,尤其是关于校时模块和时钟与秒表之间切换的设计实现。关于显示模块,在以前的实验中做过,所以 题目很轻易解决。通过本次设计,我懂得了时钟的设计流程,尤其是硬、软件的设计方法以及键盘显示电路的基础功效及编程方法和键盘电路和显示电路的一般原理,也进一步了解了8031定时器的应用和中断CPU程序的编程方法,开辟了思路,提高了分工协作才能和分析题目,解决题目的能力。参考文献1 .胡汉才编著,单片机原理及其接口技术清华大学,2004。2 .楼然苗等编著,51系列单片机设计实例航空航天大学,2006。3 .汪道辉编著,单片机系统设计与实践电子工业2005参考文献8-10篇

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1