多路监控报警系统单片机课程设计1 精品推荐文档格式.docx

上传人:b****6 文档编号:21121209 上传时间:2023-01-27 格式:DOCX 页数:39 大小:354.64KB
下载 相关 举报
多路监控报警系统单片机课程设计1 精品推荐文档格式.docx_第1页
第1页 / 共39页
多路监控报警系统单片机课程设计1 精品推荐文档格式.docx_第2页
第2页 / 共39页
多路监控报警系统单片机课程设计1 精品推荐文档格式.docx_第3页
第3页 / 共39页
多路监控报警系统单片机课程设计1 精品推荐文档格式.docx_第4页
第4页 / 共39页
多路监控报警系统单片机课程设计1 精品推荐文档格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

多路监控报警系统单片机课程设计1 精品推荐文档格式.docx

《多路监控报警系统单片机课程设计1 精品推荐文档格式.docx》由会员分享,可在线阅读,更多相关《多路监控报警系统单片机课程设计1 精品推荐文档格式.docx(39页珍藏版)》请在冰豆网上搜索。

多路监控报警系统单片机课程设计1 精品推荐文档格式.docx

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

数字量输出及控制线:

11条ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;

下跳沿时,开始进行A/D转换;

在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;

否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;

OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。

(2)、ADC0809应用说明ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连,初始化时,使ST和OE信号全为低电平,送要转换的哪一通道的地址到A,B,C端口上,在ST端给出一个至少有100ns宽的正脉冲信号,是否转换完毕,我们根据EOC信号来判断,当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

2、SST89E58RD

(1)、SST89E58RD管脚图:

3、1602液晶

引脚功能说明

第1脚:

VSS为电源地,接GND。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

BLA背光电源正极(+5V)输入引脚。

第16脚:

BLK背光电源负极,接GND。

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

2

光标返回

*

3

置输入模式

I/D

S

4

显示开/关控制

D

C

B

5

光标或字符移位

S/C

R/L

6

置功能

DL

N

F

7

置字符发生存贮器地址

字符发生存贮器地址

8

置数据存贮器地址

显示数据存贮器地址

9

读忙标志或地址

BF

计数器地址

10

写数到CGRAM或DDRAM)

要写的数据内容

11

从CGRAM或DDRAM读数

读出的数据内容

指令1:

清显示,指令码01H,光标复位到地址00H位置指令2:

光标复位,光标返回到地址00H指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:

字符发生器RAM地址设置指令8:

DDRAM地址设置指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据指令11:

读数据。

读状态

输入

RS=L,R/W=H,E=H

输出

D0—D7=状态字

写指令

RS=L,R/W=L,D0—D7=指令码,E=高脉冲

读数据

RS=H,R/W=H,E=H

D0—D7=数据

写数据

RS=H,R/W=L,D0—D7=数据,E=高脉冲

五、软件设计

主程序设计:

1)A/D转换程序

每次5组电压值构成一个数组,数组中的值为AD进入值50次的平均值。

2)数据处理程序:

可以说是整个程序设计的最难点,数据处理显示的电压值计算公式:

V=(A*500)/255,(其中A为经0809转换后所得的数字量)这样使得计算出来的数值为整型,避免了浮点数计算复杂的缺点,在之后的显示中加入小数点即可。

子程序设计:

由于C语言的子程序功能比较强大,所以本程序调用相关子程序,减少了很多编程的繁琐,相关子程序功能如下所示:

函数功能:

400ms延时延时函数功能:

5ms延时函数功能:

1602A按指定位置显示一个字符

1602A初始化函数功能:

1602A读状态函数功能:

1602A写指令

1602A读数据函数功能:

1602A写数据作用:

AD0809通道选择采样值

流程图:

六、系统C程序

根据上述软/硬件的设计,编写好的源程序如下:

/******************************************************************

**ADC0809的多路电压监视器

**ADC0809+1602LCD+单片机

**作者:

于萱格

******************************************************************/

#include<

reg52.h>

intrins.h>

math.h>

stdlib.h>

stdio.h>

#defineSYSTEM_OSC12000000//定义晶振频率12000000HZ

#defineSOUND_SPACE4/5//定义普通音符演奏的长度分率,//每4分音符间隔

#defineucharunsignedchar

#defineuintunsignedint

#defineLCM_DataP2//数据接口

sbitST=P0^0;

//file:

//片选端

sbitEOC=P0^1;

//file:

//时钟端

sbitOE=P0^2;

//数据输入输出复用

sbitA=P0^3;

sbitb=P0^5;

sbitC=P0^6;

sbitLCM_E=P3^5;

//定义接口

sbitLCM_RW=P3^6;

sbitLCM_RS=P3^7;

sbitLED_GREEN=P3^1;

//定义绿灯的口

sbitLED_RED=P3^0;

//定义红灯的口

sbitBeepIO=P3^4;

//定义输出管脚

sbitEX_0=P3^2;

//外部中断INTO

sbitEX_1=P3^3;

//外部中断INT1

sbitB_UP=P0^7;

//定义外部按键1

sbitB_DOWN=P0^4;

//定义外部按键2

voidLCM_WriteData(ucharWDLCM);

voidLCM_WriteCommand(ucharWCLCM,BuysC);

ucharLCM_ReadData(void);

ucharLCM_ReadStatus(void);

voidLCM_Init(void);

voidDisplayOneChar(ucharX,ucharY,ucharDData);

voidDisplayListChar(ucharX,ucharY,ucharcode*DData);

voidDelay5Ms(void);

voidDelay400Ms(void);

voidinit(void);

//AD0809初始化

voidAD(uintM);

//选择通道来显示

voidDelay(uintm);

//AD0809专用延时

charB_UP_CHECK(void);

//向上按键去抖

charB_DOWN_CHECK(void);

//向下按键去抖

voidInitialSound(void);

voidDelay1ms(unsignedintcount);

voidPlay(unsignedchar*Sound,unsignedcharSignature,unsignedOctachord,unsignedintSpeed);

ucharcodeuctech[10]={'

0'

'

1'

2'

3'

4'

5'

6'

7'

8'

9'

};

unsignedintcodeFreTab[12]={262,277,294,311,330,349,369,392,415,440,466,494};

//原始频率表

unsignedcharcodeSignTab[7]={0,2,4,5,7,9,11};

//1~7在频率表中的位置

unsignedcharcodeLengthTab[7]={1,2,4,8,16,32,64};

unsignedcharSound_Temp_TH0,Sound_Temp_TL0;

//音符定时器初值暂存

unsignedcharSound_Temp_TH1,Sound_Temp_TL1;

//音长定时器初值暂存

//intfunc=0,func_ok=0,max_value=130,min_value=50;

intAD_DATA;

ucharcodenet[]={"

Running"

//7

ucharcodenet1[]={"

Set_Max_Value"

//13

ucharcodenet2[]={"

Set_Min_Value"

ucharcodenet3[]={"

HelloWorld!

"

ucharcodenet4[]={"

Now_Value:

//9

ucharcodenet5[]={"

WARNNING!

ucharcodenet6[]={"

CH"

intfunc=0,func_ok=0;

uintmax_value[5]={200,200,200,200,200};

uintmin_value[5]={0,0,0,0,0};

//*****************************Music******************************************************

//挥着翅膀的女孩

unsignedcharcodeMusic_Girl[]={0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x15,0x03,

0x16,0x03,0x17,0x03,0x17,0x03,0x17,0x03,0x18,0x03,

0x19,0x02,0x16,0x03,0x17,0x03,0x18,0x02,0x18,0x03,

0x17,0x03,0x15,0x02,0x18,0x03,0x17,0x03,0x18,0x02,

0x10,0x03,0x15,0x03,0x16,0x02,0x15,0x03,0x16,0x03,

0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x1A,0x03,

0x1B,0x03,0x1F,0x03,0x1F,0x03,0x17,0x03,0x18,0x03,

0x19,0x02,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x03,

0x18,0x03,0x1F,0x03,0x1F,0x02,0x16,0x03,0x17,0x03,

0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20,0x02,

0x1F,0x03,0x1B,0x03,0x1F,0x66,0x20,0x03,0x21,0x03,

0x20,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x1F,0x03,

0x1B,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1A,0x66,

0x1A,0x03,0x19,0x03,0x15,0x03,0x15,0x03,0x17,0x03,

0x16,0x66,0x17,0x04,0x18,0x04,0x18,0x03,0x19,0x03,

0x1A,0x03,0x19,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,

0x1F,0x00,0x1A,0x03,0x1A,0x03,0x1A,0x03,0x1B,0x03,

0x1B,0x03,0x1A,0x03,0x19,0x03,0x19,0x02,0x17,0x03,

0x15,0x17,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,

0x17,0x04,0x18,0x0E,0x18,0x03,0x17,0x04,0x18,0x0E,

0x18,0x66,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,

0x20,0x03,0x20,0x02,0x1F,0x03,0x1B,0x03,0x1F,0x66,

0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,0x1B,0x03,

0x1F,0x66,0x1F,0x04,0x1B,0x0E,0x1B,0x03,0x19,0x03,

0x19,0x03,0x15,0x03,0x1A,0x66,0x1A,0x03,0x19,0x03,

0x15,0x03,0x15,0x03,0x17,0x03,0x16,0x66,0x17,0x04,

0x18,0x04,0x18,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,

0x1F,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,

0x1B,0x03,0x1F,0x66,0x1F,0x03,0x1B,0x03,0x19,0x03,

0x19,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x00,0x18,0x02,

0x18,0x03,0x1A,0x03,0x19,0x0D,0x15,0x03,0x15,0x02,

0x18,0x66,0x16,0x02,0x17,0x02,0x15,0x00,0x00,0x00};

//同一首歌

unsignedcharcodeMusic_Same[]={0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x66,0x18,0x03,

0x17,0x02,0x15,0x02,0x16,0x01,0x15,0x02,0x10,0x02,

0x15,0x00,0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x02,

0x17,0x03,0x18,0x03,0x19,0x02,0x15,0x02,0x18,0x66,

0x17,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x16,0x00,

0x17,0x01,0x19,0x02,0x1B,0x02,0x1B,0x70,0x1A,0x03,

0x1A,0x01,0x19,0x02,0x19,0x03,0x1A,0x03,0x1B,0x02,

0x1A,0x0D,0x19,0x03,0x17,0x00,0x18,0x66,0x18,0x03,

0x19,0x02,0x1A,0x02,0x19,0x0C,0x18,0x0D,0x17,0x03,

0x16,0x01,0x11,0x02,0x11,0x03,0x10,0x03,0x0F,0x0C,

0x10,0x02,0x15,0x00,0x1F,0x01,0x1A,0x01,0x18,0x66,

0x19,0x03,0x1A,0x01,0x1B,0x02,0x1B,0x03,0x1B,0x03,

0x1B,0x0C,0x1A,0x0D,0x19,0x03,0x17,0x00,0x1F,0x01,

0x1A,0x01,0x18,0x66,0x19,0x03,0x1A,0x01,0x10,0x02,

0x10,0x03,0x10,0x03,0x1A,0x0C,0x18,0x0D,0x17,0x03,

0x16,0x00,0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x70,

0x18,0x03,0x17,0x02,0x15,0x03,0x15,0x03,0x16,0x66,

0x16,0x03,0x16,0x02,0x16,0x03,0x15,0x03,0x10,0x02,

0x10,0x01,0x11,0x01,0x11,0x66,0x10,0x03,0x0F,0x0C,

0x1A,0x02,0x19,0x02,0x16,0x03,0x16,0x03,0x18,0x66,

0x18,0x03,0x18,0x02,0x17,0x03,0x16,0x03,0x19,0x00,

0x00,0x00};

//两只蝴蝶

unsignedcharcodeMusic_Two[]={0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,

0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,

0x16,0x0D,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,

0x10,0x0E,0x15,0x04,0x0F,0x01,0x17,0x03,0x16,0x03,

0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,

0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0D,0x17,0x03,

0x16,0x03,0x15,0x03,0x10,0x03,0x15,0x03,0x16,0x01,

0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,

0x10,0x0E,0x15,0x04,0x0F,0x01,0x17,0x03,0x19,0x03,

0x19,0x01,0x19,0x03,0x1A,0x03,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1