基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】

 一、项目功能简介

 整个设计系统由STC89C52单片机+DS1302时钟模块+LCD1602显示模块+DS18B20温度模块+24C02存储模块+L298电机驱动模块里+按键模块+蜂鸣器模块组成。

具体功能:

1、LCD1602显示日期时间、温度,计费开始显示起步价、里程价、总路程和总费用。

2、可设置时间、白天夜晚模式、白天起步价、白天里程价、夜晚起步价、夜晚里程价、电机的转速。

3、白天夜晚模式的起步价、里程价存储在24C02里面。

4、电机模拟霍尔传感器输出脉冲,计算总路程。

5、电机速度可调。

二、系统构成图

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第1张图片
三、仿真

本次项目采用proteus8.11软件实现仿真设计。由于proteus软件版本原因,不能确保proteus其他版本软件能够正常运行,请安装好对应软件版本(版本一致或者高于这个版本都可以)

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第2张图片

四、程序

void main()
{
  LCD_Init();            //LCD的初始化
  DS1302_Init();          //时间模块的初始化
  Timer0_Init();          //定时器0的初始化  
  Timer1_Init();          //定时器1的初始化  
  IT_init();            //外部中断初始化
  Motor_init();          //电机初始化  
//  DS1302_SetTime();        //用于DS1302第一次启动,写入时间
  DS1302_ReadTime();        //读取时间
  Temp_Buffer = Get_temp();      //读取DS18B20的值
  Delay_ms(500);          //等待1s等待DS18B20数据稳定。否则可能会出现85℃。
  LCD_ShowString(1,1,"  -  -  ");  //LCD先显示时间日期的标号
  LCD_ShowString(2,1,"  :  :  ");  
  AT24C02_Read(0,Price_num,6);  //从24C02读取单价数据
  BUZZ_F();            //初始化完成,蜂鸣器响一下
  while(1)
  {
//    Delay_ms(5);              //延时
    KeyNumber = Key();            //检测哪个按键被按下
    ShowSet();                //进入设置
    if(KeyNumber == 1 && SET_flag == 0 )  //按键1被按下 ,未进入其他界面
    {
      MODE++;                //显示界面++
      LCD_WriteCommand(0x01);        //清理LCD显示屏幕
      if(MODE > 2)            //只有三个显示界面,0-1-2  普通界面-时间设置界面-单价设置界面
      {
        MODE = 0 ;
      }
      if(MODE == 0 )            //退出设置模式,显示时间日期,运行模式,先显示时间
      {
        LCD_ShowString(1,1,"  -  -  ");  
        LCD_ShowString(2,1,"  :  :  ");
      }
      if(MODE == 1 )            //设置模式1 ,进入时间设置和速度设置
      {
        LCD_ShowString(1,1,"  -  -  ");  //LCD先显示时间日期的标号
        LCD_ShowString(2,1,"  :  :  ");
      }
      if(MODE == 2 )            //设置模式2 ,进入单价设置,白天和晚上
      {
        LCD_ShowString(1,1,"  R/ Km  R/Km D");
        LCD_ShowString(2,1,"  R/ Km  R/Km N");
      }
    }
    switch(MODE)              //显示选择模式
    {
      case 0: TimeShow();break;      //时间日期
      case 1: TimeSETShow();break;    //时间设置
      case 2: Price_SETShow();break;    //单价设置
      case 3: BD_Show();break;      //计费开始
    }
  }
}

五、原理图

本原理图利用AD17软件设计。

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第3张图片

六、参考论文

总共有12k字的论文,都是自己收集资料纯手打的。

论文仅限于参考,内容跟项目对应。

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第4张图片

七、全部资料

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第5张图片
八、资料获取

基于51单片机的出租车计价器设计【程序+proteus仿真+参考论文+AD原理图】_第6张图片

关注公众号,后台回复:51出租车

你可能感兴趣的:(51单片机,proteus,嵌入式硬件)