数字电压表3论文设计 联系客服

发布时间 : 星期日 文章数字电压表3论文设计更新完毕开始阅读5a28861859eef8c75fbfb355

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