基于51单片机临时存包柜控制系统的设计与制作_第1页
基于51单片机临时存包柜控制系统的设计与制作_第2页
基于51单片机临时存包柜控制系统的设计与制作_第3页
基于51单片机临时存包柜控制系统的设计与制作_第4页
基于51单片机临时存包柜控制系统的设计与制作_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1设计的意义...............................................................................................................1

2设计方案遴选...........................................................................................................1

2.1产品功能分析...............................................................................................1

2.2系统框图设计...............................................................................................1

3产品的硬件设计.......................................................................................................2

3.1STC89C51单片机核心电路设计................................................................2

3.2LCD显示模块..............................................................................................5

3.3自锁开关模块...............................................................................................6

3.4继电器控制模块...........................................................................................7

3.5按键模块.......................................................................................................8

3.6蜂鸣器提示模块...........................................................................................9

3.7系统硬件测试.............................................................................................10

4产品软件设计.........................................................................................................11

5电路原理图及PCB板设计....................................................................................12

6实物作品展示及指引图.........................................................................................13

6.1实物作品展示.............................................................................................13

6.2实物作品操作演示.....................................................................................14

7设计总结.................................................................................................................18

8参考文献.................................................................................................................19

9附录.........................................................................................................................20

I

湖南商务职业技术学院毕业设计

基于51单片机临时存包柜控制系统的设计与制作

1设计的意义

随着现在移动互联网的飞速发展,人们的生活水平以及安全意识的提高,

智能存包柜在我们的生活中越来越普遍。超市商场、车站、医院等区域内的临

时存包柜可以帮我们临时存储一些不易携带的物品。为我们的生活提供了许多

便利。而且电子存包柜的安全性较高,每次提取的密码都是随机生成,可以杜

绝非授权人员使用,可以有效防范极少数不法分子、外来人员偷窃私人财产。

在使用时,我们只需自行提取一组5位数密码,就可以把不易携带的私人物品

存放在里面,且如果连续输入错误会自动报警。即安全又可靠,使用也十分的

简单方便,极大的保障了我们在公共场合的私人财产安全。

2设计方案遴选

2.1产品功能分析

本设计使用了STC89C51作为控制核心,通过自行提取一组5位数随机密

码在4*4的矩阵键盘上输入来打开电子密码锁,通过LCD1602显示在密码正确

时显示OPEN!,密码错误时显示ERROR!,输入密码时显示INITPASSWORD。本产

品具有报警功能,当密码输入错误时蜂鸣器响且LED灯亮,且当密码连续输入

错误三次时会电子密码锁定。密码还可以通过用户自行修改,修改密码前需要

输入一遍原密码。

2.2系统框图设计

图2-1系统总体框图

1

湖南商务职业技术学院毕业设计

3产品的硬件设计

3.1STC89C51单片机核心电路设计

3.1.1单片机STC89C51概述

STC89C51单片机是一款基于8051内核的高性价比单片机,由国内的STC

微电子公司生产制造。具有1T和2T两种不同的时钟模式,主频可达33MHz。

它具有可编程的Flash存储器、RAM存储器和大量的外设接口,如定时器、

串行通信口、并行口等。STC89C51系列单片机能够运行基于C语言、汇编

语言等高级语言编写的程序,因此适用于众多的应用场景。

STC89C51的主要特性如下:

1内核:8051内核

2时钟模式:1T/12T

3主频:0-33MHz

4存储器:Flash存储器、RAM存储器

5外设接口:定时器、串行通信口、并行口等

6支持高级语言编程

7供电电压:2.4V-5.5V

8低功耗设计

9外部中断:4个

10周能系统复位:软件复位/硬件复位

3.1.2单片机STC89C51的引脚说明

1.主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源

GND(Pin20):接地线

2.外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端

XTAL2(Pin20):片内振荡电路的输出端

3.控制引脚(4根)

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片

机复位。

ALE/PROG(Pin30):地址锁存允许信号

PSEN(Pin29):外部存储器读选通信号

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器

读指令,如果接高电平则从内部程序存储器读指令。

4.可编程输入/输出引脚(32根)

2

湖南商务职业技术学院毕业设计

STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3

口,每个口有8位(8根引脚),共32根。

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7

P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7

P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7

P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7

工作频率35Mhz,6T/12T可选。

U1

140

P10VCC

239

P11P00

338

P12P01

437

P13P02

536

P14P03

635

P15P04

734

P16P05

833

P17P06

932

RESETP07

1031

P30/RXDEA/VP

1130

P31/TXDALE/P

1229

P32/INT0PSEN

1328

P33/INT1P27

1427

P34/T0P26

1526

P35/T1P25

1625

P36WRP24

1724

P37/RDP23

1823

X2P22

1922

X1P21

2021

GNDP20

STC89C52

图3-1STC89C51DIP封装图

3.1.3单片机STC89C51的最小系统

最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单

片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条

件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、

A/D扩展等,使单片机完成较复杂的功能。

STC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统

简单﹑可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时

钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系

统只能用作一些小型的控制单元。

图3-2单片机最小系统原理框图

3

湖南商务职业技术学院毕业设计

(1)时钟电路

STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二

是外部时钟方式。内部时钟方式如图2-4所示。在STC89C51单片机内部有一

振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶

振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和

C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振

CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。

C2

18

30pF

Y1

C311.0592MHz

19

30pF

图3-3STC89C51内部时钟电路

(2)复位电路

当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单

片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位

状态)。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充

放电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复

位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端

与电源Vcc接通而实现的。

VCCS4

9

C1

10uF

R1

10k

图3-4STC89C51复位电路

4

湖南商务职业技术学院毕业设计

3.2LCD显示模块

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符

型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,

以及少量电阻、电容元件和结构件等装配在PCB板上而组成。不同厂家生产的

LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多

数制造商都直接将裸片弄到板子上。点阵图形式液晶由M×N个显示单元组成,

假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字

节,共16×8=128个点组成。显示屏上64×16个显示单元与显示RAM区的1024字

节相对应,每一字节的内容与显示屏上相应位置的亮暗对应。例如显示屏第一

行的亮暗由RAM区的000H~00FH的16字节的内容决定,当(000H)=FFH时,屏幕

左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,屏幕右下角显示

一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H…,(00EH)

=00H,(00FH)=00H时,在屏幕的顶部显示一条由8条亮线和8条暗线组成的虚

线。这就是LCD显示的基本原理。

字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式

LCD,常用16×1,16×2,20×2和40×2等的模块。一般的LCD1602字符型液晶

显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日

文片假名和一般性符号。

其主要特性如下:

重量轻:小于100克;

体积小:小于11mm厚;

功耗低:10—15mW;

显示内容:192种字符(5×7点字型);

32种字符(5×10点字型);

可自编8(5×7)或许(5×10)种字符;

指令功能强:可组合成各种输入、显示、移位方式以满足不同的要求;

接口简单方便:可与8位微处理器或微控制器相联;

工作温度宽:0—50oC

可靠性高:寿命为50,000小时

5

湖南商务职业技术学院毕业设计

编号符号引脚说明编号符号引脚说明

1VSS电源地9D2DataI/O

2VDD电源正极10D3DataI/O

3V0液晶显示偏压信号11D4DataI/O

4RS数据/命令选择端(H/L)12D5DataI/O

5R/W读写选择端(H/L)13D6DataI/O

6E使能信号14D7DataI/O

7D0DataI/O15BLA背光源正极

8D1DataI/O16BLK背光源负极

图3-7液晶显示模块电路图

3.3自锁开关模块

自锁开关电路中起到电源的开关作用,常开的其中一脚接DC电源插口电

源脚,常开的另一脚接电路的VCC。

图3-8自锁开关原理图图3-9自锁开关硬件图

6

湖南商务职业技术学院毕业设计

3.4继电器控制模块

继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、

自动控制、及电力电子控制元件中,是最重要的控制元件之一。

继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频

率、温度、压力、速度、光等)的感应机构(输入部分);有能对被控电路实

现“通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部

分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间

机构(驱动部分)。

作为控制元件,概括起来,继电器有如下几种作用:

(1)扩大控制范围:例如,多触点继电器控制信号达到某一定值时,可

以按触点组的不同形式,同时换接、开断、接通多路电路。

(2)放大:例如,灵敏型继电器、中间继电器等,用一个很微小的控制

量,可以控制很大功率的电路。

(3)综合信号:例如,当多个控制信号按规定的形式输入多绕组继电器

时,经过比较综合,达到预定的控制效果。

(4)自动、遥控、监测:例如,自动装置上的继电器与其他电器一起,

可以组成程序控制线路,从而实现自动化运行。

3-10继电器硬件图3-11继电器原理图

7

湖南商务职业技术学院毕业设计

3.5按键模块

4*4矩阵式键盘由行和列组成,CPU对所有键盘进行监视矩阵键盘是单片

机外部设备中所使用的排布类似于矩阵的键盘组,由于电路设计时需要更多的

外部输入,单独的控制一个按键需要浪费很多时间,于是就有了矩阵键盘,由

於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,

为了避免让单片机误判为多次输入同一按键,我们必须在侦测到有按键被按

下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可

以让键盘的输入稳定。常用的矩阵键盘有4*4或是8*8,其中4*4是被用的最

多的。

31313131

ABCD

2

422

4442

P17

31313131

K3K6K9#

2

422

4442

P16

31313131

K2K5K8K0

2

422

4442

P15

31313131

K1K4K7*

2

422

4442

P14

P13

P12

P11

P10

图3-12矩阵键盘原理图

8

湖南商务职业技术学院毕业设计

3.6蜂鸣器提示模块

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于

计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时

器等电子产品中作发声器件。;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣

器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、

“LB”、“JD”等)表示。1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡

器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳

上还装有发光二极管。

多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作

电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂

鸣片发声。

压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀

上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外

壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生

磁场。振动膜片在电磁线圈和磁铁的相互缠绕

蜂鸣器驱动电路一般都包含以下几个部分:一个三极管、一个蜂鸣器、一

个限流电阻。

蜂鸣器为发声元件,在其两端施加直流电压(有源蜂鸣器)或者方波(无

源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作

频率、工作电流、驱动方式(直流/方波)等。这些都可以根据需要来选择。

图3-13蜂鸣器电路

9

湖南商务职业技术学院毕业设计

3.7系统硬件测试

系统硬件电路的测试主要是检测电路是否出现漏焊、短路、断路、虚焊、

一些具有方向的元件是否方向弄错、电路设计错误等情况。

对于漏焊、元件方向弄错的检测方法是将实物电路板对照着PCB图的线

路,检查每一个元件和导线在实物上是否有出现。如果发现没有或者对不上的

情况下需及时的重新对照确定漏焊时及时的补焊。

对于短路、断路、虚焊这些情况采用数字万用表。将数字万用表打到二极

管档位,然后通过红表笔和黑表笔碰一起,万用表会发出鸣叫警示。根据这个

原理就可以用来检测短路、断路、虚焊。在需要检测的元件或导线的两端用两

根表笔检测,如果导通蜂鸣器会鸣叫,如果断开蜂鸣器不叫。这样根据我们所

需要检测的情况,在结合检测的现象就可以测出线路是否有问题。

10

湖南商务职业技术学院毕业设计

4产品软件设计

图4-1主程序流程图

11

湖南商务职业技术学院毕业设计

5电路原理图及PCB板设计

图5-1电路原理图

图5-2PCB封装图

12

湖南商务职业技术学院毕业设计

6实物作品展示及指引图

6.1实物作品展示

图6-1实物图

13

湖南商务职业技术学院毕业设计

6.2实物作品操作演示

1.接通电源后,按下#号键提取一组5位数的随机密码,如下图所示。

图6-2

14

湖南商务职业技术学院毕业设计

2.输入提取的密码后按下确认键显示OPEN!则锁打开

图6-3

15

湖南商务职业技术学院毕业设计

图6-4

16

湖南商务职业技术学院毕业设计

图6-5

17

湖南商务职业技术学院毕业设计

7设计总结

通过这段时间的制作设计,终于完成了本设计方案的基本要求。经过从基

本方案的确定,再到硬件、电路的选择、电路的焊接再到程序的调试,途中我

遭遇了许多困难,也是用过这次设计,让我认识到自己的许多不足之处。但通

过从互联网上查找资料,再到自己坚持不懈的努力攻克,终于攻克了各个难

点,完成了本次设计。在这次设计过程中,学到到了很多课堂中学不到的东西

于经验。也使我更深刻的了解到课本知识与实际操作的区别,比如在实际操作

中会遇到很多意外情况,这些都需要自己去一一解决。相信这段经历在以后都

会使我受益良多。

18

湖南商务职业技术学院毕业设计

8参考文献

[1]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,

2006.

[2]江晓安,董秀峰,杨颂华.数字电子技术基础[M].西安:电子科技大

学出版社,2008.

[3]黄友锐.单片机原理及应用[M].合肥:合肥工业大学出版社2006.

[4]徐科军.传感器与检测技术[M].北京:电子工业出版社,2011.

[5]孙力.C语言程序设计[M].北京:中国农业出版社,2008.

[6]陈晓鸽,昂军,胡仁喜.Protel99SE标准实例教程[M].北京:机械工

业出版社,2010.

[7]金桂,向国梁.基于C语言STC89C52单片机电子密码锁的设计与仿真

[J].现代电子技术,2010,19:176-182.

19

湖南商务职业技术学院毕业设计

9附录

附录1产品原件清单

1.9*15万用板(J2601A)

2.按键*17(H0203G)

3.1602液晶(J0802A)

4.16p插针(H0204E)

5.16p单排母座(H0204F)

6.5528光敏电阻(H0203K)

7.104蓝白电位器(H0205H)

8.2.2k电阻*2(H0201D)

9.1k电阻(H0201E)

10.10k电阻*4(H0201C)

11.1.5k电阻(H0201E)

12.103排阻(H0202I)

13.9012*2三极管(H0203B)

14.9013三极管(H0202J)

15.3p接线端子(H0205M)

16.5v有源蜂鸣器(H0203I)

17.40脚IC座(H0202A)

18.stc89c51单片机

19.10uf电容(H0203H)

20.30pf瓷片电容*2(H0203C)

21.自锁开关(H0203F)

22.8脚IC座(H0202H)

24c02芯片(H0113D)

23.12m晶振(H0203D)

24.Led(5MM红色)(H0202L)

25.5v松乐继电器(H0205K)

26.DC电源接口(H0203E)

27.导线若干

28.焊锡若干

20

湖南商务职业技术学院毕业设计

29.usb电源线(电池盒+DC插头)

附录2源程序代码

#include<REG51.h>

#include<intrins.h>

#defineLCM_DataP0

#defineucharunsignedchar

#defineuintunsignedint

#definew6//定义密码位数

sbitlcd1602_rs=P2^7;

sbitlcd1602_rw=P2^6;

sbitlcd1602_en=P2^5;

sbitScl=P3^4;//24C02串行时钟

sbitSda=P3^5;//24C02串行数据

sbitALAM=P2^1;//报警

sbitKEY=P3^6;//开锁

sbitopen_led=P2^2;//开锁指示灯

bitoperation=0;//操作标志位

bitpass=0;//密码正确标志

bitReInputEn=0;//重置输入充许标志

bits3_keydown=0;//3秒按键标志位

bitkey_disable=0;//锁定键盘标志

unsignedcharcountt0,second;//t0中断计数器,秒计数器

voidDelay5Ms(void);

unsignedcharcodea[]={0xFE,0xFD,0xFB,0xF7};//控盘扫描控制表

unsignedcharcodestart_line[]={"password:"};

unsignedcharcodename[]={"===CodedLock==="};//显示名称

unsignedcharcodeCorrect[]={"correct"};//输入正确

unsignedcharcodeError[]={"error"};//输入错误

unsignedcharcodecodepass[]={"pass"};

unsignedcharcodeLockOpen[]={"open"};//OPEN

unsignedcharcodeSetNew[]={"SetNewWordEnable"};

unsignedcharcodeInput[]={"input:"};//INPUT

unsignedcharcodeResetOK[]={"ResetPasswordOK"};

unsignedcharcodeinitword[]={"Initpassword..."};

unsignedcharcodeEr_try[]={"error,tryagain!"};

unsignedcharcodeagain[]={"inputagain"};

unsignedcharInputData[6];//输入密码暂存区

21

湖南商务职业技术学院毕业设计

unsignedcharCurrentPassword[6]={1,3,1,4,2,0};//当前密码值

unsignedcharTempPassword[6];

unsignedcharN=0;//密码输入位数记数

unsignedcharErrorCont;//错误次数计数

unsignedcharCorrectCont;//正确输入计数

unsignedcharReInputCont;//重新输入计数

unsignedcharcodeinitpassword[6]={0,0,0,0,0,0};

//=====================5ms延时==============================

voidDelay5Ms(void)

{

unsignedintTempCyc=5552;

while(TempCyc--);

}

//===================400ms延时==============================

voidDelay400Ms(void)

{

unsignedcharTempCycA=5;

unsignedintTempCycB;

while(TempCycA--)

{

TempCycB=7269;

while(TempCycB--);

}

}

//================================================================================

=============

//================================24C02===========================================

=============

//================================================================================

=============

voidmDelay(uintt)//延时

{

uchari;

while(t--)

{

for(i=0;i<125;i++)

{;}

}

}

22

湖南商务职业技术学院毕业设计

voidNop(void)//空操作

{

_nop_();

_nop_();

_nop_();

_nop_();

}

/*起始条件*/

voidStart(void)

{

Sda=1;

Scl=1;

Nop();

Sda=0;

Nop();

}

/*停止条件*/

voidStop(void)

{

Sda=0;

Scl=1;

Nop();

Sda=1;

Nop();

}

/*应答位*/

voidAck(void)

{

Sda=0;

Nop();

Scl=1;

Nop();

Scl=0;

}

/*反向应答位*/

voidNoAck(void)

{

Sda=1;

Nop();

23

湖南商务职业技术学院毕业设计

Scl=1;

Nop();

Scl=0;

}

/*发送数据子程序,Data为要求发送的数据*/

voidSend(ucharData)

{

ucharBitCounter=8;

uchartemp;

do

{

temp=Data;

Scl=0;

Nop();

if((temp&0x80)==0x80)

Sda=1;

else

Sda=0;

Scl=1;

temp=Data<<1;

Data=temp;

BitCounter--;

}

while(BitCounter);

Scl=0;

}

/*读一字节的数据,并返回该字节值*/

ucharRead(void)

{

uchartemp=0;

uchartemp1=0;

ucharBitCounter=8;

Sda=1;

do{

Scl=0;

Nop();

Scl=1;

Nop();

if(Sda)

temp=temp|0x01;

else

24

湖南商务职业技术学院毕业设计

temp=temp&0xfe;

if(BitCounter-1)

{

temp1=temp<<1;

temp=temp1;

}

BitCounter--;

}

while(BitCounter);

return(temp);

}

voidWrToROM(ucharData[],ucharAddress,ucharNum)

{

uchari;

uchar*PData;

PData=Data;

for(i=0;i<Num;i++)

{

Start();

Send(0xa0);

Ack();

Send(Address+i);

Ack();

Send(*(PData+i));

Ack();

Stop();

mDelay(20);

}

}

voidRdFromROM(ucharData[],ucharAddress,ucharNum)

{

uchari;

uchar*PData;

PData=Data;

for(i=0;i<Num;i++)

{

Start();

Send(0xa0);

Ack();

Send(Address+i);

Ack();

25

湖南商务职业技术学院毕业设计

Start();

Send(0xa1);

Ack();

*(PData+i)=Read();

Scl=0;

NoAck();

Stop();

}

}

//================================================================================

==================

//=======================================LCD1602==================================

==================

//================================================================================

==================

#defineyi0x80//LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)

#defineer0x80+0x40//LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)

//----------------延时函数,后面经常调用----------------------

voiddelay(uintxms)//延时函数,有参函数

{

uintx,y;

for(x=xms;x>0;x--)

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

}

//--------------------------写指令---------------------------

write_1602com(ucharcom)//****液晶写入指令函数****

{

lcd1602_rs=0;//数据/指令选择置为指令

lcd1602_rw=0;//读写选择置为写

P0=com;//送入数据

delay(1);

lcd1602_en=1;//拉高使能端,为制造有效的下降沿做准备

delay(1);

lcd1602_en=0;//en由高变低,产生下降沿,液晶执行命令

}

//-------------------------写数据-----------------------------

write_1602dat(uchardat)//***液晶写入数据函数****

{

lcd1602_rs=1;//数据/指令选择置为数据

lcd1602_rw=0;//读写选择置为写

26

湖南商务职业技术学院毕业设计

P0=dat;//送入数据

delay(1);

lcd1602_en=1;//en置高电平,为制造下降沿做准备

delay(1);

lcd1602_en=0;//en由高变低,产生下降沿,液晶执行命令

}

//-------------------------初始化-------------------------

voidlcd_init(void)

{

write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据

write_1602com(0x0c);//开显示不显示光标

write_1602com(0x06);//整屏不移动,光标自动右移

write_1602com(0x01);//清显示

}

//================================================================================

========

//================================================================================

=========

//==============将按键值编码为数值=========================

unsignedcharcoding(unsignedcharm)

{

unsignedchark;

switch(m)

{

case(0x11):k=1;break;

case(0x21):k=2;break;

case(0x41):k=3;break;

case(0x81):k='A';break;

case(0x12):k=4;break;

case(0x22):k=5;break;

case(0x42):k=6;break;

case(0x82):k='B';break;

case(0x14):k=7;break;

case(0x24):k=8;break;

case(0x44):k=9;break;

case(0x84):k='C';break;

case(0x18):k='*';break;

case(0x28):k=0;break;

case(0x48):k='#';break;

case(0x88):k='D';break;

27

湖南商务职业技术学院毕业设计

}

return(k);

}

//=====================按键检测并返回按键值===============================

unsignedcharkeynum(void)

{

unsignedcharrow,col,i;

P1=0xf0;

if((P1&0xf0)!=0xf0)

{

Delay5Ms();

Delay5Ms();

if((P1&0xf0)!=0xf0)

{

row=P1^0xf0;//确定行线

i=0;

P1=a[i];//精确定位

while(i<4)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论