文章目录
- 一、功能简介
- 二、软件设计
- 三、实验现象
- 联系作者
一、功能简介
本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、蜂鸣器模块、DS1302时钟、速度检测模块、
直流电机驱动,票据打印等。
主要功能:
系统运行后,LCD1604显示当然日期时间,白天/夜晚状态,行驶距离,等待时间,计费及行驶状态;
首先选择处于白天还是夜晚计费模式,即控制S2开关是否闭合,闭合是夜晚,反之白天;
当S1开关闭合时,计费开始,小车开始行驶,根据所选模式计费,显示当前行驶距离和费用,可调节电位器模拟小车行驶速度变化,行驶距离及计费时间长短也将随之变化,当S3开关闭合时,小车进入等待状态,如超出起步价距离,则开始计算等待时间计费,等待时间开始计时,当S3开关断开,小车继续行驶;当S1开关断开,表示行驶结束,蜂鸣器发出提示音,停止计费;可闭合S4开关打印发票,串口显示当然行驶距离和费用。
二、软件设计
/*
作者:嗨小易(QQ:3443792007)*///系统功能控制
void sys_fun_ctrl(void)
{static u8 oneflag=0;//运行开始if(sys_ctrl.run==1){oneflag=0;motor_fr_run();TR0=1;//打开定时器//如果是晚上if(sys_ctrl.daynight==1){sys_ctrl.price_s=10;//起步价10sys_ctrl.perkil=2.5;//每公里价格 }//如果是白天else{sys_ctrl.price_s=8;//起步价8sys_ctrl.perkil=2.0;//每公里价格 }//如果小于2.5公里if(sys_ctrl.dis<2.5)sys_ctrl.runprice=sys_ctrl.price_s;//如果大于2.5公里else//行驶总价=起步价+公里数*每公里价格sys_ctrl.runprice=sys_ctrl.price_s+(sys_ctrl.dis-2.5)*sys_ctrl.perkil;}//运行暂停else if(sys_ctrl.run==2){motor_stop();//如果大于2.5公里if(sys_ctrl.dis>=2.5)//等待总价=等待时间*20/每小时sys_ctrl.witeprice=((float)(sys_ctrl.min*60+sys_ctrl.sec)*20/3600);}//停止else if(sys_ctrl.run==0){motor_stop();TR0=0;//关闭定时器if(sys_ctrl.totprice>0)//代表行驶结束{if(oneflag==0)//仅蜂鸣1次{oneflag=1;beep_alarm(4,50000);//蜂鸣器提示}} }//总价=行驶总价+等待总价sys_ctrl.totprice=sys_ctrl.runprice+sys_ctrl.witeprice;
}//应用控制系统
void appdemo_show(void)
{sys_parm_init();//系统参数初始化lcd1604_init();
// ds1302_init();time0_init();//定时器初始化UART_Init();//串口初始化9600sys_open_show();//系统开机界面显示 while(1){ sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}//定时器0中断函数
void time0() interrupt 1
{ static u8 i=0;TH0=0xDC;TL0=0x00; i++;if(i>=100)//1S到{i=0;if(sys_ctrl.run==1)//运行{sys_ctrl.dis+=(float)sys_ctrl.speed*1/3600;//公里/S }else if(sys_ctrl.run==2)//等待{sys_ctrl.sec++;if(sys_ctrl.sec>=60)//1分到{sys_ctrl.sec=0;sys_ctrl.min++;if(sys_ctrl.min>=60)//1小时到{sys_ctrl.min=0;sys_ctrl.hour++;if(sys_ctrl.hour>=24)//到达最大计时{ sys_ctrl.hour=0; }}} }}
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
联系作者
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。