电子系统设计基础讲义打印稿091003.docx
- 文档编号:28182410
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:76
- 大小:947.80KB
电子系统设计基础讲义打印稿091003.docx
《电子系统设计基础讲义打印稿091003.docx》由会员分享,可在线阅读,更多相关《电子系统设计基础讲义打印稿091003.docx(76页珍藏版)》请在冰豆网上搜索。
电子系统设计基础讲义打印稿091003
电子系统设计基础:
24学时,1.5学分,公共选修课。
主要内容:
以MSP430系列单片机为核心,构成小电子系统的应用实例。
学习要点:
1)MSP430微控制器(MCU)芯片含有的功能;2)如何通过C430语言使用这些功能(专用控制字和外引脚);3)编写的C430程序如何下载到芯片中实时调试、运行。
第一讲MSP430单片机简介
1.MSP430系列单片机的特点
MSP430系列单片机是德州仪器公司于上世纪九十年代开发出的产品,已在许多领域得到了广泛应用。
MSP430系列单片机具有以下主要特点:
1)超低功耗。
2)强大的处理能力。
3)高性能模拟技术及丰富的片上外围模块。
4)方便高效的开发环境。
5)系列化产品。
MSP430系列单片机的各系列产品型号、研发顺序如图1-1所示。
图1-1MSP430系列单片机各系列产品
2.MSP430F413单片机结构概述
MSP430F413单片机结构框图如图1-2所示,外型如图1-3所示。
其结构特点如下:
1)16位CPU通过总线连接到存储器和外围模块。
2)直接嵌入仿真处理,具有JTAG接口。
MSP430F413系列单片机包含以下主要功能部件:
1)CPU:
MSP430系列单片机的CPU和通用微处理器基本相同,只是在设计上采用了面向控制的结构和指令系统。
具有较高的执行速度和效率,增强了MSP430的实时处理能力。
功能:
(1)内部:
执行指令译码、数据处理;
(2)外部:
通过三总线(地址总线、数据总线和命令总线)控制片内外设模块。
2)存储器:
存储程序、数据以及外围模块的运行控制信息。
分为程序存储器和数据存储器。
MSP430F413的F是指该单片机采用FLASH型程序存储器。
图1-2MSP430F413单片机结构框图
图1-3MSP430X413系列单片机外形图
3)外围模块(片内外设):
经过地址总线(AB)、数据总线(DB)、中断服务及请求线与CPU相连。
MSP430F413单片机包含的外围模块有:
时钟模块、看门狗模块、定时器A、比较器A、液晶驱动器输入输出端口、基本定时器器等。
MSP430F413各引脚定义如表1-1所示。
表1-1MSP430F413引脚定义
引脚名称
编号
I/O
描述
AVCC
64
模拟正电源端,向电压检测电路,晶体振荡电路,所频环电路,比较器A,端口1,以及液晶分压电阻网络供电,上电不必早于DVCC。
AVSS
62
内部连接于DVSS。
DVCC
1
数字正电源端,提供所有部件电源(由AVCC供电的除外)。
DVSS
63
数字地,所有部件的接地端(由AVCC/AVSS供电的除外)。
NC
7、10、11
空脚
P1.0/TA0
53
I/O
通用数字I/O;定时器_A,捕获方式:
CCIOA输入;比较方式:
OUT0输出。
P1.1/TA0/MCLK
52
I/O
通用数字I/O;定时器_A,捕获方式:
CCIOB输入;MCLK输出。
注意:
在这个引脚上TA0只能输入。
P1.2/TA1
51
I/O
通用数字I/O;定时器_A,捕获方式:
CCI1A输入;比较方式:
OUT1输出。
P1.3/SVSOut
50
I/O
通用数字I/O;SVS:
SVS比较输出端。
P1.4
49
I/O
通用数字I/O。
P1.5/TACLK/ACLK
48
I/O
通用数字I/O;定时器_A输入时钟;ACLK输出。
P1.6/CA0
47
I/O
通用数字I/O;比较器_A输入端。
P1.7/CA1
46
I/O
通用数字I/O;比较器_A输入端。
P2.0/TA2
45
I/O
通用数字I/O;定时器_A,捕获方式:
CCI2A输入;比较方式:
OUT2输出。
P2.1
44
I/O
通用数字I/O。
P2.2/S23
35
I/O
通用数字I/O;LCD段23输出端(见注1)。
P2.3/S22
34
I/O
通用数字I/O;LCD段22输出端(见注1)。
P2.4/S21
33
I/O
通用数字I/O;LCD段21输出端(见注1)。
P2.5/S20
32
I/O
通用数字I/O;LCD段20输出端(见注1)。
P2.6/CAOUT/S19
31
I/O
通用数字I/O;比较器A输出端;LCD段19输出端(见注1)。
P2.7/S18
30
I/O
通用数字I/O;LCD段18输出端(见注1)。
P3.0/S17
29
I/O
通用数字I/O;LCD段17输出端(见注1)。
P3.1/S16
28
I/O
通用数字I/O;LCD段16输出端(见注1)。
P3.2/S15
27
I/O
通用数字I/O;LCD段15输出端(见注1)。
P3.3/S14
26
I/O
通用数字I/O;LCD段14输出端(见注1)。
P3.4/S13
25
I/O
通用数字I/O;LCD段13输出端(见注1)。
P3.5/S12
24
I/O
通用数字I/O;LCD段12输出端(见注1)。
P3.6/S11
23
I/O
通用数字I/O;LCD段11输出端(见注1)。
P3.7/S10
22
I/O
通用数字I/O;LCD段10输出端(见注1)。
P4.0/S9
21
I/O
通用数字I/O;LCD段9输出端(见注1)。
P4.1/S8
20
I/O
通用数字I/O;LCD段8输出端(见注1)。
P4.2/S7
19
I/O
通用数字I/O;LCD段7输出端(见注1)。
P4.3/S6
18
I/O
通用数字I/O;LCD段6输出端(见注1)。
P4.4/S5
17
I/O
通用数字I/O;LCD段5输出端(见注1)。
P4.5/S4
16
I/O
通用数字I/O;LCD段4输出端(见注1)。
P4.6/S3
15
I/O
通用数字I/O;LCD段3输出端(见注1)。
P4.7/S2
14
I/O
通用数字I/O;LCD段2输出端(见注1)。
P5.0/S1
13
I/O
通用数字I/O;LCD段1输出端(见注1)。
P5.1/S0
12
I/O
通用数字I/O;LCD段0输出端(见注1)。
COM0
36
O
LCD公共输出端COM0
P5.2/COM1
37
I/O
通用数字I/O;LCD公共输出端COM1。
P5.3/COM2
38
I/O
通用数字I/O;LCD公共输出端COM2。
P5.4/COM3
39
I/O
通用数字I/O;LCD公共输出端COM3。
R03
40
I
LCD模拟电平第四极输入端。
P5.5/R13
41
I/O
通用数字I/O;LCD模拟电平第三极输入端。
P5.6/R23
42
I/O
通用数字I/O;LCD模拟电平第二极输入端。
P5.7/R33
43
I/O
通用数字I/O;LCD模拟电平第一极输入端。
P6.0
59
I/O
通用数字I/O。
P6.1
60
I/O
通用数字I/O。
P6.2
61
I/O
通用数字I/O。
P6.3
2
I/O
通用数字I/O。
P6.4
3
I/O
通用数字I/O。
P6.5
4
I/O
通用数字I/O。
P6.6
5
I/O
通用数字I/O。
P6.7
6
I/O
通用数字I/O。
RES/NMI
58
I
抚慰输入或非屏蔽中断输入端。
TCK
57
I
测试时钟端。
TCK是芯片编程和测试的时钟输入端。
TDI
55
I
测试数据输入端。
TDI用作数据输入,芯片的保护熔丝与TDI相连。
TDO/TDI
54
I/O
测试数据输出端,TDO/TDI用作数据输出或编程数据输入端。
TMS
56
I
测试模式选择端。
TMS在芯片编程和测试时是输入端。
XIN
8
I
基本振荡器XT1输入端。
可以连接标准晶体或晶体振荡器。
XOUT/TCLK
9
I/O
晶体振荡器XT1输出端或测试时钟输入端。
注1:
当LCD模块控制位置位,不需要PxSEL位设置,LCD功能自动被选择。
3.低功耗结构
MSP430有5种省电工作模式,MSP430各工作模式耗电情况如图1-4所示。
图1-4各工作模式耗电情况图图1-5缩短活动时间减小功耗示意图
在通常情况下,根据需要使用软件将CPU设定到某一种低功耗工作模式下,在需要时使用中断将CPU从休眠状态中唤醒,完成工作之后又可以进入相应的休眠状态,用缩短活动时间的方法进一步减小MSP430的功耗,如图1-5所示。
4.PIO端口
PIO端口是并行输入输出端口,8位。
MSP430单片机PIO端口特点:
1)类型丰富:
P1,P2,P3,P4,P5,P6,S和COM。
2)功能丰富:
I/O,中断能力,其它片内外设功能,驱动液晶。
3)寄存器丰富:
P1与P2各有7个寄存器,P3、P4、P5、P6有四个寄存器。
具有中断功能的数据输入、输出端口P1和P2各寄存器符号和功能如下所述(以P1口为例):
1)P1IN:
输入寄存器;2)P1OUT:
输出寄存器;3)P1DIR:
方向选择寄存器,为1位输出,为0位输入;4)P1IFG:
中断标志寄存器;5)P1IES:
中断触发沿选择寄存器;6)P1IE:
中断使能寄存器;7)P1SEL:
功能选择寄存器。
不有中断功能的数据输入、输出端口P3、P4、P5和P6各寄存器符号和功能如下所述(以P3口为例):
1)P3IN:
输入寄存器;2)P3OUT:
输出寄存器;3)P3DIR:
方向选择寄存器;4)P3SEL:
功能选择寄存器。
5.程序设计及下载举例
例1.1利用32768Hz基本时钟、看门狗定时器和P5.1端口,控制发光二级管(LED)每秒闪烁2次,电路图如图1-6所示。
图1-6P5.1端口驱动发光二极管
程序清单如下:
#include
voidmain(void)//主程序
{//初始化程序
WDTCTL=WDT_ADLY_250;//基本时钟驱动看门狗定时器(WDT)250ms中断
IE1|=WDTIE;//使能WDT中断
FLL_CTL0|=XCAP14PF;//设置时钟电容
P5DIR|=0x02;//设置P5.1为输出端口
_EINT();//使能单片机中断,初始化结束
for(;;)//主循环程序
{
_BIS_SR(LPM3_bits);//进入低功耗模式3(LPM3)
_NOP();//空操作,为开发软件设断点用
}
}
interrupt[WDT_VECTOR]voidwatchdog_timer(void)//WDT中断入口
{
P5OUT^=0x02;//异或P5.1端口状态
}
第二讲时钟小系统设计
1.时钟小系统硬件设计
MSP430F413单片机构成的时钟小系统电路如图2-1所示。
图2-1时钟小系统电路
复位电路:
低电平复位,高电平启动正常工作。
时钟电路:
32768Hz晶振提供辅助时钟脉冲,DCO片内数控振荡器产生32×32768=1.048MHz主时钟、副时钟。
LCD七段码显示电路:
三个电阻串联分压构成阶梯电压发生电路,供四个COM使用。
使一条段线S驱动四个段码,两条段线驱动一位七段显示器,二十条段线驱动十个七段显示器。
2.程序流程图(框图)设计
MSP430F413单片机构成的时钟小系统程序流程如图2-2所示。
图2-2时钟小系统程序流程
3.程序设计
程序设计要注意与硬件电路关系:
1)控制字与使用模块对应;
2)模块的定义符号与芯片引脚对应;
3)芯片引脚与外接电路对应。
MSP430F413单片机构成的时钟小系统程序清单如下:
/***************************************************
*文件名称:
MSP413C语言定时程序
*文件说明:
用MSP413看门狗定时器作为定时中断源。
***************************************************/
#include
/*****************************************************
*文件说明:
LCD模块
*****************************************************/
#defineLCD_IN_USE10
/******************************************************
*数据定义七段译码表
*****************************************************/
constunsignedcharNUM_LCD[17]={
0xd7,0x06,0xe3,0xa7,0x36,//'0'~'4'
0xb5,0xf5,0x07,0xf7,0xb7,//'5'~'9'
0x77,0xf4,0xd1,0xe6,0xf1,//'A'~'E'
0x71,0x00};//'F','全熄'
unsignedcharlcd_Buf[LCD_IN_USE];//自定义显示缓冲区,用于要显示的数据
unsignedintcont,y0,y1,y2;//秒、时、分存储变量
/*******************************************************
*LCD模块初始化
*******************************************************/
voidinit_LCD(void)
{
chartmpv;
BTCTL=BT_fLCD_DIV32;//setLCD时钟
P5SEL=0xfc;//置为外围模块
LCDCTL=LCDON+LCD4MUX+LCDP1;//4Mux模式
for(tmpv=0;tmpv<10;tmpv++)
{
LCDMEM[tmpv]=0x00;//clearLCD
}
}
/*******************************************************
*LCD清零模块
*******************************************************/
voidcl_LCD(void)
{
chartmpv;
for(tmpv=0;tmpv<10;tmpv++)
{
LCDMEM[tmpv]=0x00;//clearLCD
}
}
/****************************************************
*更新LCD缓冲区的内容,把数据显示到LCD
****************************************************/
voidlcd_Display(void)
{
chartmpv;
lcd_Buf[0]=y2/10;
lcd_Buf[1]=y2%10;
lcd_Buf[2]=16;
lcd_Buf[3]=y1/10;
lcd_Buf[4]=y1%10;
lcd_Buf[5]=16;
lcd_Buf[6]=y0/10;
lcd_Buf[7]=y0%10;
lcd_Buf[8]=16;
lcd_Buf[9]=16;
for(tmpv=0;tmpv { LCDMEM[tmpv]=NUM_LCD[lcd_Buf[tmpv]];//更新LCDMEM中的内容 } } /*********************************************************** *WDT中断服务程序 ************************************************************/ interrupt[WDT_VECTOR]voidwatchdog_timer(void) { cont=cont+1; if(cont==4) { cont=0; y0=y0+1;//秒加1 if(y0==60) { y0=0; y1=y1+1;//60秒为1分,分加1 if(y1==60) { y1=0; y2=y2+1;//60分为1小时,小时加1 if(y2==24) {y2=0;//24小时再清零 } } } cl_LCD(); lcd_Display(); _NOP(); } } /*********************************************************** *主程序 ************************************************************/ voidmain(void) { WDTCTL=WDT_ADLY_250;//WDT间隔时间为250ms(ACLK) IE1|=WDTIE;//使能WDT中断 SCFQCTL|=SCFQ_4M;//设定TA时钟为4MHz init_LCD(); _EINT();//使能中断 cont=0; y0=0; y1=0; y2=0; for(;;) { _BIS_SR(CPUOFF);//关CPU _NOP();//C-spy使用 } } 4.看门狗定时器模块使用说明 顾名思义,看门狗电路设计的本意是在软件程序执行过程中,若发生程序跑飞故障,则电路强行使软件重新启动,恢复正常工作状态。 随着器件质量的提高,此类故障发生机率极小。 因此,在MSP430单片机中又赋予了该电路第二种功能,即定时器功能。 由于看门狗电路中断优先权高,并默认在启动状态,在编程时应先确定其工作模式。 看门狗定时器的使用是通过设定看门狗定时器控制寄存器WDTCTL的控制字来完成。 WDT由辅助时钟fACLK驱动(其频率为32KHz)、作为定时器时,控制字符号及含义如下: 1)WDT_ADLY_1000: 1000ms间隔; 2)WDT_ADLY_250: 250ms间隔; 3)WDT_ADLY_16: 16ms间隔; 4)WDT_ADLY_1_9: 1.9ms间隔。 第三讲带设置按键的时钟系统设计 带设置按键的时钟系统如图3-1所示。 要求通过按键SW1-SW4设定时钟的时、分和秒初始值。 图3-1带按键时钟系统电路图 1.液晶驱动模块使用说明 液晶段码显示器(又称为LCD)作为低功耗显示器件广泛应用各类仪器、仪表当中。 由于液晶显示机理是吸光型,各段需加交流电压驱动,使得驱动电路复杂。 为了简化外围电路,MSP430F4x系列单片机片内包含了液晶驱动模块。 该模块的特点如下: (1)具有显示缓存器。 (2)所需的SEG、COM信号自动产生、多种扫描频率。 (3)段输出端口可以切换为通常输出端口。 (4)用ACLK经BasicTimer产生LCD所需频率信号。 使用MSP430F4x驱动LCD时,采用最多的是4MUX模式。 4MUX模式是指LCD带有4条COM线,一条“段线”可驱动4段液晶。 4MUX驱动七段码COM与段线连接图如图3-2所示。 图3-2COM与段线连接图 图3-3缓存器和段、COMx对应关系图3-4MSP430F413单片机显示电路 液晶显示缓存器各个位与液晶的段一一对应,液晶显示缓存器和段、COMx对应关系如图3-3所示。 存储位为“1”位显示对应的液晶段,存储位为“0”位液晶段不显示。 段、COMx输出控制能够自动从显示缓存器读取数据,送出相应信号到液晶玻璃片上。 因为不同器件驱动液晶的段数不同,所以液晶显示缓存器的数量也不一样。 数量越大,驱动能力越强,显示的内容就越多。 MSP430F4x驱动液晶显示时,必须与液晶模拟电压多路器配合使用,在电压多路器4个输入端R33、R23、R13、R03上产生、输入阶梯电压。 注意: MSP430F4x芯片R03引脚必须接于GND。 MSP430F413单片机的COM端与液晶显示器的COM连接方法及液晶模拟电压多路器外接分压电阻电路图如图3-4所示。 2.液晶驱动译码表设计 按所给电路设计液晶显示驱动程序时要注意以下几个问题: 1)各LCD显示存储单元位与单片机段线、COM线的对应关系,如图3-5所示。 图3-5显示存储单元位与单片机段线、COM线的对应关系 2)单片机段线、COM线与LCD显示屏段线、COM线的连接关系,如图3-1带按键时钟系统电路图所示。 注意LCD显示屏1脚接MSP430F413段线S0,LCD2脚结S1,以此类推。 3)LCD显示屏段线、COM线与显示数字位和七段码的对应关系,如图3-5所示。 4)LCD生产厂给出的LCD显示屏说明图如图3-6所示。 图3-5LCD显示屏说明图 将图3-6和图3-5比对,可设计出单片机驱动显示的七段译码表,如表3-1所示。 将译码表中的七段码按表中的先后顺序,存入单片机常量数组中。 译码时,以要显示的十六进制数为索引,查表后的到相应的七段码,送到显示存储单元。 LCDMEM[0]对应最左侧数字(最高位)编程时要注意存储单元序号与位置的关系。 译码表中设置的第十七个码是全熄码,使显示器的对应位什么都不显示。 将此码送入各个显示存储单元即完成整个显示器清屏。 若要显示小数点位(包括所对应的汉字),将对应存储单元的相应位(bit3)置1即可。 表3-1 显示十六进制数字 LCD偶数段线 COM3 D段 LCD偶数段线 COM2 E段 LCD偶数段线 COM1 G段 LCD偶数段线 COM0 F段 LCD奇数段线 COM3 小数点 LCD奇数段线 COM2 C段 LCD奇数段线 COM1 B段 LCD奇数段线 COM0 A段 七段码 0 1 1 0 1 0 1 1 1 d7H 1 0 0 0 0 0 1 1 0 06H 2 1 1 1 0 0 0 1 1 e3H 3 1 0 1 0 0 1 1 1 a7H 4 0 0 1 1 0 1 1 0 36H 5 1 0 1 1 0 1 0 1 b5H 6 1 1 1 1 0 1 0 1 f5H 7 0 0 0 0 0 1 1 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 系统 设计 基础 讲义 打印 091003