片机的I/O口资源,本系统通过一块NECD8255AC-2外扩LED电路进行动态显示。由8255芯片的PA、PB口联合控制数码管显示排队等待情况。采用如图4、图6所示电路实现LED动态显示功能。图48255芯片引脚图2.4叫号电路此电路采用如图5所示的电路,通过单片机的P33端口输出一定频率的方波,使蜂鸣器发声,完成叫号,提醒客户。3系统软件设计与分析3.1软件流程图本程序可以实现课程设计的基本要求。客户端通过按键完成取号,数码管显示排队、等待人数情况;主机通过按键完成叫号,数码管显示叫到的号码,并通过蜂鸣器发声提示;客户端和主机通过串行通信方式完成排队取号功能。程序流程如图7所示:图5叫号电路图6数码管显示电路3.2动态显示模块此模块由于要使数码显示管不同的数值,数字各位对应的段选值不同,所以位选不能同时打开,所以需要采用动态显示实现同时显示排队号码以及等待的人数。最后采用如图8所示的电路完成要求功能。图7总体流程图图8动态显示流程图3.3叫号模块此模块采用无源蜂鸣器发声,采用如图9所示电路,通过单片机向P33端口输出一定频率的方波,就可使蜂鸣器的发声。图9叫号模块电路3.4串行通信模块设计要求客户端与主机通过串行通信方式,采用如图3所示的常用双机通信方式,通过使用定时器1采用2400bps的波特率进行通信。4系统仿真及调试4.1软件调试(1)在Keil软件中建立工程,新建工程,选择AtmelAT89C52芯片,创建源代码,进行编译,在Keil中仿真调试。(2)在Protues软件中,根据功能模块,画出相应原理图。利用Keil中生成的*.hex文件与Keil进行程序联调。4.2硬件调试4.2.1动态显示模块开始调试时,在Protues软件上可以很好模拟动态显示效果,但硬件电路数码管显示效果失真,考虑到延时在动态显示中的重要作用,通过调小延时时间,使数码管稳定、准确地显示。