叫号系统

更新时间:2024-06-15 21:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉理工大学课程设计

目 录

摘 要 ················································································································· 2 ABSTRACT ······················································································································· 3 一 Multisim软件介绍 ·························································································· 4

1.1 EDA技术概述·································································································· 4 1.2 Multisim特点 ····························································································· 4 1.3 Multisim 分析方法 ···················································································· 5 二 课程设计题目分析 ······························································································· 6

2.1 设计要点········································································································· 6 2.2 工作原理········································································································· 6 三 电路的设计及工作原理 ····················································································· 8

3.1电路功能显示部分·························································································· 8 3.2串口程序下载电路部分·················································································· 9 3.3单片机最小系统···························································································· 11 3.4系统客户服务部分························································································ 13 3.5电路工作原理································································································ 13 四 系统仿真 ············································································································· 14

4.1系统仿真图···································································································· 14 五 体会感受 ··············································································································· 15 六 元件清单 ··············································································································· 16 七 参考书目 ··············································································································· 17 八 附录 ··················································································································· 18

源程序··················································································································· 18

武汉理工学《数字电子技术》课程设计说明书

摘 要

叫号机又称排队机,是一种综合运用计算机技术、网络技术、多媒体技术、

通讯控制技术的高新技术产品,能有效地代替客户进行排队,适用于各类窗口服务行业,目前已经广泛应用于银行、医院等行业。使用叫号机系统,一方面可消除客户长时间“站队”的辛苦、对“站错队”、“插队”的抱怨,全面改善服务质量和企业形象,另一方面更可以依据统计数据调整业务分配、挖掘潜力、合理安排窗口服务,减少群众的等候时间,提高办事效率。

关键字:叫号机、排队、顾客。

2

武汉理工学《数字电子技术》课程设计说明书

ABSTRACT

Calls a number machine calls lining up machine.It is one kind of synthesis utilization computer technology, the networking, the multimedia technologies and the communication control technology high-tech product. It will be the effective zone carry on lining up for the customer,that is suitable each kind of window service industry. At present already widely applied in professions and such as bank, hospital. The use calls a number machine the system. One hand may eliminate the guest head of household time “stands in line” is laborious, is right “stands the wrong team”, “joins a production team” the complaint. Improves the grade of service and the enterprise image comprehensively. The other hand may rest on the statistical data adjustment traffic distribution, the excavation potential, the possible arrangement window service. It will reduce peoples’ waiting time and raise the working efficiency.

Key Words : number maching,queue, customer.

3

武汉理工学《数字电子技术》课程设计说明书

一 Multisim软件介绍

Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

1.1 EDA技术概述

EDA就是“Electronic Design Automation”的缩写技术已经在电子设计领域得到广泛应用。发达国家目前已经基本上不存在电子产品的手工设计。一台电子产品的设计过程,从概念的确立,到包括电路原理、PCB版图、单片机程序、机内结构、FPGA的构建及仿真、外观界面、热稳定分析、电磁兼容分析在内的物理级设计,再到PCB钻孔图、自动贴片、焊膏漏印、元器件清单、总装配图等生产所需资料等等全部在计算机上完成。EDA技术借助计算机存储量大、运行速度快的特点,可对设计方案进行人工难以完成的模拟评估、设计检验、设计优化和数据处理等工作。EDA已经成为集成电路、印制电路板、电子整机系统设计的主要技术手段。美国NI公司(美国国家仪器公司)的Multisim 9软件就是这方面很好的一个工具。而且Multisim 9计算机仿真与虚拟仪器技术(LABVIEW 8)(也是美国NI公司的)可以很好的解决理论教学与实际动手实验相脱节的这一老大难问题。学员可以很好地、很方便地把刚刚学到的理论知识用计算机仿真真实的再现出来。并且可以用虚拟仪器技术创造出真正属于自己的仪表。极大地提高了学员的学习热情和积极性。真正的做到了变被动学习为主动学习。这些在教学活动中已经得到了很好的体现。还有很重要的一点就是:计算机仿真与虚拟仪器对教员的教学也是一个很好的提高和促进。Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。

1.2 Multisim特点

4

武汉理工学《数字电子技术》课程设计说明书

●通过直观的电路图捕捉环境, 轻松设计电路 ●通过交互式SPICE仿真, 迅速了解电路行为 ●借助高级电路分析, 理解基本设计特征

●通过一个工具链, 无缝地集成电路设计和虚拟测试 ●通过改进、整合设计流程, 减少建模错误并缩短上市时间

NI Multisim软件结合了直观的捕捉和功能强大的仿真,能够快速、轻松、高效地对电路进行设计和验证。凭借NI Multisim,您可以立即创建具有完整组件库的电路图,并利用工业标准SPICE模拟器模仿电路行为。借助专业的高级SPICE分析和虚拟仪器,您能在设计流程中提早对电路设计进行的迅速验证,从而缩短建模循环。与NI LabVIEW和SignalExpress软件的集成,完善了具有强大技术的设计流程,从而能够比较具有模拟数据的实现建模测量

1.3 Multisim 分析方法

Multisim10为仿真电路提供了两种分析方法,即利用虚拟仪表观测电路的某项参数和利用Multisim10 提供的十几种分析工具,进行分析。常用的分析工具有:直流工作点分析、交流分析、 瞬态分析、傅立叶分析、失真分析、噪声分析和直流扫描分析。利用这些分析工具,可以了解电路的基本状况、测量和分析电路的各种响应,且比用实际仪器测量的分析精度高、测量范围宽。下面将详细介绍常用基本分析方法的作用、分析过程的建立、分析对话框的使用以及测试结果的分析等内容。

5

武汉理工学《数字电子技术》课程设计说明书

二 课程设计题目分析

2.1 设计要点

① 顾客按下抽号模块上的抽号按键后,系统会根据排队人数自动为客户排号,将号码及还需要等的人数显示在lcd上;使顾客了解情况,当超过100时,抽号 模块则停止服务,需等待前面的客户办理完业务才可抽号。

② 当抽号模块上5秒内没有按键按下时,lcd上显示着当前的等待人数,并且根据较好人数和抽号人数改变。

③ 有三个窗口(普通窗口两个,一个Vip窗口)可提供服务,当客户人员按下叫号模块上的系统端按钮时,系统会根据排队人数在lcd上线时提示,系统自动将号码后移一位。

④ 具有手动清零端,vip客户专用窗口端及抽号按钮。

2.2 工作原理

当用户按下普通用户按钮或者贵宾用户按钮时,系统会在lcd屏幕上显示客户的号码及当前的排队人数。客户可以在休息去静静等候,服务人员会将当前服务的号码和服务的窗口显示在lcd上。如果一定时间之内系统端和客户端都没什么动作,则lcd会自动显示当前等带的人数。并且服务完一个客户之后,会自动的递减。等待的客户上限为100,当人数为100时,系统会提示客户当前排队系统停止服务。

lcd显示端口 客户服务端 系统服务端 清零复位端 图 1

6

武汉理工学《数字电子技术》课程设计说明书

2.3方案的选择

方案一:

纯数字电路设计的叫号系统是经过脉冲计数器累加后,译码器对其进行译码后显示在led上。主要用到74ls160,74ls48等芯片,但考虑到电路的实现过程中会用到过多的芯片和元件,焊接线方法比较复杂,采用杜邦线连接外观看起来会显得比较杂乱。所以选择纯数字电路会有些复杂和繁琐,放弃了对方案一的采纳。

方案二:

利用单片机来设计叫号机已经成为主流,单片机的优点时设计简单,容易实现,只需一个简单的程序就可以完成复杂的功能,lcd的各种显示都是有赖于单片机的快速发展和应用,在我们的生活中单片机的应用会越来越多,分量会越来越重,各个方面都将有单片机发展的一席之地。由于自己之前对单片机最小系统学习过一段时间,所以这次采取用单片机来做本次课设,一是对于所学东西的一种运用。下面是实现该功能的框图:

图1 方案二原理框图

7

武汉理工学《数字电子技术》课程设计说明书

三 电路的设计及工作原理

3.1电路功能显示部分

3.1.1 LCD1602的引脚图

图 2

3.1.2 LCD1602的基本操作时序

·读状态:输入:RS=L,RW=H,E=H. 输出:D0-D7=状态字 ·写指令:输入:RS=L,RW=H,D0-D7=指令码,E=高脉冲 输出:无

·读状态:输入:RS=H,RW=H,E=H. 输出:D0-D7=数据 ·写指令:输入:RS=H,RW=L,D0-D7=数据,E=高脉冲 输出:无

8

武汉理工学《数字电子技术》课程设计说明书

3.1.3 LCD1602RAM映射图

图 3

3.1.4 LCD1602的指令说明

指令码:00111000 功能:设置显示模式为16*2 5*7点阵。8位数据接口 指令码:00001DCB 功能:D=1开显示,D=0关显示;

C=1开光标显示,C=0关光标显示; B=1光标闪烁,B=0光标不闪烁;

3.2串口程序下载电路部分

3.2.1电路图

图 4

9

武汉理工学《数字电子技术》课程设计说明书

3.2.2 MAX232芯片介绍:

·第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

·第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

·第三部分是供电。15脚GND、16脚VCC(+5v)。 MAX232特点:

1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电

3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-

4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器 6、内部集成两个RS-232C接收器

7、高集成度,片外最低只需4个电容即可工作。

图 5

10

武汉理工学《数字电子技术》课程设计说明书

3.3单片机最小系统

3.3.1最小系统框图:

图 6

89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

11

武汉理工学《数字电子技术》课程设计说明书

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

3.3.2复位电路 :

图 7

复位电路是通过按下开关后给单片机reset管脚赋值,高电平是起其工作点

平。

12

武汉理工学《数字电子技术》课程设计说明书

3.4系统客户服务部分

系统端的四个按键:(两个普通窗口按键,一个贵宾窗口按键,一个复位清零端)

图 8

客户端的两个按键(普通客户和贵宾客户)

图 9

3.5电路工作原理

当有客户需要服务时,客户可以选择客户端的两个按钮之一(一个是普通客户,一个是贵宾客户)。当客户按键完毕后,lcd上会显示客户的号码和当前正在等待的人数。然后客户可以在休息去等待。

系统端设置有三个按键,当处理完一个客户的业务之后,工作人员将自己窗口的按键按压一次,lcd上则会显示xx号 xx窗口的消息。每按下一次,对应的等候人数都会减一。

系统端的复位键是将所有的状态回复至初始状态。

若所有的按键都无人操作达到一定时间后,系统则会默认显示的是当前排队的人数。

13

武汉理工学《数字电子技术》课程设计说明书

四 系统仿真

4.1系统仿真图

图 10

仿真的结果和我们预计的结果一致。在仿真期间出现过软件奔溃的原

因,但是后来经过一些特殊的处理,软件又恢复了正常功能。导致这一原因的因素应该是软件的版本太新,相对旧版本不稳定的原因造成的。

14

武汉理工学《数字电子技术》课程设计说明书

五 体会感受

伴随着数电课设的结束,这学期也就结束了。通过对本次课设的认真完成,

使我体会到累点辛苦点也是一种享受。在紧张的期末考试时期,我们抽出那么多的时间用在了课设上,买元件,画仿真,焊板子。累了点,但是我们换来的是对自己动手能力的培养,及对自己独立思考能力的提升。

刚开始拿到课设题目是有点小畏惧,不知道从何处下手,经过老师的指导,了解了对本题目的要求后,我开始了对该题目的着手。刚开始想着用纯数字电路做,但是考虑到经济、时、方便的因素之后,决定还是用单片机做。

从最小系统开始就逐渐的展开了自己的课设之路,刚开始对叫号机的理解过于简单,这使我明白了所谓一切的设计都是为了方便,人性化的设计才是会被人们所接受的内容。所谓生活中的一切我们都不能忽视,这些东西都是我们身边常常用到的东西。使我感触到一切的东西都要从自己身边的做起,话说回来,一切的设计都是以人为主的,我们做什么事情都是要考虑到人们对这个事情的看法,以及如何来对待这件事。

通过这次课设使我了解了单片机的最小系统以及单片机内部一些简单的功能,掌握了单片机的一些基本指令。

这次我用的编程语言是c语言,使我对c语言的格式有了进一步的掌握。在设计过程中碰到许多不同的问题,与理论有所差距,明白理论和实践还是有差距的,我们不能只学理论而不实践,要多结合理论进行实践,这样才更加理解掌握知识,把理论应用于实践,从实践中得出结论。

15

武汉理工学《数字电子技术》课程设计说明书

六 元件清单

元件名称 89c52 Lcd1602 按键 电容 电阻 晶振 变阻 Led Max232 USB 串口 晶振

数目及规格 1 1 7 30PF x 2,0.1UF x 4,10UF x 1, 10K x 1, 12M x 1 10K x 1 x 1 1 1 1 12MHZ 16

武汉理工学《数字电子技术》课程设计说明书

七 参考书目

1:《数字电子技术》 清华大学出版社

2:《单片机快速入门》 北京航空航天大学出版社 3::《十天学会单片机和c语言编程》 电子工业出版社 4:《51系列单片机开发宝典》 电子工业出版社 5:《c语言程序设计》 清华大学出版社

6:MCS_51单片机原理与应用(c语言版)

17

机械工业出版社

武汉理工学《数字电子技术》课程设计说明书

八 附录

源程序

#include

/********************************** 在此声明同义字

unsigned int: UInt16; unsigned char: UInt8;

**********************************/

#ifndef _file_h_ #define _file_h_

typedef unsigned char UInt8; typedef unsigned int UInt16; #endif

static UInt8 REMIND_GEN[12] = \static UInt8 REMIND_VIP[12] = \static UInt8 COD[9] = \static UInt8 WINDOW[7] = \static UInt8 Vip_Wait = 0; static UInt8 Gen_Wait = 0; static UInt8 i,Sec;

static UInt8 STOP[12] = \;

/***************************************** 定义键盘的端口

*****************************************/ sbit Gen_Key = P3^2;

//设置功能普通用户抽号键

18

武汉理工学《数字电子技术》课程设计说明书

sbit Vip_Key = P3^3; sbit Res_Key = P2^7;

//设置功能vip用户抽号键 //设置功能复位键键

sbit Gen1_Sys_Key = P2^5; //设置系统端按键,用户处理业务完毕后按一次 sbit Gen2_Sys_Key = P2^6; sbit Vip_Sys_Key = P2^4; static UInt8 Flag_Gen = 0; static UInt8 Flag_Vip = 0;

/*********************************** lcd1602的端口位定义

***********************************/ sbit rs = P1^0; sbit rw = P1^1; sbit en = P1^2;

/**********枚举类型来说明窗口*********** 其中WINDOW_1,2,为普通,3为vip窗口;

***************************************/

enum WINDOW_NUMBER {

WINDOW_1 = 1, WINDOW_2 = 2,

19

武汉理工学《数字电子技术》课程设计说明书

WINDOW_3 = 3, };

void Lcd_init(); void Key_Scan(); int main() { }

Lcd_init(); while(1)

{ }

Key_Scan();

/******************************************

延迟函数

函数功能:实现步骤上的延迟 输入参数:z 返回参数:无

******************************************/ void Delayms(UInt16 z) {

20

武汉理工学《数字电子技术》课程设计说明书

UInt16 x,y;

for(x = z;z > 0;z--) for(y = 110;y > 0;y--); }

/******************************************

判断忙函数

函数功能:判断对lcd的操作是否在忙状态 输入参数:无 输出参数:无

******************************************/

void busy(void) {

UInt8 temp; P0 = 0xff; rs = 0;

rw = 1; en = 1;

while(temp & 0x80) }

21

//判断lcd的信号是否在忙状态

{ } en = 0;

temp = P0; Delayms(20);

武汉理工学《数字电子技术》课程设计说明书

/******************************************

写指令函数

函数功能:读取对lcd的指令 输入参数:Get_Com 输出参数:无

******************************************/

void Lcd_WriteCom(UInt8 GetCom) { }

/******************************************

写数据函数

实现功能:读取要显示的数据 函数参数:Temp

******************************************/

22

busy(); rs = 0; rw = 0; en = 1; P0 = GetCom; Delayms(5); en = 0;

//写指令

武汉理工学《数字电子技术》课程设计说明书

void Lcd_WriteData(UInt8 Temp) { }

/******************************************

显示函数

函数功能:实现对数据的显示 输入参数:Add. Data 输出参数:无

******************************************/

void Lcd_Display(UInt8 Add,UInt8 Data) {

UInt8 Data_0,Data_1; Data_1 = Data/10; Data_0 = Data; Lcd_WriteCom(0x80 + Add);

23

rs = 1; rw = 0; en = 1; P0 = Temp; Delayms(5); en = 0;

//数据读入

//指定数据写入的地址

武汉理工学《数字电子技术》课程设计说明书

}

//指定数据写入的值

Lcd_WriteData(0x30 + Data_1); Lcd_WriteData(0x30 + Data_0);

/******************************************

初始化函数

函数功能:实现对各个部分的初始化 函数参数 :无

******************************************/

void Lcd_init() {

Lcd_WriteCom(0x01); Lcd_WriteCom(0x38); Lcd_WriteCom(0x0c); Lcd_WriteCom(0x06);

//清除显示

//设置8位格式,2行,5*7 //设定输入方式,增量不移位 //整体显示,关光标,不闪烁

P2 = 0xf0; //对矩阵键盘的端口值初始化 for(i = 0;i < 12;i ++) { ; }

Lcd_Display(12,0); Lcd_WriteCom(0x80 + i); Lcd_WriteData(REMIND_GEN[i]);

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

24

武汉理工学《数字电子技术》课程设计说明书

{ } EA = 1;

//打开cpu总中断

Lcd_Display(0x40+12,0); Lcd_WriteCom(0xC0 + i); Lcd_WriteData(REMIND_VIP[i]);

TMOD = 0X01; //设置定时器的寄存器工作方式为方式1

16位 }

/******************************************

键盘扫描与时间设置

******************************************/ void Key_Scan() {

25

ET0 = 1; TR0 = 0;

//中断允许寄存器IE的定时器T0中断打开 //关闭中断

TH0 = (65536-50000)/256; TL0 = (65536-50000)%6;

函数功能:实现对时间设置

武汉理工学《数字电子技术》课程设计说明书

if(Res_Key == 0) { Delayms(5);

if(Res_Key == 0)

{ 松手执行下一步 while(!Res_Key);

Lcd_WriteCom(0x01); Gen_Wait = 0; Vip_Wait = 0; Flag_Vip = 0; Flag_Gen = 0;

for(i = 0;i < 12;i ++) { Lcd_WriteCom(0x80 + i);

Lcd_WriteData(REMIND_GEN[i]);

}

Lcd_Display(12,Gen_Wait);

for(i = 0;i < 12;i ++) { Lcd_WriteCom(0xC0 + i); Lcd_WriteData(REMIND_VIP[i]);

}

Lcd_Display(0x40+12,Vip_Wait);

26

//延迟去抖

//判断是否真的按

//判断是否松手,

//清除显示

武汉理工学《数字电子技术》课程设计说明书

}

}

if(Gen1_Sys_Key == 0)

是否按下 { Delayms(5);

if(Gen1_Sys_Key == 0)

的按下

{

松手执行下一步 while(!Gen1_Sys_Key);

Gen_Wait--; Flag_Gen++;

Lcd_WriteCom(0x01);

for(i = 0;i < 9;i++) { Lcd_WriteCom(0x81 + i); Delayms(2);

Lcd_WriteData(COD[i]);

}

Lcd_Display(9,Flag_Gen); for(i = 0;i < 7;i++) { Lcd_WriteCom(0xc0 + i);

Delayms(2);

27

//判断功能键

//延迟去抖

//判断是否真

//判断是否松手,

//清除显示

武汉理工学《数字电子技术》课程设计说明书

Lcd_WriteData(WINDOW[i]);

} Lcd_Display(0x40+10,WINDOW_1);

}

}

if(Gen2_Sys_Key == 0) 是否按下 { Delayms(5);

if(Gen2_Sys_Key == 0)

的按下

{

松手执行下一步 while(!Gen2_Sys_Key); Gen_Wait--;

Lcd_WriteCom(0x01);

Flag_Gen++;

for(i = 0;i < 9;i++) { Lcd_WriteCom(0x81 + i); Delayms(2);

Lcd_WriteData(COD[i]);

}

Lcd_Display(9,Flag_Gen); for(i = 0;i < 7;i++) { Lcd_WriteCom(0xc0 + i);

Delayms(2);

28

//判断功能键

//延迟去抖

//判断是否真

//判断是否松手,

//清除显示

武汉理工学《数字电子技术》课程设计说明书

Lcd_WriteData(WINDOW[i]);

}

Lcd_Display(0x40+10,WINDOW_2);

}

}

if(Vip_Sys_Key == 0) {

Delayms(5);

if(Vip_Sys_Key == 0)

{ 松手执行下一步 while(!Vip_Sys_Key); Vip_Wait--;

Flag_Vip++;

Lcd_WriteCom(0x01); for(i = 0;i < 9;i++) { Lcd_WriteCom(0x81 + i); Delayms(2);

Lcd_WriteData(COD[i]);

}

Lcd_Display(10,Flag_Vip);

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

29

//延迟去抖

//判断是否真的按

//判断是否松手,

//清除显示

武汉理工学《数字电子技术》课程设计说明书

{ Lcd_WriteCom(0xc0 + i); Delayms(2);

Lcd_WriteData(WINDOW[i]);

}

Lcd_Display(0x40+8,WINDOW_3);

}

}

if(Gen_Key == 0)

按下 { Delayms(5);

if(Gen_Key == 0)

{

松手执行下一步 while(!Gen_Key);

Lcd_WriteCom(0x01);

}

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

30

//判断功能键是否

//延迟去抖

//判断是否真的按

//判断是否松手,

//清除显示

武汉理工学《数字电子技术》课程设计说明书

{ Lcd_WriteCom(0x80 + i);

Lcd_WriteData(REMIND_GEN[i]);

} Lcd_Display(12,Gen_Wait);

Gen_Wait++;

for(i = 0;i < 9;i ++) { Lcd_WriteCom(0xC0 + i); Lcd_WriteData(COD[i]);

} Lcd_Display(0x40+12,Gen_Wait); }

if(Vip_Key == 0)

是否按下 {

Delayms(5);

if(Vip_Key == 0)

的按下

{

手,松手执行下一步 while(!Vip_Key);

Lcd_WriteCom(0x01); 示

31

//判断功能键

//延迟去

//判断是否真

//判断是否松

//清除显

武汉理工学《数字电子技术》课程设计说明书

{

}

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

Lcd_WriteCom(0x80 + i); Lcd_WriteData(REMIND_VIP[i]);

}

Lcd_Display(12, Vip_Wait);

Vip_Wait++;

for(i = 0;i < 9;i ++) { }

Lcd_Display(0x40+12,Vip_Wait); }

Lcd_WriteCom(0xC0 + i); Lcd_WriteData(COD[i]);

if((Gen_Wait == 100)||(Vip_Wait == 100)) {

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

{ }

Lcd_WriteCom(0x81 + i); Delayms(2);

Lcd_WriteData(STOP[i]);

}

32

武汉理工学《数字电子技术》课程设计说明书

if(Gen_Key&&Res_Key&&Vip_Key&&Vip_Sys_Key&&Gen1_Sys_Key&&Gen2_Sys_Key)

{ }

if(!(Gen_Key&&Res_Key&&Vip_Key&&Vip_Sys_Key&&Gen1_Sys_Key&&Gen2_S

TR0 = 1;

ys_Key))

{

TR0 = 0;

TH0 = (65536-50000)/256;

TL0 = (65536-50000)%6; }

if(Sec == 50) {

Sec==0;

Lcd_WriteCom(0x01);

//清除

Sec==0;

显示

}

Lcd_Display(12,Gen_Wait);

33

for(i = 0;i < 12;i ++) {

Lcd_WriteCom(0x80 + i); Lcd_WriteData(REMIND_GEN[i]);

武汉理工学《数字电子技术》课程设计说明书

}

}

for(i = 0;i < 12;i ++) { }

Lcd_Display(0x40+12,Vip_Wait); Lcd_WriteCom(0xC0 + i); Lcd_WriteData(REMIND_VIP[i]);

void Time_Interrupt() interrupt 1 { }

TH0 = (65536-50000)/256; TL0 = (65536-50000)%6;

Sec++;

34

本文来源:https://www.bwwdw.com/article/g893.html

Top