片,独立的关键站(客户),独立的键(代表四个窗口店员控制端),无源蜂鸣器(播放蜂鸣声的作用),1602液晶显示的信息和相应的外围电路。
2.3.2 软件概要设计
本文排队叫号系统软件设计使用Keil 进行调试,Protues进行仿真。Keil 把用户的每个工程都当作一个项目。当打开一个项目时,所有相关联的程序也进入了调试窗口。即使是只有一个源程序,没有工程也不能进行编译、链接和仿真。客户端通过按键完成取号,数码管显示排队、等待人数情况;主机通过按键完成叫号,数码管显示叫到的号码,并通过蜂鸣器发声提示;客户端和主机通过串行通信方式完成排队取号功能。
(1)信息处理部分
客户通过取号按键完成取号过程,然后单片机通过处理将取号信息发送到打印机部分进行排队号码的打印。
(2)主系统信息处理
主系统由单片机负责完成对整个叫号机排队系统的运作,首先STC89C52接收来自取号机的取号数据,处理之后将信息反馈给取号机,并将数据保存,当窗口有提示服务信息的时候,单片机会将排队的序号信息发送到窗口,并且将信息及时的发送到大厅液晶屏幕显示及蜂鸣器。及时的通知客户办理业务。
(3)叫号系统设计
第一位顾客开始窗口叫号时,工作人员通过按键将信息输入到单片机,经处理过后,将客户排队的号码发送到窗口端,此时窗口端的液晶显示器即可显示客户的号码,客户就可以根据提示来到相应的窗口进行业务服务。
(4)语音系统设计
此模块采用无源蜂鸣器发声,通过单片机向P15端口低电平,经过三极管的放大电路放大,使蜂鸣器的发声提示。
(5)液晶显示部分
液晶显示部分采用的是LCD1602液晶,此液晶显示器可以显示汉字,字母和数字,当有呼叫信息时,会将客户信息将显示在屏幕上,提示客户接受人工服务。
3
第3章 主要硬件参数
3.1 STC89C52RC单片机
宏晶科技推出的STC89C52RC单片机是新一代高速低功耗超强抗干扰的单片机,它的指令代码完全适合传统8051单片机,6时钟/机器周期和12时钟/机器周期可以随意选择。由于使用protues仿真时软件中并没有STC89C52RC单片机,由于STC89C52RC指令代码完全适合传统8051单片机,因此我们使用AT89C51代替STC89C52RC进行仿真。在实物制作中仍使用STC89C52RC。
3.1.1单片机的CPU结构
单片机的中央处理器是整个单片机的核心部件,主要由运算器和控制器两个部分组成。 (1)运算器是计算机的运算部件,可以完成各种算术运算,逻辑运算,并可以进行位运算。算术逻辑部件是运算器的核心,此外,运算器中还有暂存器1、暂存器2、累加器、程序状态字、寄存器B、ALU、和布尔处理器。运算的结果将影响程序状态中的标。布尔处理器是单片机的一个重要组成部分,有自己的位累加器Cy和相应的指令系统及位寻址区和I/O空间。布尔处理器在位测试,外设的控制及复杂组合逻辑电路的求解方面提供了方便的方法。
(2)控制器是单片机的指挥控制部件,它主要包括程序计数器,指令寄存器,指令译码器,数据指针寄存器,堆栈指针,缓冲器及定时控制电路等。它的主要任务是对指令进行译码,通过定时和控制电路发出各种控制信号,使各部件协调工作,完成指令所需的操作。
3.1.2 STC89C52RC引脚功能说明
1 电源引脚(2根)
(1)VCC(引脚40):电源电压 (2)VSS(引脚20):接地 2 时钟电路引脚(2根)
(1)XTAL1(引脚19):接外部振荡晶体和微调电容的一端。在片内它是振荡电路反相放大器的输入端,在采用外部时钟时,该引脚接地。
(2)XTAL2(引脚18):来自片内反向振荡器的输出。若采需用外部时钟电路时,该引脚输入外部时钟脉冲。单片机正常工作时,该引脚应有脉冲信号输出。
3 控制引脚(4根)
(1)ALE/PROG(引脚30):地址锁存控制信号/编程脉冲输入端
4
___________
当访问外部存储器时,该引脚输出的信号作为锁存低8位地址的控制信号。在编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的六分之一,因此它可用作对外部输出脉冲或用于定时目的。
(2)PSRN(引脚29):外部程序存储器的选通信号
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。在外部程序存储器取指期间,每个机器周期两次PSEN信号有效。但在访问外部数据存储器时,这两次有效的PSEN将不出现。
(3)EA/VPP(引脚31):外部程序存储器地址输入端/编程电压输入端。
当EA保持低电平时,只访问片外程序存储器,不管是否有内部程序存储器;当EA端保持高电平时,只访问片内程序存储器,而超过4KB地址则自动转到片外存储器1000H读取指令。8031单片机片内无ROM,所以该引脚接地。
对于EPROM型单片机,在编程写入期间,此引脚也用于施加12V编程电压。 (4)RESET/TPD(引脚9):复位/备用电源输入引脚
该引脚上输入24个时钟周期以上的高电平,系统即初始复位。VCC掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
4 输入/输出引脚
(1)P0.0~P0.7(引脚39~引脚32):8位准双向并行I/O口
P0口可作为通用双向I/O口。在外接数据、程序存储器时,可作为低8位地址/数据总线复用引脚。
(2)P1.0~P1.7(引脚1~引脚8):8位准双向并行I/O口 P1口可用作通用双向I/O
(3)P2.0~P2.7(引脚21~引脚28):8位准双向并行I/O口
P2口可用作通用双向I/O口。在外接数据、程序存储器时,可作为高8位地址输出引脚。P2口在FLASH编程和校验时接受高8位地址信号和控制信号。
(4)P4.0~P4.7(引脚10~引脚17):8位准双向并行I/O口 P3口除了作为通用I/O口使用以外,每一个引脚都可以复用。 STC89C52引脚图如图3.1所示:
_____
_____
_______________
__________
__________
5
图3.1 STC89C52引脚图
3.1.3单片机的存储器
单片机程序存储器和数据存储器相互独立,在物理结构上有四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。单片机的外部数据存储器和I/O接口采用统一编址方式。由于仿真所使用的芯片是AT89C51,所以我们介绍单片机的存储器以AT89C51为例。
1 数据存储器:数据存储器包括内部数据存储器和外部数据存储器两个空间,51单片机外部数据存储器空间大小为64KB,地址空间为0000H~0FFFH,内部数据存储器为128个字节,地址空间为00H~7FH。
内部数据存储器和外部数据存储器在00H~7FH范围内地址会出现重叠现象,单片机通过不同的指令格式加以区分,访问片内RAM可采用多种寻址方式。若采用间接寻址方式,间接寻址寄存器只能R0或R1。
2 内部RAM
6
内部RAM共128个单元,可分为工作寄存器区、位寻址区和数据缓冲区。 (1)工作寄存器区(00H~1FH):该区的32个单元被均匀的分为四组,每组包含八个8位寄存器,均以R0~R7来命名,常称这些寄存器为通用寄存器。CPU当前由程序状态字PSW中的D3和D4位来选择的。通过修改PSW中的RS0和RS1两位,就可以选择任一组工作寄存器,这有利于提高CPU的效率和响应中断的速度。
(2)位寻址区(20H~2FH):片内RAM的20H~2FH单位为位寻址区,它们既可作为一般单元用字节寻址,也可以对其中某位进行寻址。位寻址区共有16个字节,128位,位地址为00H~7FH。
(3)堆栈和数据缓冲区(30H~7FH):该区的地址范围为30H~7FH,用于存放用户的数据,对这部分区域的使用不作任何规定和限制,堆栈一般开辟在这个区域。
3 特殊功能寄存器
51单片机把CPU中的专用寄存器,I/O锁存器,中断、串行口与定时/计数器内的各种控制寄存器和状态寄存器都作为特殊功能寄存器,它们离散地分布在地址为80H~FFH的范围内,该范围称为特殊功能寄存区。51单片机有21个特殊功能寄存器,它们只能通过直接寻址的方式进行访问,书写时既可用寄存器符号,也可用寄存器单元地址。
4 程序存储器
程序存储器用于存放表格常数和程序,8051单片机内部有4KB ROM,片外可扩展64KB的ROM,二者统一编址。如果EA引脚接VCC(+5V),则程序计数器PC的值在0~0FFFH(即前4KB)之间时,CPU将从片内ROM这取指令,而当PC的值大于0FFFH时,则转入外部ROM中取指令;如果EA引脚接地时,则内部ROM区间被忽略,所有的取指令操作将在片外ROM中进行。片外ROM和片外RAM的地址出现了重叠,要访问ROM这的常数,可使用MOVC指令,该指令在执行时将使PSEN信号失效;而访问片外RAM,使用的是MOVX指令,该指令执行时将使RD和WR信号失效。
程序存储器中某些单元保留给系统使用,用来存放引导程序和各个中断源的入口地址,每个中断源之间只有8个存储单元空间,8个单元通常不能存下一个完整的中断服务程序,因此往往需要在中断入口地址这存放一条无条件转移指令,转到用户设计的中断服务程序的入口地址。
———
————
——————
———
————
3.1.4单片机最小系统设计
单片机的最小系统是能使单片机工作的最少器件构成的系统。对于AT89C51单片机,由于其内部有4KB可在线编程的Flash存储器,用它组成最小系统时,不需机外扩展程序存储器,只要有电源,复位电路和时钟电路即可,因此,由AT89C51单片机组成的最小系统如图3.2所示:
7