数字电压表毕业设计(4)

2019-06-17 12:41

通过计算,可知设计衰减器用的电阻R2,R3和R4分别为:9M,900K,100K控制档位的开关是双开关的,目地是能够使单片机CPU自动识别档位,即可用相应的档位的数据转换的算法计算出正确的电压值。被测电压输入端、整理过的模拟电压输入端,开关与单片机的连接如图所示。 3.A/D转换芯片与单片机的连接

此设计中选择的是A/D转换芯片的通道0,A/D芯片的数据输入口连接单片机的P1.3口,数据输出口连接单片机的P1.4口,芯片使能端连接单片机的P1.5口,脉冲端连接单片机的P1.6口。模块连接如下图所示。

16

4.1602液晶与单片机连接

此模块液晶的RS,RW和E端分别连接单片机的P1.2,P1.1和P1.0口;液晶的数据各端口连接单片机的P0口。具体如下图所示。

5.

键盘与单片机的连接如下。

17

此键盘的一端与单片机的P2.0口连接,另一端接地。原理图如下所示。

该键盘的功能:当键盘被按下时,即可计算后5秒的平均电压值。

八.系统软件的设计

1.汇编语言和C语言的特点及选择

本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言的特点是占用内存单元少,执行效率高。执行速度快。但它依赖于计算机硬件,程序可读性和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。

由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。用C语言来控制单片机无疑是一个理想的选择。所以在本设计中采用C语言编写软件程序。

2.主程序设计

主程序设计包括以下方面: 按照硬件电路对单片机位定义。

18

编写延时模块程序。

编写驱动1602液晶显示模块程序。 编写驱动A/D转换模块程序。 编写键盘扫描模块程序。

主程序的总体流程如下图:

开始 对液晶,定时器初始化 A/D转换 数据转换 显示5秒键盘判断 的平均电压值 显示瞬时3秒后电压值 清屏

全部软件程序如下:

#include

#define uchar unsigned char #define uint unsigned int

#define key_state0 0 //键盘扫描的各个状态

19

#define key_state1 1 #define key_state2 2 #define key_state3 3

sbit rs=P1^2;//1602液晶写命令/数据标志,0时写命令 sbit rw=P1^1;//1602液晶写入/读出标志,0时写入数据 sbit ep=P1^0; sbit input=P1^4; sbit output=P1^3; sbit cs=P1^5; sbit clk=P1^6; sbit key=P2^0;

sbit flag_1=P2^1;//定义电压表档位相关标志 sbit flag_2=P2^2; sbit flag_3=P2^3; sbit flag_4=P2^4;

uchar code tab0[]=\显示的单位及有关的字符 uchar code tab1[]=%uchar code tab2[]=\

uchar code tab3[]=\平均电压值标志符 uchar t;

void delay(int z)//延时函数 { int x,y; for(x=z;x>0;x--)

for(y=10;y>0;y--);

}

20


数字电压表毕业设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公园桥施工组织设计(正)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: