【Proteus仿真】【51单片机】公交车报站系统

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD12864显示模块、DS18B20温度传感器、DS1302时钟模块、按键、LED蜂鸣器、ULN2003、28BYJ48步进电机模块等。

主要功能:
系统运行后,LCD12864液晶显示检测温度、日期时间、站台信息和运行方向;可按下K3键进入设置模式,默认调节年份,可再次按下K3键选择年月日时分秒星期,选择后可按下K1和K2键调节,按下K4键可保存时间并返回主界面。当到站后可按下K1键报站,显示屏显示当前站和下一站信息,并且蜂鸣器发出提示音,步进电机正反转控制门开关。可按下K2键切换运行方向,系统默认为下行。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///系统数据显示
void sys_data_show(void)
{u8 buf[11];while(1){//正常模式显示if(sys_ctrl.mode==0){//日期显示buf[0]='2';buf[1]='0';buf[2]=gDS1302_TIME[6]/16+0x30;buf[3]=gDS1302_TIME[6]%16+0x30;buf[4]='-';buf[5]=gDS1302_TIME[4]/16+0x30;buf[6]=gDS1302_TIME[4]%16+0x30;buf[7]='-';buf[8]=gDS1302_TIME[3]/16+0x30;buf[9]=gDS1302_TIME[3]%16+0x30;buf[10]='\0';lcd12864_show_string(0,1,buf,0);//时间显示buf[0]=gDS1302_TIME[2]/16+0x30;buf[1]=gDS1302_TIME[2]%16+0x30;buf[2]=':';buf[3]=gDS1302_TIME[1]/16+0x30;buf[4]=gDS1302_TIME[1]%16+0x30;buf[5]=':';buf[6]=gDS1302_TIME[0]/16+0x30;buf[7]=gDS1302_TIME[0]%16+0x30;buf[8]='\0';lcd12864_show_string(0,0,buf,0);//星期显示lcd12864_show_hz(14,0,gDS1302_TIME[5]+1);//温度显示buf[0]=sys_ctrl.temp/100+0x30;buf[1]=sys_ctrl.temp%100/10+0x30;buf[2]='.';buf[3]=sys_ctrl.temp%100%10+0x30;buf[4]='\0';lcd12864_show_string(11,1,buf,0);//运行方向if(sys_ctrl.dir==0)lcd12864_show_string(14,3,"->",0);else lcd12864_show_string(14,3,"<-",0);//站点显示//下行if(sys_ctrl.dir==0){switch(sys_ctrl.num){case 0:lcd12864_show_hz(8,3,17,0);//重新显示之前清屏的那块字lcd12864_show_hz(10,3,15,0);lcd12864_show_hz(6,2,3,0);//一号站lcd12864_show_hz(6,3,4,0);//二号站break;case 1:lcd12864_show_hz(6,2,4,0);//二号站lcd12864_show_hz(6,3,5,0);//三号站break;case 2:lcd12864_show_hz(6,2,5,0);//三号站lcd12864_show_hz(6,3,6,0);//四号站break;case 3:lcd12864_show_hz(6,2,6,0);//四号站lcd12864_show_hz(6,3,7,0);//五号站break;case 4:lcd12864_show_hz(6,2,7,0);//五号站lcd12864_show_string(6,3,"      ",0);break;}		}//上行else{switch(sys_ctrl.num){case 0:lcd12864_show_hz(8,3,17,0);//重新显示之前清屏的那块字lcd12864_show_hz(10,3,15,0);lcd12864_show_hz(6,2,7,0);//五号站lcd12864_show_hz(6,3,6,0);//四号站break;case 1:lcd12864_show_hz(6,2,6,0);//四号站lcd12864_show_hz(6,3,5,0);//三号站break;case 2:lcd12864_show_hz(6,2,5,0);//三号站lcd12864_show_hz(6,3,4,0);//二号站break;case 3:lcd12864_show_hz(6,2,4,0);//二号站lcd12864_show_hz(6,3,3,0);//一号站break;case 4:lcd12864_show_hz(6,2,3,0);//一号站lcd12864_show_string(6,3,"      ",0);break;}	}}//设置模式显示else{switch(sys_ctrl.mode){case 1://年lcd12864_show_hz(4,2,sys_ctrl.set_time[5]+1,0);buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,1);break;case 2://月buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,1);break;case 3://日buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,0);buf[0]=sys_ctrl.set_time[3]/16+0x30;buf[1]=sys_ctrl.set_time[3]%16+0x30;buf[2]='\0';lcd12864_show_string(10,0,buf,1);break;case 4://时buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,0);buf[0]=sys_ctrl.set_time[3]/16+0x30;buf[1]=sys_ctrl.set_time[3]%16+0x30;buf[2]='\0';lcd12864_show_string(10,0,buf,0);buf[0]=sys_ctrl.set_time[2]/16+0x30;buf[1]=sys_ctrl.set_time[2]%16+0x30;buf[2]='\0';lcd12864_show_string(0,1,buf,1);break;case 5://分buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,0);buf[0]=sys_ctrl.set_time[3]/16+0x30;buf[1]=sys_ctrl.set_time[3]%16+0x30;buf[2]='\0';lcd12864_show_string(10,0,buf,0);buf[0]=sys_ctrl.set_time[2]/16+0x30;buf[1]=sys_ctrl.set_time[2]%16+0x30;buf[2]='\0';lcd12864_show_string(0,1,buf,0);buf[0]=sys_ctrl.set_time[1]/16+0x30;buf[1]=sys_ctrl.set_time[1]%16+0x30;buf[2]='\0';lcd12864_show_string(4,1,buf,1);break;case 6://秒buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,0);buf[0]=sys_ctrl.set_time[3]/16+0x30;buf[1]=sys_ctrl.set_time[3]%16+0x30;buf[2]='\0';lcd12864_show_string(10,0,buf,0);buf[0]=sys_ctrl.set_time[2]/16+0x30;buf[1]=sys_ctrl.set_time[2]%16+0x30;buf[2]='\0';lcd12864_show_string(0,1,buf,0);buf[0]=sys_ctrl.set_time[1]/16+0x30;buf[1]=sys_ctrl.set_time[1]%16+0x30;buf[2]='\0';lcd12864_show_string(4,1,buf,0);buf[0]=sys_ctrl.set_time[0]/16+0x30;buf[1]=sys_ctrl.set_time[0]%16+0x30;buf[2]='\0';lcd12864_show_string(8,1,buf,1);break;case 7://星期buf[0]='2';buf[1]='0';buf[2]=sys_ctrl.set_time[6]/16+0x30;buf[3]=sys_ctrl.set_time[6]%16+0x30;buf[4]='\0';lcd12864_show_string(0,0,buf,0);buf[0]=sys_ctrl.set_time[4]/16+0x30;buf[1]=sys_ctrl.set_time[4]%16+0x30;buf[2]='\0';lcd12864_show_string(6,0,buf,0);buf[0]=sys_ctrl.set_time[3]/16+0x30;buf[1]=sys_ctrl.set_time[3]%16+0x30;buf[2]='\0';lcd12864_show_string(10,0,buf,0);buf[0]=sys_ctrl.set_time[2]/16+0x30;buf[1]=sys_ctrl.set_time[2]%16+0x30;buf[2]='\0';lcd12864_show_string(0,1,buf,0);buf[0]=sys_ctrl.set_time[1]/16+0x30;buf[1]=sys_ctrl.set_time[1]%16+0x30;buf[2]='\0';lcd12864_show_string(4,1,buf,0);buf[0]=sys_ctrl.set_time[0]/16+0x30;buf[1]=sys_ctrl.set_time[0]%16+0x30;buf[2]='\0';lcd12864_show_string(8,1,buf,0);lcd12864_show_hz(4,2,sys_ctrl.set_time[5]+1,1);break;	}			}		break;}
}//门的开关动作
void _door_open_close(void)
{u8 i=3;while(i--){step_motor_28BYJ48_send_pulse(4,0,80,1,1);}delay_ms(1000);i=3;while(i--){step_motor_28BYJ48_send_pulse(4,1,80,1,1);}	
}//应用控制系统
void appdemo_show(void)
{u8 i=10;sys_parm_init();//系统参数初始化lcd12864_init();
//	ds1302_init();ds18b20_init();//间隔一段时间,等待数据稳定while(i--){//温度获取sys_ctrl.temp=ds18b20_read_temperture()*10;delay_ms(100);	}sys_open_show();//系统开机界面显示	while(1){	sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比特币上的人工智能

以感知机为例 人工智能&#xff0c;尤其是机器学习形式的人工智能&#xff0c;最近取得了巨大的进步&#xff0c;应用范围从人脸识别到自动驾驶汽车。我们建议将 AI 与比特币区块链结合起来&#xff0c;以获得许多其他方式无法实现的显着优势&#xff1a; 公开透明&#xff1a…

高校教师资格证备考

高等教育制度 关于人的全面发展和个体发展的关系&#xff0c;说法正确的是&#xff08;ABC&#xff09;。 A.个体发展是在全面发展基础上的选择性发展 B.全面发展是个体发展的前提和基础 C.个体发展又是全面发展的动力 D.个体发展是全面发展的前提和基础

从0开始学习数据结构 C语言实现 1.前篇及二分查找算法

一、前篇 1、什么是数据结构&#xff1f; 数据结构是带有结构特性的数据元素的集合&#xff0c;它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系 2、时间复杂度与空间复杂度 大O符号是用于描述函数渐进行为的数学符号 常用函数的增长表 阶乘O(n!) > 指数…

Lec14 File systems 笔记

文件系统中核心的数据结构就是inode和file descriptor 分层的文件系统&#xff1a; 在最底层是磁盘&#xff0c;也就是一些实际保存数据的存储设备&#xff0c;正是这些设备提供了持久化存储。在这之上是buffer cache或者说block cache&#xff0c;这些cache可以避免频繁的读…

MSYS2介绍及工具安装

0 Preface/Foreword 1 MSYS2 官网&#xff1a;MSYS2

2023年AI生成音频研究报告

第一章 行业概况 1.1 定义 AI音频生成行业&#xff0c;作为人工智能生成内容&#xff08;AIGC&#xff09;技术渗透的关键领域&#xff0c;正迅速成为技术革新的前沿阵地。这一领域专注于运用先进的人工智能技术和复杂算法来创造音频内容&#xff0c;覆盖了语音合成、音乐制作…

虚拟机配置网络ip,主打一个详细

文章目录 一、前言二、安装vim编辑器三、检查联网状态1. 使用ping命令 四、查看ip五、ens33网卡六、开机启动ens33网卡七、获取子网地址和子网掩码八、配置网关与子网掩码1. 编辑虚拟网络信息2. 配置网关3. 配置ens33网卡信息 九、动态ip配置十、静态ip配置 一、前言 本文主要…

达芬奇DaVinci Resolve Studio 18.6.3 for Mac

DaVinci Resolve Studio 18是一款专业的视频编辑和调色软件&#xff0c;适用于电影、电视节目、广告等各种视觉媒体的制作。它具有完整的后期制作功能&#xff0c;包括剪辑、调色、特效、音频处理等。 以下是DaVinci Resolve Studio 18的主要特点&#xff1a; - 提供了全面的视…

【电路笔记】-快速了解无源器件

快速了解无源器件 文章目录 快速了解无源器件1、概述2、电阻器作为无源器件3、电感器作为无源器件4、电容器作为无源器件5、总结 无源器件是电子电路的主要构建模块&#xff0c;没有它们&#xff0c;这些电路要么根本无法工作&#xff0c;要么变得不稳定。 1、概述 那么什么是…

电磁场与电磁波part3--静态电磁场及其边值问题的解

1、当场源&#xff08;电荷、电流&#xff09;不随时间变化时&#xff0c;所产生的电场、磁场也不随时间变化&#xff0c;称为静态电磁场。静止电荷产生的静电场、在导电媒质中恒定运动电荷形成的恒定电场以及恒定电流产生的恒定磁场都属于静态电磁场。 2、静电场基本方程微分形…

机器学习第6天:线性回归模型正则化

文章目录 机器学习专栏 正则化介绍 岭回归 岭回归成本函数 核心代码 示例 Lasso回归 Lasso回归损失函数 核心代码 弹性网络 弹性网络成本函数 核心代码 结语 机器学习专栏 机器学习_Nowl的博客-CSDN博客 正则化介绍 作用&#xff1a;正则化是为了防止模型过拟合…

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

pdf如何让多张图片在一页

pdf保存为一页六张图片的方法是&#xff1a; 1、打开pdf查看器,打开文档。 2、点击【打印】图标进入打印程序&#xff0c;选择打印范围。 3、在【打印处理】选项,选择【每张张上放置多页】。 4、自定义每页放置的图片张数为六张&#xff0c;并对打印排版预览设置。 5、设置打印…

Vue3 函数式弹窗

运行环境 vue3vitetselement-plus 开发与测试 1. 使用h、render函数创建Dialog 建议可在plugins目录下创建dialog文件夹&#xff0c;创建index.ts文件&#xff0c;代码如下 import { h, render } from "vue";/*** 函数式弹窗* param component 组件* param opti…

C#实现将Mysql数据迁移到SQL数据库

前提源数据库及目标数据库需要表结构一致 using System; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data.SqlClient; namespace MysqlToSQL { public partial class Form1 : Form { private static string mysqlConnString "…

JUNIT使用和注意、以及断言的介绍使用、SpringBoot Test测试类的使用、maven配置使用junit详细介绍

参考文章&#xff1a; https://www.cnblogs.com/zhukaile/p/14514238.html&#xff0c;https://blog.csdn.net/qq_36448800/article/details/126438339 一、什么是单元测试 在平时的开发当中&#xff0c;一个项目往往包含了大量的方法&#xff0c;可能有成千上万个。如何去保…

Elasticsearch基础条件查询

条件查询 query&#xff1a;查询 match&#xff1a;匹配 match_all&#xff1a;匹配所有 #第一种 GET /shopping/_search?q名字:张三#第二种 GET /shopping/_search {"query": {"match": {"名字": "张三"}} }#全量查询 match_all G…

清华学霸告诉你:如何自学人工智能?

清华大学作为中国顶尖的学府之一&#xff0c;培养了许多优秀的人才&#xff0c;其中不乏在人工智能领域有所成就的学霸。通过一位清华学霸的经验分享&#xff0c;揭示如何自学人工智能&#xff0c;帮助你在这场科技浪潮中勇往直前。 一、夯实基础知识 数学基础&#xff1a;学习…

web前端开发网页设计课堂作业/html练习《课程表》

目标图&#xff1a; 代码解析&#xff1a; 代码解析1<table border"3" align"center"><输入内容(的) 边界"3px" 位置"居中">2<tr><td colspan"7" align"center">课程表</td><t…

京东联盟flutter插件使用方法

目录 1.京东联盟官网注册申请步骤略~2.安卓端插件配置&#xff1a;3.IOS端插件配置4.其它配置5.京东OAuth授权 文档地址&#xff1a;https://baiyuliang.blog.csdn.net/article/details/134444104 京东联盟flutter插件地址&#xff1a;https://pub.dev/packages/jdkit 1.京东联…