1.设计任务
利用AT89C51单片机为核心控制元件,设计一个节日彩灯门,设计的系统实用性强、操作简单,实现了智能化、数字化。
基本要求:利用单片机AT89C51设计排队叫号机,能实现叫号功能。
创新:能显示叫号号码;能显示等号人数。
任务区分:能显示当天已经服务人数。
2. 设计要求
2.1系统方案论证
根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。
2.2系统硬件电路设计
根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。
2.3软件设计
根据该系统要求的功能进行软件设计,简述软件的功能,并根据每个模块的功能绘制软件流程图,根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求加以注释。
#include <REGX52.H>
#include "LCD1602.h"typedef unsigned char u8;
typedef unsigned int u16;sbit key1 = P1^0;
sbit key2 = P1^1;void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}u8 Key(void)
{u8 KEY_Num;if(key1==0) //如果K1按键按下{Delay(20); //延时消抖while(key1==0); //松手检测Delay(20); //延时消抖KEY_Num = 1;}if(key2==0) //如果K2按键按下{Delay(20); //延时消抖while(key2==0); //松手检测Delay(20); //延时消抖KEY_Num = 2;}return KEY_Num;
}int main()
{u8 key;u8 Pass = 0;u8 Now = 0;u8 Exist = 0; u8 Next = 1;LCD_Init();LCD_ShowString(1, 1,"Pass ");LCD_ShowString(1, 7,"Now ");LCD_ShowString(1,12,"Exist");while(1){key = Key();if(key){if(key==1)//叫号{Now++ ;Pass++ ;Next++ ;Exist--;if(Exist == 255){Exist++;Now-- ;Pass-- ;Next-- ;}}if(key==2)//挂号{Exist++; }}LCD_ShowNum(2, 2,Pass, 2);LCD_ShowNum(2, 8,Now, 2);LCD_ShowNum(2,13,Exist,3);}
}
完整代码点开链接私信 免费 获取。
【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa