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

原文地址:https://blog.csdn.net/K11mvp/article/details/134712548

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43418.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注