单片机课程设计报告文档格式.docx
《单片机课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
成绩:
开课时间:
2016〜2017学年2学期
第一章系统概要2
1.1系统背景2
1.2系统功能2
1.3设计要求2
第二章系统硬件原理3
2.1AW60主要模块和特点3
2.2LCD模块4
2.3LED模块5
第三章系统软件设计7
3.1系统流程7
3.2主程序(main.c)8
3.2中断处理程序(isr.c)9
3.3构件组成11
第四章系统测试34
4.1测试结果34
第五章总结展望39
5.1总结39
5.2展望40
参考文献40
第一章系统概要
1.1系统背景
随着科学技术的发展电子技术产业结构调整,单片机开始迅速发展,由于
单片机本身的易于控制,精度高,自动化全面,市场对于智能控制系统的需求也越来越大。
自动滴灌系统,就是在单片机程序的控制下实现湿度监测、滴灌控制的设备。
单片机系统座位一种典型的嵌入式系统,其系统设计包括硬件设计和软件设计编程设计两个方面,其调试过程一般分为软件调试,硬件调试,系统调试。
自动滴灌系统需要实现湿度采集,A/D转换,湿度显示,工作状态
显示,电机驱动的功能。
1.2系统功能
首先要进行湿度监测,每隔固定的时间就采集一次湿度,在部转换后与标准值进行比较如果湿度值低于给定值的话就切换至工作状态,滴灌结束时自动切换至结束模式,继续监测湿度。
仿真状态下湿度监测采用软件模拟实现,采集湿度信息使用LED显示,每隔
5s采集一次。
工作状态由LCD显示。
分别有滴灌开始(“Drip-irrigationis
starting..”),和滴灌结束(“Drip-irrigationhasended..”)。
滴灌时间为5s。
结束后切换至结束模式。
1.3设计要求
学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但
必须和题目的要求相符合,保证设计的正确。
学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。
设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。
第二章系统硬件原理
2.1AW60主要模块和特点
AW6C系列主要常规模块和特点:
(1)最高达40MHZ的CPU工作频率和20MHZ的部总线工作频率;
时钟源选项包括晶振,谐振器,外部时钟或,部产生的时钟。
(2)相比HC08CP指令集,S08CPU曾加了BGND旨令。
(3)单线后台调试模式接口:
增强的断点能力,允许单一的断点设置在线调试(在片调试模块增加了多于两个的断点)。
(4)含32个中断/复位源;
含2KB的片RAM含60KB的片在线可编程的Flash存储器,带有块保护和安全选项。
(5)可选的计算机正常操作(COP复位;
低电压检测与复位或中断;
非法操作码检测与复位;
非法地址检测与复位。
(6)ADC多达16个通道,10个A/D转换器与动动比较功能;
两个串行通信接口SCI模块与可选的13位中断;
一个串行外设接口SPI模块;
集成电路互联总
线IIC模块运行高达100kbps的最高总线负载;
8引脚键盘中断KBI模块
(7)Timers:
1个2通道和一个6通道16位定时器/脉冲宽度调制器模块。
既有输入捕获,输出比较,脉宽调制功能。
AW子系列MCU勺4种封装形式只是引脚数量和形式有所区别,其他方面是一致的。
2.2LCD模块
LCD作为电子信息产品的主要显示器件,相对于其他类型的显示器件来说有其自身的特点,主要包括:
(1)低电压,低功耗;
(2)平板型结构;
(3)使用寿命长;
(4)被动显示;
(5)显示信息量大且易于彩色化;
(6)无电磁辐射。
点阵字符型LCD是专门用于显示数字,字母,图形符号及少量自定义符号的液晶显示器。
这类显示器把LCD控制器,点阵驱动器,字符存储器,显示体及少量的阻容元件等集成一个液晶显示模板。
鉴于字符型液晶显示模块目前在国际上已经规化,其电特性及接口特性是统一的,只要设计出一种型号的接口电路,在指令上稍加修改即可使用各种规格的字符型液晶显示器模块。
字符型液晶显示器模块的特点如下:
(1)液晶显示屏是以若干5*8或5*11点阵块等组成的显示字符群。
每个点阵块块为一个字符位,字符间距和行间距都是一个点的宽度。
(2)主控制电路为HD44780(HITACHI及其他公司的兼容电路。
从程序员的角度来看LCD显示接口与编程是面向HD44780的,只要了解HD44780的编程结构即可进行LCD的显示编程。
(3)部具有字符发生器ROM可显示192种字符。
(4)具有64字节的字符发生器RAM可以定义8个5*8点阵字符或4个5*11的点阵字符。
(5)具有64字节的数据显示RAM供显示器编程使用。
(6)标准接口特性,与MC9S0系列的MCI容易接口。
(7)模块结构紧凑,轻巧,装配容易。
(8)单+5V电源供电(宽温型需要加-7V驱动电源)。
(9)低功耗,高可靠性。
2.3LED模块
LED发光二极管分为共阴极和共阳极数码管,若为共阴极数码管则公共端接
地,若为共阳极数码管则公共端接电源正极。
如图1:
*bcd
efEabcdef4p
■
GndTO扶阳桜\
1
1Vcc
图1
实际应用中是多个LED共同使用,MCU!
过一个称为数据口的8位数据端口来
控制位段而原来8段数码管的公共端,原来接到公共电平,现在接MCU的一个引
脚,由MCU来控制,通常叫做位选信号,这样MCC的8个端口就可以控制8连排
的数码管了。
若要控制更多数码管则需加一个译码芯片。
每个时刻只让一个数码管有效,由于人的视觉暂留效应(100ms)可以达到同时显示的效果
图2是MCUf4排8段数码管的连接:
第三章系统软件设计
3.1系统流程
图3
图3是系统流程图,开始时先初始化各个部件,LCD显示结束滴灌信息,LED
显示为全零。
后每隔五秒采集一次湿度数据用LED显示湿度。
判断湿度值是否低
于设定值,低于设定值的话立即启动滴灌,此时湿度上升,结束滴灌。
若没有低于设定值的话,则继续监测。
LED不断刷新显示当前湿度值。
3.2主程序(main.c)
intmain(void)
{
work=0;
shidu=75;
enter_critical();
LEDInit();
LCDInit();
tpm_init(TPM0,TPM_CLKSRC_PLL,1000);
//初始化TPM模块,
1ms中断一次
light_init(LIGHT_PORT,LIGHT_PIN_RED,LIGHT_OFF);
light_init(LIGHT_PORT,LIGHT_PIN_GREEN,LIGHT_OFF);
tpm_enable_int(0);
init_critical();
for(;
;
)
return0;
}
3.2中断处理程序(isr.c)
//================================================================
//文件名称:
isr.c
//功能概要:
中断底层驱动构件源文件
//所有:
大学飞思卡尔嵌入式中心()
#include"
includes.h"
voidtpmO_isr(void)
计时器
位选口声明
显示缓冲区
将湿度值转化为对应字符输出
staticuint_32TPMCounter=0;
//
staticuint_8LEDindex=0;
uint_8LEDDataBuffer[4];
//LED
changeCode(shidu,LEDDataBuffer);
〃uint_8i;
uint_8*working;
uint_8*stop;
working=(uint_8*)"
Drip-irrigationisstarting
stop=(uint_8*)"
Drip-irrigationhasended....
if((TPM_SC_REG(TPMO_BASE_PTR)&
TPM_SC_TOF_MASK)==
TPM_SC_TOF_MASK)
TPMCounte叶+;
BSET(TPM_SC_TOF_SHIFT,TPM_SC_REG(TPMO_BASE_PTR)中断置标志
位写1清0
LEDindex++;
if(LEDindex>
=4)LEDindex=0;
i=LEDchangeCode(LEDDataBuffer[LEDindex]-'
0'
);
LEDshow1(LEDindex,i);
if(TPMCounter>
5000)
shidu=sdmn(shidu);
if(shidu<
=65)
changeState(&
work);
〃改变工作状态
if(work==0)
LCDShow(stop);
TPMCounter=0;
Iight_control(LIGHT_PORT,LIGHT_PIN_RED,LIGHT_ON);
light_control(LIGHT_PORT,LIGHT_PIN_GREENJGHT_OFF);
if(work==1)
LCDShow(working);
TPMCounter=0;
shidu=80;
light_control(LIGHT_PORT,LIGHT_PIN_GREENJGHT_ON);
light_control(LIGHT_PORT,LIGHT_PIN_RED,LIGHT_OFF);
changeState(&
3.3构件组成
1、TPM构件:
//=================================================================
tpm.c
tpm底层驱动构件源文件
//====================================================================
tpm.h"
//定时器模块0,1,2地址映射
ConstTPM_MemMapPtr
TPM_ARR[]={TPM0_BASE_PTR,TPM1_BASE_PTR,TPM2_BASE_PTR};
//函数名称:
tpm_enable_int
使能