资源文件夹包含:proteus仿真+原理图;keil编写的C语言程序;详细设计说明书。
资源链接:加我QQ:1271370903 记得点赞收藏

一. 系统方案总体设计

1.1 研究意义和设计思路
近年来,随着城市人口的不断增加,人们生活节奏的不断加快,公交在大城市以及中小城市已经普及,并且有了日新月异的发展,在人民生活中起着重要作用,因此,公交车的正常运行与人们的正常生活息息相关。传统公交年报站大多是由来乘务人员来人工报站,但是因为方言的差异或者人多时语音嘈杂,这种方式不利于人民生活的和谐。所以根据这种需要市面上产生流行了多种公交年报站器也方便人们的生话。
目前虽然现在些大城市的公交车上已经采用GPS定位系统自动报站,但其造价昂贵,难以在一些中小城市实现普及。因此本设计针对目前常见公交车站无提示公交车轨迹信息,研究介绍基于一种单片机控制的指示灯提示系统。系统是采用到站按键控制,LED指示灯亮起在此站,而下一站指示灯闪烁提醒。
1.2 整体模块框图
系统框图如图1所示,主要由AT89C52单片机、晶振电路、复位电路、LED指示灯电路、按键电路等组成。

二、硬件设计

1、最小应用系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。

图 最小应用系统及引脚接线图
1.1晶振电路

晶振电路即时钟电路,是AT89C51单片不可或缺的电路,在其工作运行时它起到控制信号的作用。时钟信号对单机片内部电路的影响极大,在它的作用下,单片机会遵循基本的设计原则通过时序指令完成工作。本设计通过数据的分析采用频率为12MHz的晶振,22pF的电容。
1.2 复位电路

单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。所谓复位电路,就是在AT89C51的引脚RET端接入的一个能产生复位信号的电路。单片机在进行工作的同时,把关于内部的数据恢复到原来的参数。
2 .按键电路

按键接线图如图,按键在系统中相当于公交司机的到站按钮,说明公交车已到此站,提醒下一站用户信息。
3.LED指示灯电路

指示灯电路是安装在公交站站台,提醒车辆信息,此系统相当于总共8个站,每次亮起的灯说明在此站刚到和此站刚出发,另一个灯是在闪烁。
4.整体仿真电路设计

5.起始站发车状态、中间某一站、末站指示灯图

三、 软件设计

3.1 主程序设计
首先对程序初始化,指示灯从上开始,程序是8种状态指示。在8种程序中分别定义不同下的状态,设置外部中断key=0,判断给num自增,到达下一种状态。

3.2 程序流程图

四、代码

#include <reg52.h>
sbit LED1=P2^0;//定义8种指示灯引脚
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;
sbit LED7=P2^6;
sbit LED8=P2^7;sbit key=P3^7;  //定义按钮引脚int num=1;//赋初值
void delay500ms(void)   //延时函数
{unsigned char a,b,c;for(c=205;c>0;c--)for(b=116;b>0;b--)for(a=9;a>0;a--);
}
void InitTimer0()//开中断
{TMOD = 0x01;TH0 = 0x0FC;TL0 = 0x18;EA = 1;ET0 = 1;TR0 = 1;
}
void main()
{InitTimer0();while(1){if(num==1)/定义第一种状态,第一个灯亮,第二个灯闪烁{LED1=0;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();LED1=0;LED2=0;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();            }if(num==2)/定义第二种状态,第二个灯亮,第三个灯闪烁{LED1=1;LED2=0;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();LED1=1;LED2=0;LED3=0;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();}if(num==3)/定义第三种状态,第三个灯亮,第四个灯闪烁{LED1=1;LED2=1;LED3=0;LED4=1;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();LED1=1;LED2=1;LED3=0;LED4=0;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();}if(num==4)/定义第四种状态,第四个灯亮,第五个灯闪烁{LED1=1;LED2=1;LED3=1;LED4=0;LED5=1;LED6=1;LED7=1;LED8=1;delay500ms();LED1=1;LED2=1;LED3=1;LED4=0;LED5=0;LED6=1;LED7=1;LED8=1;delay500ms();}if(num==5)/定义第五种状态,第五个灯亮,第六个灯闪烁{LED1=1;LED2=1;LED3=1;LED4=1;LED5=0;LED6=1;LED7=1;LED8=1;delay500ms();LED1=1;LED2=1;LED3=1;LED4=1;LED5=0;LED6=0;LED7=1;LED8=1;delay500ms();}if(num==6)/定义第六种状态,第六个灯亮,第七个灯闪烁{LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=0;LED7=1;LED8=1;delay500ms();LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=0;LED7=0;LED8=1;delay500ms();}if(num==7)/定义第七种状态,第七个灯亮,第八个灯闪烁{LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=0;LED8=1;delay500ms();LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=0;LED8=0;delay500ms();}if(num==8)/定义第八种状态,第八个灯亮,第一个灯闪烁{LED1=1;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=0;delay500ms();LED1=0;LED2=1;LED3=1;LED4=1;LED5=1;LED6=1;LED7=1;LED8=0;delay500ms();}}
}
void Timer0Interrupt(void) interrupt 1//外部中断函数调用设置
{TH0 = 0x0FC;TL0 = 0x18;if(key==0){while(key==0);if(num>8)num=1;elsenum++;}
}

记得点赞收藏

补充:总结

我在这一次单片机的设计过程中,很是受益匪浅。通过对自己所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。
通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义 我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。
我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

基于51单片机公交车到站指示灯设计相关推荐

  1. 基于51单片机的酒精浓度检测仪设计

    本设计仅供参考 基于51单片机的酒精浓度检测仪设计(proteus仿真+程序+原理图+报告) 原理图:Altium Designer 仿真:proteus 8.9 程序编译器:keil 4/keil ...

  2. 基于51单片机的CO浓度报警器设计

    目录 基于51单片机的CO浓度报警器设计 1.原理图 2.protus仿真图 3.PCB图 4.飞线图 5.焊接图 6.程序代码 7.资源获取 基于51单片机的CO浓度报警器设计 注:本毕设资源可在微 ...

  3. 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解)

    文章目录 资料下载(可点击) 功能说明 仿真图 复位电路 晶振电路 程序 原理图: 设计报告: 器件清单: 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altiu ...

  4. 单片机检测电机频率c语言,基于51单片机的电动机测速表的设计.doc

    基于51单片机的电动机测速表的设计 基于51单片机的电动机测速表设计 摘 要 本文介绍了采用光电传感器实施电机转速测量的方法.基本原理,完成了一种基于AT89C51单片机平台的电动机测速表的软硬件设计 ...

  5. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

  6. 基于51单片机的电子万年历的设计-源代码

    电子万年历的设计目录 电子万年历的设计 电子万年历的系统整体设计框图 所需要的元件 DS18B20模块 DS18B20的特点 DS18B20内部结构 DS18B20管脚排列 DS1302模块 SPI时 ...

  7. 基于51单片机的三角波信号发生器设计

    基于51单片机的三角波信号发生器设计 一.任务要求: 设计内容 选择51单片机,晶振采用12MHz. 设计一个能产生50HZ至100HZ的三角波信号.通过0832/A芯片完成数模转换. 频率值由LED ...

  8. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计

    1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...

  9. 单片机应用系统设计技术——基于51单片机篮球计时计分器的设计

    基于51单片机篮球计时计分器的设计 一.实验目的 二.实验内容 三.实验步骤 四.C代码如下 五.实验结果

最新文章

  1. CentOS6安装nodejs
  2. 连接数process与会话session
  3. 2个月精通Python爬虫——3大爬虫框架+6场实战+分布式爬虫,包教包会
  4. JZOJ 5275. 水管
  5. [Java] Welcome to Artifactory 使用说明
  6. Eclipse里PHP built-in server在操作系统中的实际位置
  7. 4 5区别 angular 和_Angular 常见问题解答
  8. 请问!退休年龄到了,社保没交够,现在职,公司还可以继续交吗?
  9. win安装 lua php 扩展,window平台搭建Lua开发环境
  10. 大文件上传解决方案-支持断点续传的文件上传插件(转)
  11. Docker 配置国内镜像加速器,加速下载速度
  12. Java解决一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?
  13. xshell命令:cd进入指定(目标路径)文件夹 - 解说篇
  14. Matlab根据excel数据画图
  15. 深度学习之语义分割unet算法解读
  16. Node的json解析
  17. 《Jira实战》作者王杰-使用Jira打造精益敏捷的交付能力
  18. 要早点进入IT行业不是没道理的
  19. 数据结构与算法(C++实现)
  20. CMMI-原因分析与解决(CAR)

热门文章

  1. 5G毫米波AAU BBU 简单汇总
  2. mysql根据某些列分组,然后每组生成从1递增的序号
  3. MAPInfo Professional v10.0026 Final Release下载+破解+汉化
  4. PC版马赛克拼图生成 AndreaMosaic单文件版!
  5. IT专业人士如何高效的学习专业知识
  6. 芜湖市中专计算机考证英文名
  7. 【Android】【Android相关网址】Android官方网站索引
  8. 计算机网络—网络协议
  9. ubc 文学院 计算机,英属哥伦比亚大学UBC专业
  10. Problem E: 填空题B-发金牌