基于51单片机LCD液晶显示的简易数控电源.docx

上传人:b****9 文档编号:25112923 上传时间:2023-06-05 格式:DOCX 页数:28 大小:408.12KB
下载 相关 举报
基于51单片机LCD液晶显示的简易数控电源.docx_第1页
第1页 / 共28页
基于51单片机LCD液晶显示的简易数控电源.docx_第2页
第2页 / 共28页
基于51单片机LCD液晶显示的简易数控电源.docx_第3页
第3页 / 共28页
基于51单片机LCD液晶显示的简易数控电源.docx_第4页
第4页 / 共28页
基于51单片机LCD液晶显示的简易数控电源.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于51单片机LCD液晶显示的简易数控电源.docx

《基于51单片机LCD液晶显示的简易数控电源.docx》由会员分享,可在线阅读,更多相关《基于51单片机LCD液晶显示的简易数控电源.docx(28页珍藏版)》请在冰豆网上搜索。

基于51单片机LCD液晶显示的简易数控电源.docx

基于51单片机LCD液晶显示的简易数控电源

 

and

and

and

电子设计竞赛设计报告

Forpersonaluseonlyinstudyresearch;notforcommercialuse

题目:

基于单片机的简易数控电源

Forpersonaluseonlyinstudyresearch;notforcommercialuse

参赛选手:

Forpersonaluseonlyinstudy

research;notforcommercialuse

学院:

自动化与电子信息学院系别:

电子信息工程

班级:

电信084

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

学号:

08021020

指导教师:

周波老师

时间:

2011年9月8日

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

基于单片机的简易数控电源

Forpersonaluseonlyinstudyandresearch;notfor

commercialuse

摘要:

本次设计采用51单片机进行控制,在对单片机系统、喇叭装置和显示电路做了深入的研究之后,拟出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,用Proteus软件进行了仿真和调试,结果证明了该设计系统的可行性。

由于51系列单片机的控制器运算能力强,处理速度快,可以精确计时,很好地解决了实际生产生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的适用性。

关键字:

51单片机LCD1602液晶显示数控电源Proteus仿真Forpersonaluseonlyinstudyandresearch;notforcommercialuse

仅供个人参考

一、功能介绍

本次设计电路主要由主体电路与扩展电路组成,采用单片机控制设计,使LCD液晶显

示器显示设定的电压值和从外部读入的实际电压值。

设定的电压值经过数据处理可直接送LCD

液晶显示器显示。

将输入的信号经过51单片机处理在LCD液晶显示器上输出;用控制电路和调节开关对LCD显示的时间进行调节,以上两部分组成主体电路。

通过单片机的信号控制音乐芯片电路在报警电路上实现报警功能,设计通过51单片机采集ADC0808莫数转换器上的电压信号实现在LCD上显示实际输出电压的值,以上两部分构成扩展电路。

经过设计、Proteus

仿真、Protel布线制板、焊接调试等工作后设计电路成形。

功能总结如下:

1)输出电压范围0〜+9.9V。

2)电压步进0.1V可调。

3)使用液晶显示器LCD1602作为显示,最小分辨率可达到0.1V。

4)可利用电路上的滑动变阻器进行微调校准。

5)用自动扫描代替人工按键,实现输出电压变化。

6)设计4个按键,输出电压可预置在0〜9.9V之间的任意一个值。

7)设计模数转换电路,实现输出电压的实时监控。

8)设计报警电路实现超量程报警。

9)设计直流电源电路,可直接提供土15V、土5V电压。

二、硬件设计

本设计包括:

单片机系统电路、显示电路、电源电路、报警电路、电压采集电路

1、单片机系统电路

本设计采用51单片机作为整个电路的控制芯片,用最小系统功能电路实现各种控制。

单片机最小系统功能电路如附录所示:

(1)51单片机的引脚图、逻辑图见图2-1

P1.0—

1

P1.1—

2

P1.2—

3

P1.3—

4

P1.4—

5

P1.5—

6

P1.6

7

P1.7—

8

RST7Vpd—

9

不得D用于)商业

[用途

TXD/P3.1

11

INT0/P32

12

INT1/P33

13

T0/P3.4

14

40

1——Vcc

39

'—P0.0

38

'—P0.1

37

—P0.2

36

—P0.3

8031

35

P04

34

—P0.5

33

—P0.6

32

'—P0.7

8051

31

EA/Vpp

30

ALE/PROG

29

PSEN

28

P2.7

27

P2.6

8031

8051

地址数据总线

图2-151单片机的引脚图、逻辑图

(2)引脚功能说明

Vcc:

电源电压

GND接地

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位以吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“T时,可作为高阻抗输入端用,要求外接上拉电阻。

P1口:

P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)另外,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入

(P1.1/T2EX),参见表2-2。

表2-2P1.0和P1.1的第二功能

引脚号

功能特性

P1.0

T2(定时/计数器2外部计数脉冲输入),时钟输出

P1.1

T2EX(定时/计数2捕获/重装载触发和方向控制)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P2端口写“1”,通过内部的上拉电阻把端口拉到高电平,可作输入口。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“T时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。

不得用于商业用途

RST复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于

锁存地址的低8位字节。

PSEN程序储存允许(PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次RSEN言号。

EA/VPP外部访问允许。

欲使CPU仅访问外部程序存储器(地址为OOOOHkFFFFH,EA端必须保持低电平(接地)。

需要注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2振荡器反相放大器的输出端。

(3)复位电路

本次设计在单片机最小系统功能电路上设置复位开关,用以实现系统的复位。

复位电路如下图所示:

RE^T

OO

*

vcc1iou1(—~

2、显示电路

为了获得更好的效果本设计并没有采用常见的LED而是采用了型号为1602的LCD。

用以显示预置输出的电压值和实际输出的电压值。

LCD有LED数码显示更好的更的直观效果,

也更加经久耐用。

液晶显示模块体积小功耗低、显示内容丰富,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件之一了。

本LCD是2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,RSR/WEN三个控制端口(共14线),工作电压为5V,有背光。

1602引脚说明,见表2-1。

表2-1LCD显示屏引脚说明

不得用于商业用途

編号

符号

引脚说明

編号

符号

引脚说明

1

电洒地

9

欢向数据口

£

VDD

电涯正极

10

D3

双向数据口

3

VL

对比度调节

11

D4

取向数据口

4

RS

数据/命令选择

12

D5

孜向数据口

5

读/写选择

13

DS

双向数据口

6

E

模块使能端

14

D7

欢向数据口

7

00

裁向数据口

15

EU

背光源眦

8

D1

欢向数据口

U

EU

背光源正极

VDD电源正极,4.5—5.5V,通常使用5V电压;

VL:

LCD寸比度调节端,电压调节范围为0—5V。

接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;

RS:

MCI写入数据或者指令选择端。

MCI要写入指令时,使RS为低电平;MCI要写入数据时,使RS为高电平;

R/W读写控制端。

R/W为高电平时,读取数据;R/W为低电平时,写入数据;

E:

LCD模块使能信号控制端。

写数据时,需要下降沿触发模块。

D0-D7:

8位数据总线,三态双向。

如果MCU勺I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。

本充电器就是采用4位数据传送方式;

BLALED背光正极。

需要背光时,BLA串接一个限流电阻接VDDBLK接地,实测该模块的背光电流为50mA左右;

BLKLED背光地端。

设计电路如下:

3、数模转换电路

本次设计采用DAC0832数模转换器对预置的电压值进行转换。

DAC0832是双列直插式8位D/A转换器。

能完成数字量输入到模拟量(电流)输出的转换。

其主要参数如下:

分辨率为8位,转换时间为1卩s,满量程误差为土1LSB,参考电压为(+10〜-10)V,供电电源为(+5〜+15)V,不得用于商业用途

仅供个人参考

逻辑电平输入与TTL兼容。

数模转换电路原理图如下:

 

4、电源电路

本电路为土15V、土5V直流稳压电源,它由变压器输出12V交流电到输出端,再经过电源转化成土15V、土5V直流电,电路主要功能是为整个设计电路供电。

7805、7815、7905、

7915是个三端稳压管,+5V、+15V、-5V、-15V电压输出,有稳压取样放大电路,保护电路过流、过压、过热,辅助电路,电流源等功能。

电路如图所示:

5、预置按键电路

当重新接通电源或走时出现误差时都需要进行电压预置,通常,预置的方法是:

根据选

择需要预置的位,再进行加减预置,然后按确认键转入正常输出状态即可。

本次电路设计4

不得用于商业用途

电压显示,确保器正确性。

下图所示即为预置电路:

 

6电压采集电路

本次设计采用ADC0808采集电压信号,由单片机进行相应的计算、转换,最后显示在

LCD数码管上。

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809勺简化版本,功能基本相同。

一般在硬件仿真时采用ADC0808S行A/D转换,实际使用时采用ADC08091行A/D转换。

电压采集电路如下:

V

三、软件设计

1、主函数的设计

这里用C语言的单片机程序构成了本次设计电路的软件系统。

该程序实现,本次设计

电路的主程序流程图如下图所示:

程序初给化

馄盘扫描

中斬

Z

主函数流程图

2、D/A转换子程序

由原理图可知,片选信号CS和数据传送控制信号XFER都与51单片机的P口相连,WR1、WR2均与P2.2口相连。

CPU对DAC1208执行一次写操作,则将一个数据直接写入DAC寄存器,DAC1208的输出模拟量随之变化。

由于DAC1208具有数字量的输入锁存功能,故数字量可以直接从51的P0单片机口送入。

D/A转换子程序流程图如下图:

*3

开始

f

键盘输入

1

f

调入程序

1

T

数模转换

1

T

1備环

D/A转换子流程图

3、A/D的软件设计

本设计电路中,CE/LOAD引脚接地址引脚,使芯片有效状态可以控制。

RUN/HOLD(运行/保持)引脚P□,使A/D转换连续进行。

A/D转换正在进行时,STA引脚输出高电平,STA引脚降为低电平时,由P0.2输出低电平信号到ICL7109的HBEN,读高4位数据、极性和溢出位;由P口输出低电平信号到LBEN,读低8位数据。

不需要采集数据时,不会影响89C51的工作,因此这种方法可简化设计,节省硬件和软件。

A/D转换子流程图如下图:

A/D转换子流程图

仅供个人参考

4、显示程序

显示程序包括预置电压显示和实际输出电压显示程序。

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下表是LCD1602液晶模块的内部显示地址。

LCD1602内部显示地址

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

00

01

02

03:

04:

05:

06:

07

08

09

0A

0B

0C

0D

0E

0F

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

四、主要元器件清单

类别

型号

数量(单位)

IC芯片

STC89C52

1片

MAX232

1片

12V变压器

1个

DAC0832

1个

ADC0808

1个

LM324

1个

LCD

共阴8段数码显示

7只

按钮开关

自锁/自动复位

8个

电容

30pF

2个

10卩F

1个

47卩F

2个

22卩F

1个

晶振

11.0592MHz

1支

32.768KHZ

1支

电阻

1K

1个

10KQ

6个

滑动变阻器50k

2个

三极管

S9013

1个

蜂鸣器

74F378

1个

万能板

焊接型

2块

二极管

发光二极管

10个

1N4007

8个

1N4148

10个

五、设计总结及心得体会

单片机是计算机技术发展的产物,是经济实用开发简便的高科技产品,在当今工业控制、家电等领域占据广泛的市场。

通过此次单片机课程设计来设计个简单的数字闹钟,我巩固了自己学习的单片机知识,来初步了解了小型单片机系统的设计和运用,并提高自己实际动手能力。

设计过程也使我了解了自己能力的不足,不过通过资料收集和文献查询等方法,找出了设计过程中的一些问题以及解决问题的方法,从而比较顺利的完成了这个设计任务。

这次自己所做的设计取得了一些宝贵的经验,提高了自己的动手能力,为将来的学习和工作很有好处。

总之,理论必须和实际结合才有威力,知识必须通过应用才能实现其价值!

所学的东西最终是要面向社会,是在以后的工作能够更好的应用,此时的知识积累是为以后的工作做好坚实的基础。

这个设计总体上不算完美,但是这个设计经历的好处是不可估量的。

许多的问题,再加上能力与精力,还有时间的关系,对系统的设计中的每一个细节不能做到完全的完美。

该系统还需要以后进行完善,而我所做的也仅供以后设计该系统时作为参考。

六、致谢

 

附录一:

单片机最小系统电路及PCB

T

-•

-ill

W

II"

■lip

•卜,

II—I—

I

U

11

0

严c

予4

HD1jy

 

 

 

 

 

附二:

程序

#include#defineucharunsignedchar

#defineuintunsignedint

 

sbitRS=P3A4;

 

sbitBJ=P3A3;

sbitDAC_CS=P3A7;

 

sbitADC_STA=P1A4;

sbitADC_OE=P1A5;

sbitADC_SCL=P1A6;

ucharcodetable1[]="08_XTT-IN_V:

0.0V";

ucharcodetable2[]="DACOUT_V:

0.0V";

ucharge,shifen,keynum,volt,volt1,ge1,shifen1,a;

 

uintx,y;

for(x=z;x>0;x__)

仅供个人参考

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

}

voiddelay1()

{;;}

voidwrite_com(ucharcom)//

{

RS=0;

EN=0;

P2=com;

delay

(1);

EN=1;

delay

(1);

EN=0;

}

voidwrite_date(uchardate)//

{

RS=1;

EN=0;

P2=date;

delay

(1);

EN=1;

delay

(1);

EN=0;

}

voidInit()//

{

ucharnum;

EN=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(num=0;num<16;num++)

{

write_date(table1[num]);delay(5);

}

write_com(0x80+0x40);

for(num=0;num<16;num++)

{

write_date(table2[num]);delay(5);

}

}

voidwrite_voltage(ucharadd,uchardat)//

写指令到1602

写数据到1602

初始化

写电压到1602

 

仅供个人参考

{write_com(0x80+0x40+add);write_date(0x30+dat);

}

voidwrite_voltage1(ucharadd,uchardat)//

{

write_com(0x80+add);write_date(0x30+dat);

}

//voidADC0808_STA()

//{

//ADC_STA=0;

//delay1();

//ADC_STA=1;

//}

voidADC0808_RD()

{

//P0=0xff;

//ADC_OE=1;

//volt1=P0;

//ADC_OE=0;

//ge1=volt1/21;

//a=volt1%21;

//shifen1=(a-2)/2;write_voltage1(12,ge);write_voltage1(14,shifen);

}

voidDAC0830_OUT(uchardadata)//

{

DAC_CS=0;

P0=dadata;

DAC_WR=0;

delay

(1);

DAC_WR=1;

DAC_CS=1;

写电压到1602

//ADC0808开始信号

写电压数据到DAC0832

voidkeyscan()//

{

if(key1==0)

{

delay(10);

if(key1==0)

{

keynum++;

键盘扫描

 

仅供个人参考

while(!

key1);

if(keynum==1)

{write_com(0x80+0x40+14);

write_com(0x0e);

}

}

if(keynum==2)

{

write_com(0x80+0x40+12);write_com(0x0e);

}

if(keynum==3)

{

keynum=0;

write_com(0x0c);

}

}

if(keynum!

=0)

{

if(key2==0)

{

delay(300);

if(key2==0)

{

if(keynum==1)

{

shifen++;

if(shifen>=10)

{

shifen=0;

BJ=0;

delay(200);

BJ=1;

ge++;

if(ge>=10)

{

ge=9;

BJ=0;

delay(200);

BJ=1;

}

}

write_voltage(14,shifen);write_voltage(12,ge);

}

仅供个人参考

if(keynum==2)

{

ge++;

if(ge>=10)

{

ge=9;

BJ=0;delay(200);

BJ=1;

}

write_voltage(12,ge);

}

}

}

if(key3==0)

{

delay(300);

if(key3==0)

{

if(keynum==1)

{

shifen--;

if(shifen==-1)

{

shifen=9;

BJ=0;delay(200);

BJ=1;

ge--;

if(ge==-1)

{

ge=0;

BJ=0;

delay(200);

BJ=1;

}

}write_voltage(14,shifen);

write_voltage(12,ge);}if(keynum==2)

{

ge--;

if(ge==-1)

{

ge=0;

仅供个人参考

BJ=0;

delay(200);

BJ=1;

}

write_voltage(12,ge);

}

}

}

}

}

voidkeyscan4()

{

if(key4==0)

{

delay(10);

if(key4==0)

{

while(!

key4);

//ADC0808_STA();//delay(10);

ADC0808_RD();

}

}

}

主函数

voidmain()//

{

keynum=0;

//ADC_SCL=0;

//ADC_OE=0;

ge=0;

shifen=0;

Init();

while

(1)

{

//ADC_SCL=~ADC_SCL;keyscan();

keyscan4();

volt=ge*10+shifen;

DAC0830_OUT(volt);

}

}

仅供个人参考

仅供个人用于学习、研究;不得用于商业用途

Forpersonaluseonlyinstudyandresearch;notforcommercialuse.

Nur

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

当前位置:首页 > 医药卫生 > 基础医学

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

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