1.基于单片机的液位检测系统的设计与制作
自己做个最小系统板,参照数据手册就可以做了!/*-----------------------------------------------超声波测距------------------------------------------------*/#include
2.基于单片机的液位检测系统的设计与制作
自己做个最小系统板,参照数据手册就可以做了!/*-----------------------------------------------超声波测距------------------------------------------------*/#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include"1602.h"#include"delay.h"sbit Tx = P3^0;sbit Rx = P3^1; //由于不用外部中断,这两个引脚可以随便接//sbit INTR1 = P3^3; //红外接口标志//sbit BUZ = P3^0; //蜂鸣器和led灯报警bit TimeUp ; //定时器溢出标志位long Th0 , Tl0 ;unsigned long time0 = 0 ;unsigned long Result ;//unsigned char In_Number = 0;char code Tab[10]="0123456789";unsigned char TempData[3];/*------------------------------------------------ 定时器0中断处理------------------------------------------------*/void tim0_isr (void) interrupt 1 using 1{ TimeUp=1; //溢出标志位置高}///*------------------------------------------------// 外部中断2中断处理//------------------------------------------------*///void EX1_ISR (void) interrupt 2 //外部中断2服务函数//{// In_Number++;//}//void Beep(void) //声光提示//{// BUZ = 0;// DelayMs(150);// BUZ = 1;//}/*------------------------------------------------ 外部中断0初始化------------------------------------------------*///void EX1_init (void)//{// IT1 = 1; //set INT1 int type (1:Falling only 0:Low level)// EX1 = 1; //enable INT1 interrupt// EA = 1; //open global interrupt switch //}unsigned int Measure_Work(void){char Delay20us = 0 ;char RxBack = 1 ;TMOD = 0x01 ; //定时器工作方式1::16位不重装Tx = 0 ;Th0 = 0 ;Tl0 = 0 ;TimeUp = 0 ;EA = 1 ; //开总中断ET0 = 1 ; //允许定时器0中断TR0 = 0 ; //关定时器TH0 = 0 ;TL0 = 0 ;Tx = 1 ; //拉高 for (Delay20us=20;Delay20us>0;Delay20us--); //延时20USTx = 0 ; //拉低while(Rx==0); //等待回波引脚变为低电平TH0 = 0 ;TL0 = 0 ; TR0 = 1 ; //开定时器//使用软件查询方式while(RxBack){if(Rx==0||TimeUp){TR0 = 0 ;Th0 = TH0 ;Tl0 = TL0 ;TR0 = 1 ;RxBack = 0 ;}}while(!TimeUp); //等待定时器溢出time0 = (Th0*256+Tl0); //取出定时器的值Result = ((unsigned long)334*time0)/2000; //计算距离,结果为mmif(Result600){ Result = 0 ; }// if(Result>36)// { Result = (Result*116)-331 ;Result = Result/100;// }// else Result = Result ;// Result = Result + 8 ; //探头盲区的补偿return Result ; //返回测量结果}void Number_Work(){TempData[2] = Tab[Measure_Work()%100%10];TempData[1] = Tab[Measure_Work()%100/10];TempData[0] = Tab[Measure_Work()/100];}/*------------------------------------------------ 主函数------------------------------------------------*/void main(void){// IT1 = 1; //set INT1 int type (1:Falling only 0:Low level)// EX1 = 1; //enable INT1 interrupt// EA = 1; //open global interrupt switch BUZ = 1 ;LCD_Init(); //初始化液晶DelayMs(20); //延时有助于稳定LCD_Clear(); //清屏// BUZ = 0;// DelayMs(150);// BUZ = 1; LCD_Write_String(0,0,"Ce Ju "); LCD_Write_String(0,1,"Distance:");LCD_Write_String(13,1,"mm");while(1)//主循环 {Number_Work() ;LCD_Write_String(10,1,TempData);DelayMs(20); }}/*----------------------------------------------- 名称:LCD1602 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK------------------------------------------------*/#include "1602.h"#include "delay.h"#define CHECK_BUSYsbit RS = P3^7; //定义端口 sbit RW = P3^4;sbit EN = P3^5;#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P1/*------------------------------------------------ 判忙函数------------------------------------------------*/ bit LCD_Check_Busy(void) { #ifdef CHECK_BUSY DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80);#else return 0;#endif }/*------------------------------------------------ 写入命令函数----------------- ----------------------------*/ void LCD_Write_Com(unsigned char com) { while(LCD_Check_Busy()); //忙则等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; }/*------------------------------------------------ 写入数据函数------------------------------------------------*/ void LCD_Write_Data(unsigned char Data) { while(LCD_Check_Busy()); //忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; }/*------------------------------------------------ 清屏函数------------------------------------------------*/ void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5); }/*------------------------------------------------ 写入字符串函数------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x); //表示第一行 } else { LCD_Write_Com(0xC0 + x); //表示第二行 } while (*s) { LCD_Write_Data( *s); s ++; } }/*------------------------------------------------ 写入字符函数------------------------------------------------*//* void 。
3.单片机液位检测系统设计
无语了,到现在才做~~
单片机可以使用8位的51系列,用AT、AVR、C8051的都无所谓,因为是毕业设计不用考虑成本以及EMC,所以没什么关系。用16位的也可以比如凌阳的SPCE061A、MSP430的都可以,看你比较熟悉哪种了~~
液位传感器有那种利用超波测量液位的,价钱从几十到几百不等。
还有就是利用红外传感器检测液位的。不同点在于红外传感器需要有物理刻度标尺,超声波不需要。
其他的器件就比较简单了,有个放大电路和降噪过滤电路、需要一个显示电路的话再加个玻璃,需要语音再加个喇叭~~
4.基于PLC单闭环液位控制系统设计(毕业论文)PLC采用西门子S7
单片机控制单闭环直流电动机的调速控制系统 论文编号:JD197 字数:18860,页数:62 摘 要直流电动机在冶金、矿山、化工、交通、机械、纺织、航空等领域中已经得到广泛的应用。
随着科学的不断进步,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。本设计就是针对直流电动机的起动和调速性能好,过载能力强等特点设计由单片机控制单闭环直流电动机的调速控制系统。
本设计利用AT89C51单片机设计了单片机最小系统构成直流电动机反馈控制系统的上位机,该上位机具有对外部脉冲信号计数和定时功能,能够将脉冲计数用软件转换成转速,同时在单片机最小系统中设计了4位键盘接口和液晶显示接口。利用AT89C2051设计了由单片机实现的直流电机控制电路,即直流电动机反馈控制系统的下位机,该下位机具有直流电机的反馈控制功能。
上位机与下位机之间采用并行总线的方式进行连接,使控制变得十分方便。本系统能够实现直流电动机的自动起动、自动停止、速度自动控制、方向自动控制等功能。
设计中利用液晶显示将指定转数、实际转数、旋转方向、运行时间等参数显示出来。本系统操作简单、造价低、安全可靠性高、控制灵活方便,具有较高的实用性和再开发性。
关键词:直流电动机;单片机;反馈控制;液晶显示器 AbstractThe direct current motor has already got the extensive application in realms, such as metallurgy, mineral mountain, chemical engineering, transportation, machine, spinning and aviation etc. Because science progresses unremittingly, the application of the direct current motor, in the intelligence robot particularly, is more extensive. A speed-adjusted system of DC conctrolled by MCU according the adventage of DC motor such as starting easily, good performance, and strong carrying over.This design makes use of the place of honor machine that the AT89C51 a machine designed a system with minimum machine to constitute the direct current motive feedback control system, the place of honor's machine tool has outward a pulse signal to count and in fixed time function, can count pulse with the software conversion to become to turn soon, designs 4 keyboarders to connect and the LCD manifestation to connect in a system with minimum machine at the same time. Making use of the AT89C2051 designed from the direct current electrical engineering control electric circuit of a machine realization, namely the direct current motive feedback controls the system of next machine, that next machine tool contain the feedback control function of the direct current electrical engineering. Of the place of honor machine and next machine adopts abreast always the linear way to carry on the conjunction, making control to become very convenient.This system can carry out the direct current motive of automatic start, auto stop, the speed controls automatically, the direction controls automatically etc. function. The designing to win to make use of the LCD manifestation will specify to turn the number, turn the number physically, revolve the direction, and circulate time etc. the parameter shows to come out. This system operation is simple and builds the price low, the safe and dependable is high, controlling vivid convenience, have the higher function with again development. Key words:DC motor;single chip micro-computer;feedback control;lcd 目 录 第1章 绪 论 11.1单片机控制调速系统发展现状 11.2课题来源 11.3本文主要内容 2 第2章 系统方案论证 32.1单片机的选择 32.2直流电动机驱动电路的选择 42.3传感器的选择 52.4键盘的选择 52.5液晶显示器的选择 62.6系统的总体方案 6 第3章 系统硬件的具体设计与实现 73.1主控模块 73.2电机驱动模块 9 3.2.1基本电路单元 9 3.2.2硬件具体实现 93.3电机控制模块 10 3.3.1基本电路单元 10 3.3.2硬件具体实现 113.4显示模块 12 3.4.1液晶显示模块结构与特点 12 3.4.2液晶显示模块与单片机的连接 143.5键盘模块 153.6速度检测模块 163.7电源模块 183.8定时模块 19 3.8.1DS12887特点和功能 19 3.8.2DS12887引脚排列和功能 19 3.8.3控制和状态寄存器 20 3.8.4DS12887与单片机的接口 21 第4章 系统软件设计 224.1系统软件设计的总体思想 224.2系统上位机软件设计 22 4.2.1转速的测量 22 4.2.2键盘的处理 22 4.2.3通信的处理 23 4.2.4显示的处理 234.3系统下位机软件设计 23 第5章 系统软件流程图 245.1主机主程序流程图 245.2主机转速测量中断服务子程序流程图 255.3主机键盘处理中断服务子程序流程图 265.4下位机主程序流程图 275.5下位机检测中断服务子程序流程图 28 第六章 结 论 29 参考文献 30 致 谢 31 附 录Ⅰ 外文翻译 32 附 录Ⅱ 原理图 41 附 录Ⅲ 程序清单 45 以上回答来自: /42-2/2449.htm。
转载请注明出处众文网 » 毕业论文_液位检测显示控制系统设计