基于STM32的语音IC卡停车管理系统

  • 1、快速完成毕设的方法
  • 2、项目资料
  • 2.1 系统框架
  • 2.2 系统功能
  • 3、部分电路设计
  • 3.1 STC89C52单片机最小系统电路设计
  • 3.2 继电器控制电路设计
  • 3.3 DS18B20温度检测电路设计
  • 3.4 LCD1602液晶显示电路设计
  • 4、部分代码展示
  • 4.1 LCD1602液晶显示屏引脚初始化程序设计
  • 4.2 LCD1602显示字符串程序设计
  • 4.3 定时器初始化程序设计
  • 5. 项目编号

1、快速完成毕设的方法

  • 点击查看

2.1 系统框架

本系统由STC89C52单片机电路+水流量传感器+DS18B20温度电路+继电器电路+LCD1602液晶显示电路+按键电路+蜂鸣器电路+电源电路组成。

2.2 系统功能

  • 1、水流量传感器采用椭圆齿轮传感器。
  • 2、通过液晶LCD1602液晶实时显示瞬时流量和累计流量、实时温度、设置的累计流量。
  • 3、通过按键设置累计流量阈值,如果累计流量超过设置阈值,蜂鸣器报警、继电器断开,否则不报警继电器闭合。
  • 4、继电器模拟水阀开关,如果当前累计流量低于设置流量,打开继电器的意思。

3、部分电路设计

3.1 STC89C52单片机最小系统电路设计

STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_毕业设计

实物图:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_lcd1602_02

3.2 继电器控制电路设计

继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、

其具体电路原理图如下图所示:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_单片机_03

  • 实物图

3.3 DS18B20温度检测电路设计

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。

其具体电路原理图如下图所示:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_课程设计_04

实物图如下:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_课程设计_05

3.4 LCD1602液晶显示电路设计

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。

其具体电路原理图如下图所示:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_单片机_06


实物图如下:

毕业设计 基于51单片机的智能水表水流量计流量报警器温度设计_51单片机_07

4、部分代码展示

4.1 LCD1602液晶显示屏引脚初始化程序设计

void LcdInit(void) 
{
//    DataDir  = 0xFF;                 //数据端口设为输出状态 
    LcdWriteCommand(0x38, 0);	    //规定的复位操作
    DelayMs(5);
    LcdWriteCommand(0x38, 0);		
    DelayMs(5);
    LcdWriteCommand(0x38, 0);
    DelayMs(5);

    LcdWriteCommand(0x38, 1);		//显示模式设置
    LcdWriteCommand(0x08, 1);		//显示关闭
    LcdWriteCommand(0x01, 1);	    //显示清屏
    LcdWriteCommand(0x06, 1);		//写字符时整体不移动
    LcdWriteCommand(0x0c, 1);		//显示开,不开游标,不闪烁
}

4.2 LCD1602显示字符串程序设计

void Lcd_Puts(unsigned char x,unsigned char y, unsigned char *string) //向1602写一个字符串 
{ 
	Lcd_SetXY(x,y); 
	while(*string) 
	{ 
		Lcd_Write_Data(*string); 
		string++; 
	} 
}

4.3 定时器初始化程序设计

void Init_Timer0(void)
{
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
	TH0=(65536-20000)/256;		  //重新赋值 20ms
	TL0=(65536-20000)%256;
	EA=1;            //总中断打开
	ET0=1;           //定时器中断打开
	TR0=1;           //定时器开关打开
}

5. 项目编号

014