资源文件夹包含: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. 设备连接:Ubuntu16.04 ROS中连接Hokuyo激光雷达UTM-30LX-EW
  2. R语言ggplot2可视化自定义可视化结果的背景色(background color)实战:改变整个画板(panel)的背景色、改变图像(plot)区域的背景色
  3. 字母出现位置c语言,【c语言】实现strrchr(查找该字符串最后一次出现的位置)
  4. tc-auth-lib学习笔记
  5. python【进阶】5.一等函数(注销)
  6. s7-1200跟mysql_让西门子S7-1200直接连接MySQL数据库!!!
  7. emacs python_Emacs 下使用 lsp-mode 对 Python 进行补全
  8. 2017.10.18 开店 失败总结
  9. 时间序列深度学习:状态 LSTM 模型预测太阳黑子(中)
  10. 24V电磁铁电磁特模块电路分析
  11. 线上问题:nginx日志打印时间问题
  12. 新西兰计算机预科学费,新西兰留学预科学费
  13. Android-使用HttpURLConnection实现多线程下载
  14. SpringBoot入门之SpringBoot热部署,什么是热部署 04
  15. 微信支付密码设置html,微信支付页面怎么加密码锁屏(微信支付界面怎么上锁)...
  16. Unity 游戏的String interning优化
  17. 2018 php面试题
  18. Uboot 编译问题-“xxx aliased to external symbol xxx”
  19. redis 生产环境 谨慎执行的命令
  20. 毕业设计--2020.02.18 奇耘4.2寸墨水屏的程序设计思路分享

热门文章

  1. Flink教程(01)- Flink知识图谱
  2. H2 database文档学习
  3. VC 6.0 GPIB编程,模块与综测仪通讯,实现自动测试
  4. WinCE7.0 下 Silverlight(XAML) 类型的应用启动逻辑
  5. 注册会计师考试费用多少钱?
  6. 计算机毕业设计SSMHY口腔门诊系统【附源码数据库】
  7. 电脑文件丢了怎么快速恢复
  8. libsuperuser简介
  9. 如何将 Gamma 分布拟合到 R 中的数据集
  10. c# Winform中使用NHibernate的配置