单片机课程设计报告完整版word.docx

上传人:b****6 文档编号:6836764 上传时间:2023-01-11 格式:DOCX 页数:38 大小:524.09KB
下载 相关 举报
单片机课程设计报告完整版word.docx_第1页
第1页 / 共38页
单片机课程设计报告完整版word.docx_第2页
第2页 / 共38页
单片机课程设计报告完整版word.docx_第3页
第3页 / 共38页
单片机课程设计报告完整版word.docx_第4页
第4页 / 共38页
单片机课程设计报告完整版word.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

单片机课程设计报告完整版word.docx

《单片机课程设计报告完整版word.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告完整版word.docx(38页珍藏版)》请在冰豆网上搜索。

单片机课程设计报告完整版word.docx

单片机课程设计报告完整版word

目录

第一章系统概要1

1.1系统背景1

1.2系统功能框图1

第二章系统硬件设计2

2.1系统原理图2

2.2单片机(MCU)模块2

2.2.1MC908GP32单片机性能概述2

2.2.2内部结构简图与引脚功能3

2.2.3GP32最小系统4

2.3传感器模块4

2.4信号放大模块5

2.5A/D转换模块5

2.5.1进行A/D转换的基本问题5

2.5.2A/D转换模块的基本编程方法5

2.5.3A/D芯片TCL2543概述6

2.6串行通信模块8

2.6.1串行通信常用概念8

2.6.2RS-232C总线标准9

2.6.3串口通信的主要功能10

第三章系统软件设计10

3.1MCU方(C)程序10

3.1.1系统主函数模块11

3.1.2GP32系统初始化程序11

3.1.3A/D转换模块12

3.1.4串行口初始化子程序15

3.1.5串口通行程序段15

3.2PC方(VB)程序17

3.3PC方(VB)程序19

3.4PC方界面24

第四章系统测试25

第五章总结展望25

5.1总结25

5.2展望25

参考文献25

 

第一章系统概要

1.1系统背景

随着电子技术和微型计算机的迅速发展,单片机应用与控制技术得到了迅速的发展和广泛的应用。

温度则是系统常需要测量、控制和保持的一个量。

本设计的目的是以MC908GP32单片机为核心设计出一个温度测量采样传感系统。

具体设计是将温度传感器采样得到的模拟信号转换成数字信号,通过串口在PC的界面显示出来。

用温度传感器将被测温度转换为电量,经过放大滤波电路处理后,由模数转换器将模拟量转换为数字量,再与单片机相连,通过可编程键盘显示接口芯片实现温度限值的设定。

.被测量经过温度传感器转换为电量,再放大后送给A/D转换器。

电量经过A/D转换为二进制数值,单片机根据设计目的完成相应的软件处理。

处理完毕后,送键盘显示处理芯片,然后再由数码管显示。

一个完整的A/D转换过程中,必须包括取样、保持、量化与编码等几部分电路。

在两次取样之间,应将取样的模拟信号暂时储存到下个取样脉冲到来,这个动作称之为保持。

量化与编码电路是A/D转换器的核心组成的部分,一般对取样值的量化方式有只舍去不进位和有舍去有进位两种。

基于温度传感器的采样系统就是利用集成电路温度传感器和A/D转换器两个主要模块完成。

这是一种低成本的利用单片机I/O口实现的温度检测电路,该电路非常简单,易于实现,并且适用于几乎所有类型的单片机。

因此它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;

1.2系统功能框图

MCU工作支撑电路保障MCU能正常运行,如电源电路、晶振电路及必要的滤波电路等。

实际模拟信号一般来自相应的传感器。

例如,要测量室内的温度,就需要温度传感器。

但是,一般传感器将实际的模拟信号转成的电信号都比较弱,MCU无法直接获得该信号,需要将其放大,然后经过模/数(A/D)转换变为数字信号,进行处理。

目前许多MCU内部包含A/D转换模块,实际应用时也可根据需要外接A/D转换芯片。

对MCU来说,模拟信号通过A/D转换变成相应的数字序列进行处理。

常用的通信方式有:

异步串行(SCI)通信方式、串行外设接口(SPI)通信方式、并行通信方式、USB通信方式、网络通信(uIP)方式等。

最后设计将温度传感器采样得到的模拟信号转换成数字信号,通过串口在PC的界面显示出来。

 

第二章系统硬件设计

2.1系统原理图

2.2单片机(MCU)模块

2.2.1MC908GP32单片机性能概述

MC908GP32是MC908GP系列中的一个型号,MC68HC908GP32有40脚、42脚、44脚三种封装形式;MC68HC908GP32的主要特点概述如下:

(1)512B片内RAM;32K片内Flash程序存储器,具有在线编程能力和保密功能。

(2)时钟发生器模块,具有32KHz晶振PLL电路,可产生各种工作频率;8MHz内部总线频率。

(3)增强的HC05CPU结构;16种寻址方式(比HC05多8种);16位变址寄存器和堆栈指针;存储器至存储器数据传送;快速8×8乘法指令;快速16/8除法指令;扩展的循环控制功能;BCD功能。

(4)33根通用I/O脚,包括26根多功能I/O脚和5或7根专用I/O脚;PTA、PTC和PTD的输入口有可选择的上拉电阻;PTC0—PTC4有15mA吸流和放流能力,其他口有10mA吸流和放流能力(总体驱动电流应小于150mA);所有口有最高5mA输入电流保护功能。

(5)增强型串行通讯口SCI;串行外围接口SPI;两个16位双通道定时器接口模块(TIM1和TIM2),每个通道可选择为输入捕捉、输出比较和PWM,其时钟可分别选为内部时钟的1、2、4、8、6、32和64的分频值;带时钟预分频的定时基模块有8种周期性实时中断(1、4、16、256、512、1024、2048和4096Hz),可在STOP方式时使用外部32KHz晶振周期性唤醒CPU;8位键盘唤醒口。

(6)系统保护特性:

计算机工作正常(COP)复位;低电压检测复位,可选为3V或5V操作;非法指令码检测复位;非法地址检测复位。

(7)具有PDIP40、SDIP42和QFP44封装形式。

(8)优化用于控制应用;优化支持C语言。

2.2.2内部结构简图与引脚功能

1.内部结构简图(44引脚)

单片机(以下简称GP32单片机)的三种封装形式只是引脚数量和形式有所区别,其它方面是一致的。

图中I/O口是按44引脚的GP32给出的。

从内部结构简图可以看出,GP32内部有以下主要部分:

CPU08、存储器、定时器接口

模块、定时基模块、看门狗模块、通用I/O接口、串行通信接口SCI、串行外设接口SPI、断点模块、A/D转换模块、键盘中断模块、时钟发生模块及锁相环电路、低电压禁止模块、复位与中断模块、监控模块MON和系统设置模块。

2.GP32单片机的引脚功能

(1)电源类引脚:

VDD、VSS(20引脚、19引脚):

电源供给端。

VDDAD/VREFH、VSSAD/VREFL(31引脚、32引脚):

内部A/D转换模块的电源供给及参考电压输入端。

VDDA、VSSA(1引脚、2引脚):

时钟发生器模块(CGM)的电源供给端。

(2)控制类引脚:

(6引脚):

外部低有效复位输入或输出引脚,有内部上拉电阻。

(14引脚):

外部中断输入引脚,有内部上拉电阻。

(4)I/O类引脚:

PTA7/KBD7-PTA0/KBD0(42-35引脚):

8位通用双向I/O接口,每个可编程为键盘输入引脚。

PTB7/AD7-PTBO/AD0(32-25引脚):

8位通用双向I/O接口,也可作为8位A/D转换输入引脚。

PTC4-PTC0(11-7引脚):

5位通用双向I/O接口。

PTD7/T2CH1-PTD0/SS(24-21引脚、18-15引脚):

8种特殊功能、双向I/O接口,其中PTD4-PTD7用于定时器模块(TIM1和TIM2)。

SPSCK、MOSI、MISO、SS用语串行外围接口(SPI)。

PTE1/TxD、PTE0/RxD(12引脚、13引脚):

2位双向I/O接口或串行通信。

(4)其他:

CGMXFC(3引脚):

CGM的外部滤波电容连接引脚。

OSC1、OSC2(5引脚、4引脚):

芯片内振荡器引脚。

2.2.3GP32最小系统

文字叙述(最小系统介绍,自己输入)

硬件结构,但仅有一个MCU是无法工作的,它必须与上节讲述了以MC908GP32单片机为原型的HC08系列MCU的其他相应的外围电路一起,才能构成一个最小系统。

MC908GP32芯片(以40脚封装为例)最小系统的外围支撑电路包括电源与滤波电路、晶振电路和复位电路,其中各个部分的功能如下:

1.电源供给与滤波

GP32芯片的20、19脚(VDD、VSS)为芯片的电源输入端,1、2脚(VDDA、VSSA)为内部PLL模块的电源供给。

接在电源与地之间的0.1µF电容为滤波电容。

PLL电路目的在于由频率小的外部晶振产生较大频率的内部总线时钟,提高芯片的抗干扰性。

由于这部分内容涉及的编程内容很少,但原理较难理解,所以放入第14章介绍。

这里只要知道GP32内有PLL电路就可以了,而且GP32内的PLL电路模块需要外接电源。

在MCU的第3脚,接有内部PLL模块的外部滤波电路。

滤波电路的作用主要是增强电路工作稳定性。

2.晶振电路

接MCU第4、5脚(OSC2、OSC1)之间的电路为晶振电路,这里选用的晶振频率为f=32.768KHz。

通过内部PLL电路模块,可获得小于等于8MHz的内部总线频率。

电路及其元件参数是由GP32参考手册确定的。

实际开发中,嵌入式应用工程师往往根据参考手册提供的电路及参数,通过自己的实践,构筑MCU的外围支撑电路,而不深究其工作原理。

3.复位电路

接在MCU第6脚()的电路为芯片硬件复位电路。

正常工作时该脚通过10K电阻接到电源正极(这里设为5V电源供电),所以应为高电平。

若按下复位按钮RST,则第6脚通过51Ω接地,为低电平,芯片复位。

2.3传感器模块

温度传感器采用的是NS公司生产的LM35。

LM35是NS公司生产的集成电路温度传感器系列产品之一。

它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。

因而,从使用角度来说,LM35与用开尔文标准的线性温度传感器相比更有优越之处,LM35无需外部校准或微调,可以提供±1/4℃的常用的室温精度。

其部分参数如下:

工作电压:

直流4~30V;

工作电流:

小于133μA

输出电压:

+6V~-1.0V

输出阻抗:

1mA负载时0.1Ω;

精度:

0.5℃精度(在+25℃时);

漏泄电流:

小于60μA;

比例因数:

线性+10.0mV/℃;

非线性值:

±1/4℃;

校准方式:

直接用摄氏温度校准;

封装:

密封TO-46晶体管封装或塑料TO-92晶体管封装;图1

使用温度范围:

-55~+150℃额定范围。

引脚介绍:

①正电源Vcc;②输出;③输出地/电源地。

LM35外部电路图如图2所示

图2

2.4信号放大模块

由于温度传感器LM35输出的电压范围为0~0.99V,虽然该电压范围在A/D转换器的输入允许电压范围内,但该电压信号较弱,如果不进行放大直接进行A/D转换则会导致转换成的数字量太小、精度低。

系统中选用通用型放大器μA741对LM35输出的电压信号进行幅度放大,还可对其进行阻抗匹配、波形变换、噪声抑制等处理。

系统采取同相输入,电压放大倍数为5倍,电路图如图3所示。

2.5A/D转换模块

A/D转换模块(AnalogToDigitalConvertModule),即模/数转换模块,是将电压信号转换为对应的数字信号。

这个电压量是由压力传感器把压力转换过来,传到MCU处理。

2.5.1进行A/D转换的基本问题

(1)采样精度:

是指数字量变化一个最小量时模拟信号的变化量,即通常所说的采样位数。

(2)采样速率:

是指完成一次A/D采样所要花费的时间。

(3)滤波:

为了使采样的数据更准确,对采样的数据进行筛选去掉误差较大的毛刺。

通常采用中值滤波和均值滤波来提高采样精度。

中值滤波是取3次采样的中间值,均值滤波是取多次采样的算术平均值。

(4)物理量回归:

把A/D采样值与实际物理量对应起来。

2.5.2A/D转换模块的基本编程方法

(1)A/D转换初始化:

对ADCLK写入控制字节,决定时钟输入源是内部总线还是外部晶振,决定分频系数等。

(2)启动A/D转换:

对ADSCR写入控制字节,选取要转换的通道、决定转换结束数据获取的方式、设置是连续转换还是一次转换等。

(3)获A/D转换结果:

若是中断方式,在A/D中断程序中取得,若是查询方式,通过ADSCR的第7位(COCO位)取得,当COCO=1时可从ADR中取数。

(A/D芯片TCL2543概述,上网找一些资料)

A/D芯片TCL2543概述

  A/D、D/A转换器是过程及仪器仪表、设备等检测与控制装置中应用比较广泛的器件。

随着大规模集成电路技术的发展,各种高精度、低功耗、可编程、低成本的A/D转换器不断推出,使得微机控制系统的电路更加简洁,可靠性更高。

  TLC2543与外围电路的连线简单,三个控制输入端为CS(片选)、输入/输出时钟(I/OCLOCK)以及串行数据输入端(DATAINPUT)。

片内的14通道多路器可以选择11个输入中的任何一个或3个内部自测试电压中的一个,采样-保持是自动的,转换结束,EOC输出变高。

  TLC2543的主要特性如下:

  ●11个模拟输入通道;

  ●66ksps的采样速率;

  ●最大转换时间为10μs;

  ●SPI串行接口;

  ●线性度误差最大为±1LSB;

  ●低供电电流(1mA典型值);

  ●掉电模式电流为4μA。

2.5.3A/D芯片TCL2543概述

1.TLC2543的引脚排列如图4所示。

引脚功能说明如下:

  AIN0~AIN10:

模拟输入端,由内部多路器选择。

对4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50Ω;

  CS:

片选端,CS由高到低变化将复位内部计数器,并控制和使能DATAOUT、DATAINPUT和I/OCLOCK。

CS由低到高的变化将在一个设置时间内禁止DATAINPUT和I/OCLOCK;图4

  DATAINPUT:

串行数据输入端,串行数据以MSB为前导并在I/OCLOCK的前4个上升沿移入4位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后I/OCLOCK将余下的几位依次输入;

  DATAOUT:

A/D转换结果三态输出端,在CS为高时,该引脚处于高阻状态;当CS为低时,该引脚由前一次转换结果的MSB值置成相应的逻辑电平;EOC:

转换结束端。

在最后的I/OCLOCK下降沿之后,EOC由高电平变为低电平并保持到转换完成及数据准备传输;

  VCC、GND:

电源正端、地;

  REF+、REF-:

正、负基准电压端。

通常REF+接VCC,REF-接GND。

最大输入电压范围取决于两端电压差;

  I/OCLOCK:

时钟输入/输出端。

2.TLC2543的工作时序

TLC2543每次转换和数据传送使用16个时钟周期,且在每次传送周期之间插入CS的时序。

时序如图2所示。

  从时序图可以看出,在TLC2543的CS变低时开始转换和传送过程,I/OCLOCK的前8个上升沿将8个输入数据位键入输入数据寄存器,同时它将前一次转换的数据的其余11位移出DATAOUT端,在I/OCLOCK下降沿时数据变化。

当CS为高时,I/OCLOCK和DATAINPUT被禁止,DATAOUT为高阻态。

3.TLC2543与AT89S51的连接

由于MCU—51系列单片机不具有SPI或相同能力的接口,为了便于与TLC2543接口,采用软件合成SPI操作,为减少数据传送受微处理器的时钟频率的影响,尽可能选用较高时钟频率。

接口电路如图6所示。

图6

4.接口程序

  设通道/方式控制字存放在R4中,程序在读出前一次转换结果的同时,将该通道/方式控制字发送到TLC2543中去,转换结果存放在相邻地址的存储器中。

存储器地址从30H~45H,且高字节在前,低字节在后。

     ORG100H

 START:

MOVSP,#50H ;堆栈指针初始化

     MOVP1,#04H ;P1口引脚初始化

     CLRP1.0

     SETBP1.3

     ACALLTLC2543

     ACALLSTORE

     JMPSTART

TLC2543:

MOVA,R4

     CLRP1.3

     JBACC.1,LSB ;如果A的位1为1,先做低字节

  MSB:

MOVR5,#08

  LOOP1:

MOVC,P1.2 ;数据位读入进位位RLCA

     MOVP1.1,C ;输出方式/通道位

     SETBP1.0 ;产生I/O时钟

     CLRP1.0

     DJNZR5,LOOP1 ;输入/输出另一位

     MOVR2,A ;高字节送入R2

     MOVA,R4

     JBACC.1,RETURN

  LSB:

MOVR5,#08

  LOOP2:

MOVC,P1.2

     RLCA

     MOVP1.1,C

     SETBP1.0

     CLRP1.0

     DJNZR5,LOOP2

     MOVR3,A

     MOVA,R4

     JBACC.1,MSB

RETURN:

RET

STORE:

MOVA,R4

     ANLA,#0F0H

     SWAPA

     MOVB,#02

    MULAB

     ADDA,#030H

     MOVR1,A

     MOVA,R2

     MOV@R1,A

     INCR1

     MOVA,R3

     MOV@R1,A

     RET

     END

  以上程序用累加器和带进位的左循环移位的指令来合成SPI功能,读入转换结果的第一个字节的第一位到进位(C)位。

累加器内容通过进位位左移,通道选择和方式数据的第一位通过P1.1输出。

然后由P1.0先高后低的翻转来提供串行时钟。

这个时序再重复7次,完成转换数据的第一个字节的传送。

第二个字节由重复8次时钟脉冲和数据传送的整个序列来传送。

2.6串行通信模块

2.6.1串行通信常用概念

(1)异步串行通信的格式

SCI通常采用NRZ数据格式,即:

standardnon-return-zeromark/spacedataformat,译为:

“标准不归零传号/空号数据格式”。

“不归零”的最初含义是:

用正、负电平表示二进制值,不使用零电平。

“mark/space”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。

下图给出了8位数据、无校验情况的传送格式。

(2)串行通信的波特率

波特率(baudrate):

每秒内传送的位数。

波特率单位是位/秒,记为bps。

通常情况下,波特率的单位可以省略。

通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。

(3)奇偶校验

字符奇偶校验检查(characterparitychecking)称为垂直冗余检查(verticalredundancychecking,VRC),它是每个字符增加一个额外位使字符中“1”的个数为奇数或偶数。

奇校验:

如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果“1”的数目是奇数,校验位应为“0”。

偶校验:

如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如果是奇数则为“1”。

(4)串行通信的传输方式

单工(Simplex):

数据传送是单向的,一端为发送端,另一端为接收端。

这种传输方式中,除了地线之外,只要一根数据线就可以了。

有线广播就是单工的。

全双工(Full-duplex):

数据传送是双向的,且可以同时接收与发送数据。

这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。

一般情况下,MCU的异步串行通信接口均是全双工的。

半双工(Half-duplex):

数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。

任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。

2.6.2RS-232C总线标准

MCU引脚一般输入/输出使用TTL电平,而TTL电平的“1”和“0”的特征电压分别为2.4V和0.4V,适用于板内数据传输。

为了使信号传输得更远,美国电子工业协会EIA(ElectronicIndustryAssociation)制订了串行物理接口标准RS-232C。

RS-232C采用负逻辑,-3V~-15V为逻辑“1”,+3V~+15V为逻辑“0”。

RS-232C最大的传输距离是30m,通信速率一般低于20Kbps。

RS-232接口,简称“串口”,它主要用于连接具有同样接口的室内设备。

目前几乎所有计算机上的串行口都是9芯接口。

图7给出了9芯串行接口的排列位置,相应引脚含义见表。

引脚号

功能

1

接收线信号检测(载波检测DCD)

2

接收数据线(RxD)

3

发送数据线(TxD)

4

数据终端准备就绪(DTR)

5

信号地(SG)

6

数据通信设备准备就绪(DSR)

7

请求发送(RTS)

8

清除发送

9

振铃指示

表1芯串行接口引脚含义表

图7芯串行接口排列图MAX232芯片引脚图

在MCU中,若用RS-232C总线进行串行通信,则需要外接电路实现电平转换。

在发送端需要用驱动电路将TTL电平转换成RS-232C电平,在接收端需要用接收电路将RS-232C电平转换成TTL电平。

电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。

该系统使用MAX232芯片,该芯片使用单一+5V电源供电实现电平转换。

图给出了MAX232的引脚。

MAX232芯片引脚含义说明如下:

•VCC(16脚):

正电源端,一般接+5V

•GND(15脚):

•VS+(2脚):

VS+=2VCC-1.5V

•VS-(6脚):

VS-=-2VCC-1.5V

•C2+、C2-(4、5脚):

一般接1μF的电解电容

•C1+、C1-(1、3脚):

一般接1μF的电解电容

输入输出引脚分两组,基本含义见表2。

在实际使用时,若只需要一路SCI,可以使用起中的任何一组。

组别

TTL电平引脚

方向

典型接口

RS-232电平引脚

方向

典型接口

1

11

12

输入

输出

接MCU的TxD

接MCU的RxD

13

14

输入

输出

连接到接口与其他设备通过RS-232相接

2

10

9

输入

输出

接MCU的TxD

接MCU的RxD

8

7

输入

输出

连接到接口与其他设备通过RS-232相接

表2MAX232芯片I/O引脚分类与基本接法

2.6.3串口通信的主要功能

接收时,把外部单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转为单线输出。

图8给出了普遍意义上的SCI的编程模型。

在比特寄存器中可设置比特率,在控制寄存器中设置通信格式、是否效验、是否中断等。

SCI数据寄存器既做接收数据寄存器,也可做发送数据寄存器,这并不冲突,因为发送与接收的实际工作是通过“发送移位寄存器”和“接收移位寄存器”完成。

 

图9为串口通信模块,该模块包括:

单字节接收、多字节接收、单字节发送、多字节发送等子程序。

 

图9串口通信

第三章系统软

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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