⑴ 如何学好单片机
1、熟悉单片机的原理,结构;
2、学好数电,模电,为设计电路打好基础;
3、熟练使用C语言,多学习别人的程序;
4、对操作系统原理有一定的了解;
5、Protel至少要有点基础;
6、要实际动手调试电路的能力。
学习单片机的步骤
当前的单片机种类很多,但是 51 是最基础的,因此单片机的学习最好也是从 51 开始,不仅容易上手,而且相当实用。然而 51 单片机毕竟过于基础,后来的很多单片机在功能上都有很大的扩展,因此按照我们实验室多数人的路线接下来大多数人会学习 AVR 单片机, AVR 单片机在功能上较 51 有很大提升,集成了 A/D 、快速 PWM 等很多实用的功能,而且和很多大型的单片机在功能上有很多类似之处,因此如果以后还想掌握其他单片机 AVR 无疑是一个很好的跳板。
学习的过程
学习单片机最终要的是当然是练,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一种说法称之为先实践后理论的学习方法。
因此我的观点如下,单片机的硬件结构首先要有一个基本的了解,最起码要知道各引脚的功能、区别,能自己动手搭一个单片机的最小系统,然后就可以直接从程序入手,程序最好还是用 C 语言编程,从简单的跑马灯做起,逐渐深入,陆续可以做一些数码管、液晶、 DS1302 、 DS18B20 等电子元器件的应用,在深入就可以结合一些具体实例扩展一些中断、串口通讯等功能。还有一点要声明的是单片机里用到的 C 语言其实很有限,课堂上学习 C++ 的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉的自己的 C 语言基础不是很好而对单片机望而止步!
学习的工具
软件方面方面, 51 单片机用的是 KEIL 软件,这个软件在学校图书馆软件下载和其他网站上都有,具体用法自己查找相关资料, AVR 的软件就比较多了,我用的是 CVAVR ,另外还有 ICCAVR 等多款编译软件,这要看个人喜好了,建议有了一定的 51 基础再学。另外就是烧写软件,烧写软件的作用就是将编译器生成的 HEX 文件烧写至单片机里,这要配合下载线实用,如果有并口的话最好用并口下载线,软件最好用广州双龙的 SLISP 软件,如果是笔记本没有并口的话则要自己买一个下载器了,名称为 USBASP ,网上电子市场有卖 20 块钱左右,软件会随光盘自带。
硬件方面,首先是要有单片机,对于单片机有一点要注意, 51 单片机最好买 89S51 、 89S52 这两种型号,上面我所说的烧写程序是 ISP 方式,这两种单片机支持 ISP 下载,所以如果买其他型号的烧写程序可能会不太方便, AVR 单片机常用的就是 ATmega16L 其它型号的区别也不是很大,甚至有些兼容。至于单片机开发板,目前的价格都很贵,从一百到几百不等,不过像上次学校里广告的那个六十多块钱的最好还是免了,没什么作用。能买一块当然好,没有的话也不要紧,自己动手买个电路板搭一下也很方便,引出 ISP 接口,烧写程序十分容易,然后将 I/O 口引出扩展也很方便。
学习单片机的其它几个注意点:
1 .理论与实践并重
对一个初学单片机的人来说,如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,也许用不了几天就会觉得枯燥乏味以致半途而废。所以学习与实践结合是一个好方法,边学习、边演练,循序渐进,这样用不了几次就能将所用到的指令理解、吃透、扎根于脑海,甚至 “ 根深蒂固 ” 。也就是说,当你学习完几条指令后 ( 一次数量不求多,只求懂 ) ,接下去就该做实验了,通过实验,使你感受到刚才的指令产生的控制效果,眼睛看得见 ( 灯光 ) 、耳朵听得到 ( 声音 ) ,更能深刻理解指令是怎样转化成信号去实现控制的,通过实验看到自己所学的成果不仅有一种成就感也能提升你对单片机的兴趣。说句实在话,单片机与其说是学出来的,还不如说是做实验练出来的,何况做实验本身也是一种学习过程。因此边学边练的学习方法,效果特别好。
2 .合理安排时间持之以恒
学习单片机不能 “ 三天打鱼、两天晒网 ” ,要有持之以恒的毅力与决 4 心。学习完几条指令后,就应及时做实验,融汇贯通,而不要等几天或几个星期之后再做实验,这样效果不好甚至前学后忘。另外要有打 “ 持久战 ” 的心理准备,不要兴趣来时学上几天,无兴趣时凉上几星期。学习单片机很重要的一点就是持之以恒。
3 .遇到问题耐心检查
单片机有软硬件两方面的内容,有时一个程序怎么调都不出效果,然而从理论分析却又是对的,这是就要仔细找原因了,学习单片机经常碰到很多问题,有时一两天都不能解决,这是就要有耐心,从底层找起,相信每找出一个错误都会有一个新的收获。切不可轻言放弃!!!
4 .对只短暂学过一遍的知识,充其量只比浮光掠影稍好。因此,较好的方法是过一段时间后 (1-2 个月 ) 再重新学一遍,学过的知识要经常运用,这样反复循环几次就能彻底弄懂消化,永不忘却。
5 .要进行适当投资购买实验器材及书籍资料
单片机技术含金量高,一旦学会后,给你带来的效益当然也高,无论是应聘求职还是自起炉灶开厂办公司,其前景都光明无限。因此在学习时要舍得适当投资购买必要的学习、实验器材。另外还要经常去科技图书店看看,购买一些适合自己学习、提高的书籍。一本好的书籍真的很重要,可以随时翻阅,随时补充不懂或遗忘的知识。
学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。
第一步:数字I/O的使用
使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。
定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。
第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。
中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。
以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。
第四步:与PC机进行RS232通信
单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。
USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!
第五步:学会A/D转换
MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。
使用A/D转换功能的简单的例子是设计一个电压表。
第六步:学会PCI、I2C接口和液晶显示器接口
这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。
第七步:学会比较、捕捉、PWM功能
这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。
如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。
第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。
到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了
⑵ 单片机原理及应用技术的目录
第1章 概述
第2章 单片机的硬件结构
2.1 MCS-51系列单片机内部结构
2.2 中央处理单元
2.3 存储器结构
2.3.1 程序存储器
2.3.2 数据存储器
2.4 I/O端口
2.4.1 端口结构
2.4.2 端口功能
2.4.3 端口输入/输出方式
2.5 MCS-51系列单片机外部引脚
2.6 时钟电路和时序
2.6.1 振荡器和时钟电路
2.6.2 CPU时序
2.6.3 MCS-51访问外部存储器的时序
2.7 复位
2.7.1 复位信号和复位操作
2.7.2 复位电路
2.8 低功耗运行方式
习题
第3章 MCS-51单片机指令系统及程序设计
3.1 指令系统简介
3.1.1 指令格式
3.1.2 指令的分类
3.1.3 伪指令
3.2 MCS-51的寻址方式
3.3 数据传送指令
3.4 算术运算指令、逻辑运算指令和移位指令
3.4.1 MCS-51算术运算指令
3.4.2 MCS-51逻辑运算及移位指令
3.5 控制转移指令和布尔变量操作指令
3.5.1 MCS-51控制转移指令
3.5.2 MCS-51位操作指令
3.6 汇编语言程序设计
3.6.1 汇编语言概述
3.6.2 汇编语言程序设计与汇编
3.6.3 程序设计方法与举例
习题
第4章 单片机内部功能
4.1 MCS-51单片机中断功能
4.1.1 中断的概念
4.1.2 中断的控制与管理
4.1.3 中断的应用实例
4.2 MCS-51单片机定时器/计数器功能
4.2.1 定时器/计数器工作模式
4.2.2 定时器/计数器的控制与管理
4.2.3 定时器/计数器的应用实例
4.3 MCS-51单片机串行通信功能
4.3.1 串行通信的基本概念
4.3.2 MCS-51单片机串行接口的工作方式及控制
4.3.3 串行通信的应用实例
习题
第5章 单片机系统扩展
5.1 单片机的最小系统
5.2 单片机系统的扩展结构
5.3 程序存储器的扩展与应用
5.3.1 EPROM程序存储器的扩展设计
5.3.2 E2PROM程序存储器的扩展设计
5.4 数据存储器的扩展与应用
5.4.1 数据存储器的扩展方法
5.4.2 静态RAM6116数据存储器的扩展
5.5 I/O的扩展与应用
5.5.1 并行口的扩展原理
5.5.2 并行口的扩展方法
5.5.3 串行口的扩展方法
5.5.4 用串行口扩展并行I/O口
习题
第6章 I/O设备及接口技术
6.1 键盘及其接口
6.1.1 独立式键盘接口原理及应用
6.1.2 矩阵式键盘接口原理及应用
6.1.3 键盘的特殊扩展方式
6.2 显示及其接口
6.2.1 LED数码管及接口
6.2.2 LCD液晶显示器及接口
6.3 可编程键盘、显示器接口电路ZLG7290B
6.4 MCS-51单片机与A/D、D/A转换器的接口及应用
6.4.1 MCS-51单片机与A/D转换器的接口及应用
6.4.2 MCS-51单片机与D/A转换器的接口及应用
6.5 MCS-51单片机与串行总线接口技术及应用
6.5.1 MCS-51单片机与I2C总线接口及应用
6.5.2 MCS-51单片机与SPI总线接口及应用
习题
第7章 单片机应用系统设计实例
7.1 单片机应用系统的结构及设计过程
7.1.1 单片机应用系统设计的基本要求
7.1.2 硬件设计
7.1.3 软件设计
7.2 单片机应用系统的抗干扰技术
7.2.1 干扰源
7.2.2 硬件抗干扰方法
7.2.3 软件抗干扰方法
7.3 单片机室内检测控制系统
7.3.1 设计思想
7.3.2 系统设计
7.3.3 软件设计
7.4 自行车里程/速度计
7.4.1 系统设计及硬件设计
7.4.2 软件设计
7.5 防盗报警系统
7.5.1 系统组成原理
7.5.2 硬件设计
7.5.3 软件设计
习题
第8章 单片机新技术
8.1 新型流行单片机简介
8.1.1 Philips公司的P89LPC900系列单片机
8.1.2 TI公司高精度A/D接口单片机MSCl210
8.1.3 C8051F02X系列高速混合信号ISP单片机
8.1.4 嵌入式高速可编程系统器件:ItPSD3200系列单片机
8.1.5 高性能SoCAC84X系列单片机
8.1.6 MSP430系列的16位单片机
8.1.7 凌阳16位单片机
8.2 单片机SOC(片上系统)及开发技术
8.2.1 片上系统简介
8.2.2 S0C单片机的开发过程
8.2.3 开发工具和开发环境
8.3 嵌入式操作系统与单片机开发
8.3.1 嵌入式操作系统简介
8.3.2 典型嵌入式实时操作系统简介
8.3.3 嵌入式系统开发平台
习题
附录A 单片机实验
实验1 仿真环境的使用
实验2 运算类程序实验
实验3 找最大数与最小数
实验4 按键实验.
实验5 8路拨动开关的实验
实验6 定时器的使用
实验7 外部中断应用
实验8 简单的I/O口扩展实验
实验9 8255接口扩展
实验10 定时器/计数器实验
实验11 D/A转换器DAC0832的应用
实验12 A/D转换器ADC0809的应用
实验13 串行口扩展实验
实验14 串并转换实验
附录B ASCII(美国标准信息交换码)
附录C MCS-51指令表(A):
附录D MCS-51指令表(B)
⑶ 求单片机msp430x14x config.h头文件
config.h 430单片机头文件代码最后的复制代码保存到电脑的方式实现下载:
/********************************************************************
//msp430单片机最小系统板外部资源配置文件Config.h
//包含板载各个资源的硬件配置,如果用户使用过程中,对应的硬件发生了更改,可利用该头文件更改使用
//SD/MMC卡初始化硬件配置未包含
//调试环境:EW430 V5.30
//时间:2014.03.01
********************************************************************/
//延时函数,IAR自带,经常使用到
#define CPU_F ((double)8000000) //外部高频晶振8MHZ
//#define CPU_F ((double)32768) //外部低频晶振32.768KHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
//自定义数据结构,方便使用
#define uchar unsigned char
#define uintunsigned int
#define ulong unsigned long
//8个LED灯,连接在P6口,可通过断开电源停止使用,ADC使用时断开电源
#define LED8DIR P6DIR
#define LED8 P6OUT //P6口接LED灯,8个
//4个独立按键连接在P10~P13
#define KeyPort P1IN //独立键盘接在P10~P13
//串口波特率计算,当BRCLK=CPU_F时用下面的公式可以计算,否则要根据设置加入分频系数
#define baud 9600 //设置波特率的大小
#define baud_setting (uint)((ulong)CPU_F/((ulong)baud))//波特率计算公式
#define baud_h (uchar)(baud_setting>>8) //提取高位
#define baud_l (uchar)(baud_setting) //低位
//RS485控制管脚,CTR用于控制RS485处于收或者发状态
#define RS485_CTR1 P5OUT |= BIT2; //控制线置高,RS485发送状态
#define RS485_CTR0 P5OUT &= ~BIT2; //控制线置低,RS485接收状态
//2.8寸TFT彩屏显示控制相关硬件配置
#define RS_CLR P5OUT &= ~BIT5 //RS置低
#define RS_SET P5OUT |=BIT5 //RS置高
#define RW_CLR P5OUT &= ~BIT6 //RW置低
#define RW_SET P5OUT |=BIT6 //RW置高
#define RD_CLR P5OUT &= ~BIT7 //E置低
#define RD_SET P5OUT |=BIT7 //E置高
#define CS_CLR P5OUT &= ~BIT0 //CS置低
#define CS_SET P5OUT |=BIT0 //CS置高
#define RST_CLR P5OUT &= ~BIT3 //RST置低
#define RST_SET P5OUT |=BIT3 //RST置高
#define LE_CLR P5OUT &= ~BIT1 //LE置低
#define LE_SET P5OUT |=BIT1 //LE置高
//2.8寸TFT彩屏触摸屏控制相关硬件配置
#define PEN_CLR P2OUT &= ~BIT0 //PEN置低,触碰触摸屏时,Penirq引脚由未触摸时的高电平变为低电平
#define PEN_SET P2OUT |=BIT0 //PEN置高
#define PEN (P2IN & 0x01) //P2.0输入的值
#define TPDO_CLR P2OUT &= ~BIT1 //TPDO置低
#define TPDO_SET P2OUT |=BIT1 //TPDO置高
#define TPDOUT ((P2IN>>1)&0x01) //P2.1输入的值
#define BUSY_CLR P2OUT &= ~BIT3 //BUSY置低
#define BUSY_SET P2OUT |=BIT3 //BUSY置高
#define TPDI_CLR P2OUT &= ~BIT4 //TPDI置低
#define TPDI_SET P2OUT |=BIT4 //TPDI置高
#define TPCS_CLR P2OUT &= ~BIT5 //TPCS置低
#define TPCS_SET P2OUT |=BIT5 //TPCS置高
#define TPCLK_CLR P2OUT &= ~BIT6 //TPCLK置低
#define TPCLK_SET P2OUT |=BIT6 //TPCLK置高
//彩屏/12864液晶/1602液晶的数据口,三液晶共用
#define DataDIR P4DIR //数据口方向
#define DataPort P4OUT //P4口为数据口
//12864/1602液晶控制管脚
#define RS_CLR P5OUT &= ~BIT5 //RS置低
#define RS_SET P5OUT |=BIT5 //RS置高
#define RW_CLR P5OUT &= ~BIT6 //RW置低
#define RW_SET P5OUT |=BIT6 //RW置高
#define EN_CLR P5OUT &= ~BIT7 //E置低
#define EN_SET P5OUT |=BIT7 //E置高
#define PSB_CLR P5OUT &= ~BIT0 //PSB置低,串口方式
#define PSB_SET P5OUT |=BIT0 //PSB置高,并口方式
#define RST_CLR P5OUT &= ~BIT1 //RST置低
#define RST_SET P5OUT |= BIT1 //RST置高
//12864应用指令集
#define CLEAR_SCREEN 0x01 //清屏指令:清屏且AC值为00H
#define AC_INIT0x02 //将AC设置为00H。且游标移到原点位置
#define CURSE_ADD 0x06 //设定游标移到方向及图像整体移动方向(默认游标右移,图像整体不动)
#define FUN_MODE 0x30 //工作模式:8位基本指令集
#define DISPLAY_ON 0x0c //显示开,显示游标,且游标位置反白
#define DISPLAY_OFF 0x08 //显示关
#define CURSE_DIR 0x14 //游标向右移动:AC=AC+1
#define SET_CG_AC 0x40 //设置AC,范围为:00H~3FH
#define SET_DD_AC 0x80 //设置DDRAM AC
#define FUN_MODEK 0x36 //工作模式:8位扩展指令集
//颜色代码,TFT显示用
#define White 0xFFFF //显示颜色代码
#define Black 0x0000
#define Blue 0x001F
#define Blue2 0x051F
#define Red 0xF800
#define Magenta 0xF81F
#define Green 0x07E0
#define Cyan 0x7FFF
#define Yellow 0xFFE0
//NRF2401模块控制线
#defineRF24L01_CE_0 P1OUT &=~BIT5 //CE在P15
#defineRF24L01_CE_1 P1OUT |= BIT5
#defineRF24L01_CSN_0 P2OUT &=~BIT7 //CS在P27
#defineRF24L01_CSN_1 P2OUT |= BIT7
#defineRF24L01_SCK_0 P3OUT &=~BIT3 //SCK在P33
#defineRF24L01_SCK_1 P3OUT |= BIT3
#defineRF24L01_MISO_0 P3OUT &=~BIT2 //MISO在P32
#defineRF24L01_MISO_1 P3OUT |= BIT2
#defineRF24L01_MOSI_0 P3OUT &=~BIT1 //MOSI在P31
#defineRF24L01_MOSI_1 P3OUT |= BIT1
#defineRF24L01_IRQ_0 P1OUT &=~BIT4 //IRQ在P14
#defineRF24L01_IRQ_1 P1OUT |= BIT4
//DS18B20控制脚,单脚控制
#define DQ_IN P1DIR &= ~BIT7 //设置输入,DS18B20接单片机P53口
#define DQ_OUT P1DIR |= BIT7 //设置输出
#define DQ_CLR P1OUT &= ~BIT7 //置低电平
#define DQ_SET P1OUT |= BIT7 //置高电平
#define DQ_R P1IN & BIT7 //读电平
//红外接收头H1838控制脚,单脚控制
#define RED_IN P1DIR &= ~BIT6 //设置输入,红外接收头接单片机PE3口
#define RED_OUT P1DIR |=BIT6 //设置输出
#define RED_L P1OUT &= ~BIT6 //置低电平
#define RED_H P1OUT |= BIT6 //置高电平
#define RED_R (P1IN & BIT6) //读电平
//***********************************************************************
// 系统时钟初始化,外部8M晶振
//***********************************************************************
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT2振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清楚振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待
IFG1&=~OFIFG;
}
//***********************************************************************
// 系统时钟初始化,内部RC晶振
//***********************************************************************
void Clock_Init_Inc()
{
uchar i;
// DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO
// BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
DCOCTL = 0x60 + 0x00; //DCO约3MHZ,3030KHZ
BCSCTL1 = DIVA_0 + 0x07;
BCSCTL2 = SELM_2 + DIVM_0 + SELS + DIVS_0;
}
//***********************************************************************
// 系统时钟初始化,外部32.768K晶振
//***********************************************************************
void Clock_Init_Ex32768()
{
uchar i;
BCSCTL2|=SELM1 + SELM0 + SELS; //MCLK为32.768KHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清楚振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待
IFG1&=~OFIFG;
}
//***********************************************************************
// MSP430内部看门狗初始化
//***********************************************************************
void WDT_Init()
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
}