利用AT89C51单片机为核心控制元件,设计一个节日彩灯门,设计的系统实用性强、操作简单,实现了智能化、数字化。
基本要求:利用单片机AT89C51设计排队叫号机,能实现叫号功能。
2. 设计要求
2.1系统方案论证
根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。
根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。