单片机电阻表的设计说明书.docx
- 文档编号:10102083
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:31
- 大小:520.31KB
单片机电阻表的设计说明书.docx
《单片机电阻表的设计说明书.docx》由会员分享,可在线阅读,更多相关《单片机电阻表的设计说明书.docx(31页珍藏版)》请在冰豆网上搜索。
单片机电阻表的设计说明书
1、设计内容和要求...................................................2
2、系统总体结构.....................................................3
2.1、系统总体设计................................................3
2.2、主控部分的选择..............................................4
3、最小系统.........................................................6
4、硬件设计.........................................................6
4.1总体设计框图..................................................6
4.2电压测量的设计................................................7
4.3模数ADC转换的设计............................................74.4液晶显示电路的设计..............................................8
5、输入、输出部分...................................................9
6、软件设计........................................................10
6.1主控程序流程.................................................10
6.2软件仿真.....................................................11
7、实物制作与仿真.................................................12
8、总结...........................................................13
9、参考文献........................................................14
附录1原件清单....................................................15
附录2原理图......................................................16
附录3程序........................................................17
附录4实物图......................................................31
第1章设计内容和要求
随着现代科技的飞速发展,生产生活中人们对工具的要约越来越高。
其中我日常所使用的电阻表的精度和性能也要求越来越高。
并且电阻表完全可以通过现代科技来实现智能化,智能化即不需要人工来调节档位,测量不同阻值的电阻时,可以自动更换档位。
并且同时显示出阻值和量程。
这次课程设计我的课题就是基于单片机芯片STC89C52设计一个三档位的电阻表,第一档位:
1-100欧,第二档:
1-5k欧,第三档:
1-10k欧。
电阻表能自动转换量程,测量结果使用LCD显示,误差小于5%。
设计内容包括:
1、单片机最小系统
2、模数转换
3、电阻电压转换
4、显示测得的电阻阻值
设计原理为通过伏安法测出电阻的阻值,经过模数转换,将测得的阻值显示到LCD上。
第二章系统总体结构
2.1系统总体设计
系统共分为四个部分:
电阻电压转换、模数转换器、单片机、LCD显示。
2.2主控部分的选择
进行深入的分析和思考,将本次设计系统分为一下几个部分:
A/D转换电路、被测电阻、单片机系统、显示电路、电机控制电位器电路。
自动测量电阻表系统框图
电阻的测量电路:
电阻—电压转换测量法,采用R/U转换器将被测电阻转换成电压,经转换后得到的直流电压经A/D转换器转换为数字信号,由单片机控制输出显示被测电阻值到LCD。
电机控制电位器电路:
采用继电器作为档位开关控制,继电器是一种电控制器件。
它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。
通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
采用2个继电器分别控制不同电阻测试档位。
控制系统由单片机系统控制。
A/D转换器:
选用ADC0832;ADC0832芯片是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
其具有以下特点:
·双通道A/D转换;
·输入输出电平与TTL/CMOS相兼容;
·5V电源供电时输入电压在0~5V之间;
·工作频率为250KHZ,转换时间为32μS;
·一般功耗仅为15mW;
·8P、14P—DIP(双列直插)、PICC多种封装;
·商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;
芯片接口说明:
·CS_片选使能,低电平芯片使能。
·CH0模拟输入通道0,或作为IN+/-使用。
·CH1模拟输入通道1,或作为IN+/-使用。
·GND芯片参考0电位(地)。
·DI数据信号输入,选择通道控制。
·DO数据信号输出,转换数据输出。
·CLK芯片时钟输入。
·Vcc/REF电源输入及参考电压输入(复用)。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
单片机:
AT89C52;
显示器:
选用LCD1602。
工业字符型液晶,能够同时显示16x02即32个字符。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。
特性:
3.3V或5V工作电压,对比度可调;
内含复位电路;
提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能;
有80字节显示数据存储器DDRAM;
内建有192个5X7点阵的字型的字符发生器CGROM;
8个可由用户自定义的5X7的字符发生器CGRAM;
微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
操作控制。
第三章最小系统
由STC89C52,复位电路,时钟产生电路组成。
其原理图如下:
最小系统电路原理图
第4章硬件设计
本系统是一个简单的单回路控制系统。
为了实现对电阻的精确测量和测量档位自动切换,本系统采用了AT89C52单片机作为系统的控制中心,在测试电阻阻值时,有信号测试端将所测信号送入A/D转换器ADC0832,经A/D转换后将数据送入单片机进行数据处理,实时将所测电阻阻值经液晶显示模块显示。
在进行档位切换时。
由单片机控制的继电器构成档位开关,对档位进行正确切换。
总体设计框图如图
总体设计框图
4.2电压测量的设计
如图2所示为被测电阻电压测量。
电压经过已知电阻R1和被测电阻Rx接到地。
通过OUT输出被测电阻Rx上的电压。
送到ADC0832的CH0口。
图3被测电阻电压测量图
4.3模数ADC转换的设计
由电压测量得到的电压经过ADC模数转换可得到8位的电压值,经过欧姆定律(即电压之比等于电阻之比)可得到被测电阻的阻值的大小。
公式如下
错误!
未找到引用源。
本设计用到的R1的阻值为200Ω、20kΩ和200kΩ。
由被测电阻得到的电压值经ADC0832的2脚CH0输入,经过内部的AD转换,在DO6输出数字电压量,经过上述公式的转变,在P1.1口上的显示的数字量为被测电阻的阻值数字量。
如图3所示为被测电阻电压量转换为阻值量。
被测电阻电压量转换为阻值量图
4.4液晶显示电路的设计
经过ADC0832模数转换得到的电阻值数字量,在MCU的P1.1口输入,MCU系统处理后在P0口由LCD1602显示出来该被测电阻的阻值。
如图4所示为被测电阻阻值显示。
被测电阻阻值显示图
第5章输入、输出部分
电阻表主控制部分电源需要用5V直流电源供电,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。
其主要原理是把单相电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。
由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。
降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。
由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。
需通过低通滤波电路滤波,使输出电压平滑。
稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流压。
本电路使用充电器解决电源稳压问题。
我们使用的是经过特殊加工过的电路板,在板的内部已经将整流、变压的线路连好了。
各原件所用的5V直流电源在电路板内部连成了几条线路,使用起来很方便。
电阻输入则是通过将不同阻值的电阻接在表的两端,阻值范围是1-10K欧姆。
当接入时电阻表的液晶显示屏上会自动显示出当前所接入的电阻的阻值和量程(档位)。
当所接电阻超出量程时,LCD显示ERROR。
时序参数表
时序参数
符号
极限值
单位
测试条件
最小值
典型值
最大值
E信号周期
tc
400
----
----
ns
引脚E
E脉冲宽度
tpw,tF
150
----
----
ns
E上升/下降沿时间
tR
----
----
25
ns
地址建立时间
tsp1
30
----
----
ns
引脚E、RS、R/W
地址保持时间
tHD1
10
----
----
ns
数据建立时间(读操作)
tD
----
----
100
ns
引脚
DB0~DB7
数据保持时间(读操作)
tHD2
20
----
----
ns
数据建立时间(写操作)
tsp2
40
----
----
ns
数据保持时间(写操作)
tHD2
10
----
----
ns
第六章软件设计
6.1主控程序流程
程序机构主要包括:
主控程序模块、LCD1602液晶显示程序、阻值数据显示处理子程序、标志符号显示子程序、延时子程序等几个部分组成。
主控程序流程图:
6.2软件仿真
本设计通过利用Proteus仿真,将所编写的程序用Keil软件编译,所仿真原理图见第七章。
在实验调试过程中每个测量量程档选用2个电阻进行测量,下表就是我们测试的实际电阻值和测量电阻值数据,以及测量误差。
量程档
实际电阻值
仿真测量电阻值
误差
1K
7.3Ω
7Ω
-4.10%
15.2Ω
15Ω
-1.31%
52.7Ω
53Ω
0.57%
200Ω
201Ω
0.5%
500Ω
508Ω
1.6%
750Ω
762Ω
1.6%
900Ω
908Ω
0.89%
950Ω
953Ω
1.4%
5K
1.5KΩ
1518Ω
1.2%
2KΩ
2016Ω
2.46%
2.5KΩ
2481Ω
-3.1%
3kΩ
2940Ω
-2%
3.5KΩ
3509Ω
0.76%
4KΩ
4019Ω
0.61%
4.3kΩ
4283Ω
-3.36%
4.5KΩ
4518Ω
1.23%
10k
5KΩ
5012Ω
0.81%
5.5kΩ
5561Ω
0.92%
6KΩ
6022Ω
0.28%
6.5KΩ
6478Ω
-1.84%
7KΩ
6983Ω
-1.62%
8kΩ
7903Ω
-3.3%
9.5kΩ
9679Ω
6%
在调试时发现当所测电阻阻值接近量程时测得的值不够精确。
第7章实物制作与仿真
正面图与反面图
未开启时的电路
测量电阻时的仿真图
总结
我设计的自动测量电阻表能够完成基本部分和部分发挥部分的要求,即能够完成测量量程为1kΩ、5kΩ、10kΩ三档,测量准确度为±5%;能自动显示单位,这三档量程具有自动量程转换功能。
这个基于单片机设计的电阻表具有智能化的功能如果投入生产可以增加量程以便于使用。
这种电阻表成本低且实用性、可操作性都很强。
通过本次课设,我知道了怎么去买器材,不仅仅要知道自己所需要的器材名称还要知道型号。
遇到问题我们要学会通过另一种途径解决问题,比如本次课设,我使用的是ADC0832芯片而在电子市场的时候拿到的却是DAC0832,这与卖家的粗心有关,但是根本问题还在我自身,没有看清元器件的型号。
下次做每一次失败都是下次成功的基础。
感谢学校给我们这次机会,锻炼了我们的动手能力及运用专业软件的能力。
通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在数电上有很多的知识漏洞,以后应该多钻研一下。
这次课程设计我主要负责文论撰写,在写论文过程中积极和同组同学探讨电梯的基本原理,每个模块的功能及如何实现。
对Office套件的使用更熟悉,为以后毕业论文的撰写奠定了一定基础。
最后再次感谢这次课程设计。
参考文献
【1】陈舜青《C语言程序设计》南京大学出版社
【2】张齐朱西宁《单片机应用系统设计技术》第五版电子工业出版社
【3】王敬栋《单片机C语言应用100例》电子工业出版社
【4】李群芳《单片机原理接口与应用》北京:
清华大学出版社
附录1
元器件清单:
1、STC89C52X1
2、LCD1602X1
3、电路板X1
4、排阻(10k)X1
5、12M晶振X1
6、电位器X1
7、40脚管座X1
8、8脚管座X1
9、自锁开关X1
10、复位开关X1
11、整流桥X1
12、30pf瓷片电容X2
13、排针若干
14、排座若干
15、转换开关X3
16、各个阻值电阻若干
17、排线若干
总计成本80元
附录2原理图
附录3
主程序:
#include
#include
#include
voidget_liangcheng(void);
voidhandle_code(void);
voiddis_code(void);
voiddis_dw_lc(void);
unsignedcharcodemes1[]={"Resistors:
"};
unsignedcharcodedigit[]={"0123456789"};
unsignedcharcodemes[]={"2001K5K10K"};
unsignedcharres[5],temp_0=0,temp_1=0;
unsignedchart=0,sign=7;
unsignedintR=0;
unsignedcharDIY_1602[]=
{
/*--电阻符号--*/
0x00,0x00,0x0E,0x11,0x11,0x0A,0x1B,0x00
};
/**************函数功能:
延时若干毫秒*****************/
voiddelaynms(unsignedcharn)
{
unsignedchari,j,k;
delaynms(100);
for(i=0;i for(j=0;j<10;j++) for(k=0;k<33;k++); } /*************主函数*******************/ voidmain(void) { unsignedcharj,T1=0,T2=0,k=1; delaynms Init_LCD1602(); Write_DIY1602(DIY_1602); WriteAdd_1602(0x00); j=0; while(mes1[j]! ='\0') WriteData_1602(mes1[j++]); while (1) { get_liangcheng(); handle_code();//处理AD读取到的数据 dis_code();//显示四位数字和一个小数点 dis_dw_lc();//显示电阻单位和量程。 delaynms(1000); } } voidget_liangcheng(void)//判断用哪一个量程 { unsignedchari; for(i=0;i<5;i++) { P3=(P3&0xf0)+i; delaynms(50); temp_0=GetAD_code(0); sign=7; switch(i) { case0: if((0x05 sign=0;break;//中断switch; case1: if((0x20 sign=1;break; case2: if((0x30 sign=2;break; case3: if((0x2b sign=3;break; case4: if((0x2b sign=4;break; } if(sign! =7)//中断for循环 break; } } /*************处理AD读出的数*******************/ voidhandle_code(void)//处理AD读出的数 { unsignedchari; P3=(P3&0xf0)+sign; delaynms(50); temp_0=GetAD_code(0);//AD读取电压, temp_1=GetAD_code (1); R=((100*temp_0)/(255-temp_1))*10;//转换成电阻, for(i=0;i<4;i++)//把处理后的前四位数放进数组 { res[3-i]=R%10; R=R/10; } } /*************显示读数和小数点*******************/ voiddis_code(void)//显示读数和小数点 { unsignedcharpoint=10,i; if(sign==0||sign==3)//判断各量程的小数点放在第几位 point=3; else if(sign==1||sign==4) point=1; else { if(sign==2) point=2; } WriteAdd_1602(0x40);//显示四个数学和一个小数点 for(i=0;i<4;i++) { if(i==point) WriteData_1602('.'); WriteData_1602(digit[res[i]]); } } /*************显示单位和量程*******************/ voiddis_dw_lc(void) { unsignedchari; WriteAdd_1602(0x46);//清除上次显示的单位和量程。 for(i=0;i<10;i++) WriteData_1602(0x20); switch(sign) { case0: //sign=0.200档显示(o) WriteAdd_1602(0x46); WriteData_1602(0x00); WriteData_1602('/'); WriteData_1602('('); WriteData_1602('2'); WriteData_1602('0'); WriteData_1602('0'); WriteData_1602(0x00); WriteData_1602(')'); break; case1: case2: case3: //2K/20K/200/档显示单位(Ko) WriteAdd_1602(0x46); WriteData_1602('k'); WriteData_1602(0x00); if(sign==1) { WriteData_1602('/'); WriteData_1602('('); WriteData_1602('2'); WriteData_1602('k'); WriteData_1602(0x00); WriteData_1602(')'); } else { if(sign==2) { WriteData_1602('/'); WriteData_1602('('); WriteData_1602('2'); WriteData_1602('0'); WriteData_1602('k'); WriteData_1602(0x00); WriteData_1602(')'); } else { WriteData_1602('/'); WriteData_1602('(');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电阻 设计 说明书