《单片机原理及应用》课件第12章 单片机应用系统的设计与开发_第1页
《单片机原理及应用》课件第12章 单片机应用系统的设计与开发_第2页
《单片机原理及应用》课件第12章 单片机应用系统的设计与开发_第3页
《单片机原理及应用》课件第12章 单片机应用系统的设计与开发_第4页
《单片机原理及应用》课件第12章 单片机应用系统的设计与开发_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章嵌入式应用系统的设计与开发

教学目的:了解应用系统设计过程,开发工具和开发方法,学会KeilC51集成开发环境的使用,掌握具体的应用系统的开发方法。教学重点:1.应用系统设计过程;

2.掌握一种开发工具和开发方法,

3.学会使用KeilC51集成开发环境。教学难点:1.具体的应用系统的开发方法。

12.1应用系统设计过程

12.1.1总体方案设计

1.确定系统的设计方案和技术指标2.选择机型3.硬件和软件功能的选择与配合12.1.2硬件设计1.存储器2.选择扩展外围芯片3.测控通道外围设备和电路的配置4.硬件可靠性设计

图12.1典型单片机测控系统框图12.1.3软件设计1.系统定义2.程序设计3.软件可靠性设计(1)指令冗余技术(2)软件陷阱(3)看门狗(WDT)技术

12.2开发工具和开发方法

12.2.1开发工具

1.仿真器

图12.2单片机仿真系统连接示意图2.调试器

图12.3单片机调试器连接示意图

12.2.2单片机的开发方法1.硬件调试2.软件调试图12.4水塔水位控制原理图12.3单片机用于水位控制系统

12.3.1题目分析12.3.2硬件设计

图11.5水塔水位控制电路原理图

主程序清单如下:ORG 0000HLJMP LOOPORG0100HLOOP:ORLP1,#03H;为检查水位状态作准备

MOVA, P1 ;读入状态信号

JNBACC.0,ONE;P1.0=0则转ONEJB ACC.1,TWO;P1.1=1则转TWOBACK:ACALLD10S;调延时10秒子程序(略)

SJMPLOOPONE:JNBACC.1,THREE;P1.1=0则转

CLRP1.3;P1.3

0,启动报警装置

SETBP1.2;P1.2

1,停止电机工作FOUR:SJMPFOUR;等待处理THREE:CLRP1.2;启动电机工作

SJMPBACKTWO:SETBP1.2;停止电机工作

SJMPBACK12.4恒温箱温度控制监测系统

要求设计一个恒温箱温度测控报警系统,恒温箱由电炉加热,要求温度控制在80度左右,当温度在78~82度时绿色指示灯亮,当温度超过82度或低于78度时,红色指示灯亮,并且发出报警声。当温度超过82度关闭电炉,而当温度低于68度,接通电炉加热。要求用4个数码管显示,前三位数码管显示温度,温度显示范围为00.0~99.9度,数码管的最后一位显示“C”。12.4.1题目分析温度传感器的线性工作范围为0~100℃,工作范围内对应的输出电压是0~5V,则当采用8位的A/D转换器对传感器的输出电压量化时,量化值0~255对应的输入电压范围为0~5V,如果要显示实际温度值,经过A/D转换后的值还需要进行物理量与数字量的变换,通常称为标度变换。对于本例题的情况,标度变换值应该为B=99.9℃/255,如果A/D采集的数字值用D表示,则变换后的温度值为T=D×B,这就是准备显示的数字量。

12.4.2硬件设计

图11.6电炉温度监控系统原理图

12.4.4软件设计

图12.7温度采集系统组成框图

C51语言主程序清单如下:#include<reg51.h> //包含51寄存器#include<absacc.h> //包含宏定义库,可访问绝对地址#defineucharunsignedchar //定义变量#defineTMAX209 //82度时对应的AD转换器值#defineTMIN199 //78度时对应的AD转换器值#defineADC0809_IN0XBYTE[0x0DFF8] //ADC0809IN0地址#defineLEDCXBYTE[0xBFFF] //LED段码地址#defineLEDSXBYTE[0x7FFF] //LED位码地址 ucharDISBUF[4]_at_0x40; //显示数据缓存ucharxdata*adc_ADR; //定义AD地址指针unsignedinttemperature; //定义整数型温度变量//位定义bdataFLAG_at_0x21; //位地址空间变量sbitALARMU=FLAG^0; //温度超过上限报警标志位sbitALARMD=FLAG^1; //温度超过下限报警标志位sbitEOC=P1^0; //AD转换完毕标志位sbitALARM=P1^1; //报警控制位sbitHEAT=P1^2; //电炉控制位

sbitRED=P1^3; //红色发光管控制位sbitGREEN=P1^4; //绿色发光管控制位//函数定义unsignedintadc_pro(void); //数据采集子函数voidHextoBCD(unsignedinthex_result); //二进制转

换成BCD码子函数voiddisp(void); //显示子函数voiddelay(void); //延时子函数unsignedcharcodeDiscode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0~F字形码码表

{ALARM=0; //清除声音报警

ALARMU=0; //清除上限报警

ALARMD=0; //清除下限报警

HEAT=1; //电炉关

GREEN=0; //绿灯亮

RED=1; //红灯灭

SP=0x5F; //设置堆栈值while(1){temperature=adc_pro(); //采集温度值,并进行判断if(ALARMD==1) //低于温度下限处理

{HEAT=0; //电炉开,加热

RED=0; //红灯亮GREEN=1; //绿灯灭

ALARM=1; //声音报警

}if(ALARMU==1) //超过温度上限进行处理

{HEAT=1; //电炉关,不加热ALARM=1; //声音报警

RED=0; //红灯亮GREEN=1; //绿灯灭

}if(ALARMD|ALARMU==0) //温度没有超范围进行处理

{HEAT=1; //电炉关,不加热RED=1; //红灯灭GREEN=0; //绿灯亮}

HextoBCD(temperature); //十六进制温度值转为BCD码

DISBUF[3]=0x0C;//把字母C在字形码表位置放在显示缓存3中

disp(); //数码管上显示温度值

}while(1);}下面分别介绍各子函数。1.温度采集子函数unsignedintadc_pro(void){ unsignedchartemp1; //定义一个无符号字符型变量unsignedinttemp_adult; //定义一个无符号整型变量adc_ADR=&ADC0809_IN0; //取ADC零通道地址*adc_ADR=0; //向ADC写入数据,启动AD采集while(EOC==1); //等待EOC为低while(EOC==0); //等待A/D转换完毕temp1=*adc_ADR; //读取采集结果放入temp1中

if(temp1>TMAX)ALARMU=1; //如果温度值超过上限,高温报警位置1else ALARMU=0; //否则清零

if(temp1<TMIN)ALARMD=1; //如果温度值低于下限,低温报警置1else ALARMD=0; //否则清零

temp_adult=temp1*999; //温度电压值变为温度值

temp_adult=temp_adult/255;return(temp_adult); //返回温度的十六进制值}

voidHextoBCD(unsignedinthex_result){DISBUF[0]= (uchar)((hex_result%1000)/100); //取得百位数值DISBUF[1]= (uchar)((hex_result%100)/10); //取得十位数值DISBUF[2]= (uchar)(hex_result%10); //取得个位数值}2.二进制变换为BCD码子函数3.显示子函数voiddisp(void){unsignedchari,j,m,dis_data;for(j=0;j<250;j++){m=0xfe; //设位选字初始值for(i=0;i<4;i++){LEDS=m;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论