MSP430初学者教程(最详细)

合集下载

自学MSP430

自学MSP430

???表示还没搞清楚的问题!!!!补充说明及纠正0.0 程序设计第一步:设置看门狗。

0.1 _EINT()在上电复位后是关闭的,如果程序中有中断程序,则要记得打开此开关。

1 写寄存器时左为高右为低在硬件仿真时下载完程序后先按目标的复位键再查看软件中存储器上的值才有效一条完整的指令包括了操作码和操作数,有的指令只有源操作数有的指令只包括目的操作数,有的源操作数就在操作码中(常数发生器产生的数)仿真指令中操作码和内核指令是一样的不同的是寻址位和状态寄存器的选择。

2 _EINT是第二个允许中断开关,只有在这之前允许了中断才有效否则就算打开此开关也不会允许中断的3 MSP430的复位信号有2种:上电复位信号(POR)、上电清除信号(PUC)。

还有能够触发POR和PUC的信号:5种来自看门狗,1种来自复位管脚,1种来自写FLASH键值出现错误所产生的信号。

POR信号只在2种情况下发生:(1)微处理上电;(2)RST/NMI管脚上产生低电平时系统复位。

PUC信号产生的条件:(1)POR信号产生;(2)看门狗有效时,看门狗定时器溢出;(3)写看门狗定时器安全键值出现错误;(4)写FLASH存储器安全键值出现错误。

POR和PUC两者的关系:POR信号的产生会导致系统复位并产生PUC信号。

而PUC信号不会引起POR信号的产生。

无论是POR信号还是PUC信号触发的复位,都会使MSP430从地址0xFFFE处读取复位中断向量,程序从中断向量所指的地址处开始执行。

触发PUC信号的条件中,除了POR产生触发PUC信号外,其他的都可以通过读取相应的中断向量来判断是何种原因引起的PUC信号,以便作出相应的处理。

系统复位(指POR)后的状态为:(1)RST/NMI管脚功能被设置为复位功能;(2)所有I/O管脚被设置为输入;(3)外围模块被初始化,其寄存器值为相关手册上的默认值;(4)状态寄存器SR复位;(5)看门狗激活,进入工作模式;(6)程序计数器PC载入0xFFFE处的地址,微处理器从此地址开始执行程序。

MSP430单片机入门例程

MSP430单片机入门例程

MSP430单片机入门例程MSP430单片机是一款低功耗、高性能的16位单片机,广泛应用于各种嵌入式系统。

下面是一个简单的MSP430单片机入门例程,可以让大家初步了解MSP430单片机的基本使用方法。

所需材料:1、MSP430单片机开发板2、MSP430单片机编译器3、MSP430单片机调试器4、电脑和相关软件步骤:1、安装MSP430单片机编译器首先需要安装MSP430单片机的编译器,该编译器可以将C语言代码编译成MSP430单片机可以执行的机器码。

在安装编译器时,需要选择与您的单片机型号匹配的编译器。

2、编写程序下面是一个简单的MSP430单片机程序,可以让LED灯闪烁:c本文include <msp430.h>int main(void)本文P1DIR |= 0x01; //设置P1.0为输出while(1){P1OUT ^= 0x01; //反转P1.0的状态,LED闪烁__delay_cycles(); //延时一段时间,控制闪烁频率}本文上述程序中,首先定义了P1DIR寄存器,将P1.0设置为输出。

然后进入一个无限循环,在循环中反转P1.0的状态,使LED闪烁。

使用__delay_cycles()函数实现延时,控制LED闪烁频率。

3、编译程序使用MSP430单片机编译器将程序编译成机器码,生成可执行文件。

在编译时,需要注意选择正确的编译器选项和单片机型号。

4、调试程序使用MSP430单片机调试器将可执行文件下载到单片机中,并使用调试器进行调试。

在调试时,可以观察单片机的输出口状态和LED灯的闪烁情况,确保程序正常运行。

随着嵌入式系统的发展,MSP430单片机作为一种低功耗、高性能的微控制器,在各种应用领域中得到了广泛的应用。

为了更好地理解和应用MSP430单片机,我在学习过程中积累了一些经验,现在分享给大家。

MSP430单片机是一种超低功耗的微控制器,由德州仪器(Texas Instruments)推出。

1_第1章 MSP430单片机入门基础

1_第1章 MSP430单片机入门基础

• 在EW430调试状态下,View 菜单里面提供了功能丰富的 查看功能(见图1.2.6): • 1)在线查看变量。 2)通过菜单View->Watch打开观察窗。 3)通过菜单View->Register 打开寄存器窗。 4)通过菜单View->Disassembly打开反汇编窗。 5)通过菜单View->Call Stack打开调用关系窗。 6)通过菜单View->Stack打开堆栈窗。 7)通过菜单View->Memory打开内存窗。
1.3 MSP430单片机C语言基础
1.3.1 1.3.2 1.3.3 变量 数学运算 位操作
1.3.4 1.3.5 1.3.6
1.3.7
寄存器操作 中断 内部函数
库函数
1.3.1 变量
图1.3.1 C语言、编译器和机器码之间的关系
1.3.1 变量
表1.3.1 C430中变量类型
1.3.2 数学运算
1.6.4 1.6.5 1.6.6
风格一致性 注释 宏定义
1.6.1 变量命名规则
变量名尽量使用具有说明性的名称,避免使用a、 b、c、x、y、z等无意义字符。使用范围大的变 量,如全局变量,更应该有一个说明性的名称。 变量名尽量使用名词,长度控制在1~4个单词 最佳。
1.6.2 函数命名规则
和变量一样,函数名称也应具有说明性。函数 名应使用动词或具有动作性的名字,后面可以 跟名词说明操作对象。
MSP430单片机的CPU没有乘法、除法指令,乘 除操作会被编译器转换成移位和加法来实现。 如果乘除的数值刚好是2的幂,可以用移位直接 替代乘除法,运算速度会提高很多。
1.3.3 位操作
位操作指令大部分存在于早期速度不高的CISC处 理器上(以8051为代表),以提高执行效率,弥补 CPU运算速度的不足。目前几乎所有的RISC型处 理器都取消了位操作指令,MSP430单片机也不 例外。

MSP430初学必备课件

MSP430初学必备课件

MSP430系列单片机特点
超低功耗 强大的处理能力 高性能模拟技术及丰富的片上外围模块 系统工作稳定 方便高效的开发环境
MSP430系列单片机命名规则
第一章习题
微处理器的发展方向是什么? 单片机的概念是什么? 单片机和我们通常所用的微型计算机有什么区别 和联系? 单片机常见的领用领域有哪些? 如何理解MSP430系列单片机的“单片”解决能 力? MSP430系列单片机最显著特性是什么? 如何理解MSP430系列单片机的低功耗特性? 为什么MSP430系列单片机特别适用于电池供电
根据实际连接情况,确定ACLK、 SMCLK和MCLK时钟源。
ACLK: LFTX1 (32768) MCLK: DCOCLK或者LFTX1
ACLK: 0 MCLK: DCOCLK SMCLK: DCOCLK
ACLK: LFTX1 (高频模式) MCLK: DCOCLK或者LFTX1(高频模式) SMCLK: DCOCLK或者LFTX1(高频模式)
将不用的FETI输入端连接到VSS JTAG端口TMS、TCK和TDI不要连接到VSS CMOS输入端不能有浮空节点,将所有输入端接适当的电平 不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自 动关机
设计外设时的常规原则:
超低功耗嵌入式实时时钟
MSP430X11X系列
MSP430X12X系列
MSP430X13X系列
MSP430X14X系列
MSP430F15X/F16(1)X 系列
MSP430F15X/F16(1)X 系列
MSP430X41X系列
MSP430F43X系列
MSP430F44X系列
MSP430 CPU的主要特征

MSP430单片机入门基础例程1

MSP430单片机入门基础例程1

作者:DC 微控技术论坛原创 MSP430单片机入门基础例程若想了解MSP430单片机常用模块应用原理,请下载<<MSP430F常用模块应用原理>>/datasheet/msp430/msp430base/MSP430register_guide.pdf由于IO应用原理比较简单,所以我主要以MC430F14开发板的实例来讲解。

新手用户可以参与其应用思路。

计划推出几个有价值的参考例程:[1]直接IO按键检测处理程序(非低功耗方式)[2]IO口中断演示程序[3]利用IO中断方式实现按键检测程序(低功耗方式)实验制作如下图,新手用户轻松地在MC430F14开发板上实现。

例程[1]://MSP430F14-直接IO口按键检处理程序/*************************************************************************///以下是结合MC430F14开发板来实现的按键检处理程序实验.//分别使用了采个三个按键接到MSP430的通用IO口,按任意一个按键可以使板上的LED反转.//例程中,按键采用不断查询方式,以得到键值.并没有使用到低功耗.此程序结构比较适合//用在非手持设备或非电池供电的设计中.此程序结构比较通用,级用户可参与或套用修改. //应用目标板: MC430F14开发板/*************************************************************************/#include <msp430x14x.h>//初级用户要习惯采用宏定义,以方便的编写和修改#define keyio 0xf8 //定义按键IO口,Px0-Px2 IO口.#define key_1 0xfe //定义返回键值1#define key_2 0xfd //定义返回键值2#define key_3 0xfb //定义返回键值3//声明子程序unsigned char key_chcek(void);void display_update(unsigned char dta);void key_process_0(void);void key_process_1(void);void key_process_2(void);//*************************************************************************//将单片机初始化程序放在main()前面是方便查看单片机的初始化状态情况.void MCU_int(void){//默认MCLK主时钟频率为DCO=~800KP1OUT |= BIT1; //设置LED,上电为灭.电路可以查看MC430F14电路图.P1DIR |= BIT1; //P1.1设置为输出.//MSP430单片机IO口上电默认方向为输入,所以接按键的IO无需再设为输入.}//************************************************************************* void main (void){ unsigned char key_value; //定义键值全局变是WDTCTL = WDTPW + WDTHOLD; //关狗MCU_int(); //初始化单片机while(1) //主程序主循环{key_value=key_chcek(); //检测,有键按下并松开,返回一个键值.switch (key_value) //对键值进行处理.采switch语法结构查询{case key_1: key_process_0(); //调用键处理程序1break;case key_2: key_process_1(); //调用键处理程序2break;case key_3: key_process_2(); //调用键处理程序2break;default: ; //调用键处理程序4break;}display_update(key_value); //如果有需要可以在这里加上显示更新程序.key_value=0x00; //最后清除键值.将继续主循环.}}//*************************************************************************//按键检测程序//返回值: 无符号字符型键值unsigned char key_chcek(void){unsigned int i;unsigned char timp,active;active=0;while(!active){while(0xff ==( P2IN | keyio)); //一直等待有键按下timp = P2IN | 0xf8; //若有键接下了,则读入IO状态.for(i=0;i<7000;i++); //延时,是为了去按键抖动.if (timp ==(P2IN | 0xf8)) //经延时后,还是那键吗?{ active = 1; //是,则按键有效.while(0xff !=( P2IN | keyio)); //一直等待按键松开}else{ //去按键抖动后读入的键值与之前不同.则先效. active = 0; //再循环检测.}}return timp; //返回一个键值.}//************************************************************************* void key_process_0(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//*************************************************************************void key_process_1(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//************************************************************************* void key_process_2(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//************************************************************************* void display_update(unsigned char dta){; //用户可以根据需要来放置显示程序,如LCD,LED,Digital-LED....//灵活应用,}//************************************************************************* 例程[2]://MSP430F14-IO口中断演示程序/*************************************************************************/ //以下是结合MC430F14开发板来实现的按键检处理程序实验.//设置P2.0为中断口,通过对IO的下边沿触发,使其中断,并将板上的D2 LED取反. //应用目标板: MC430F14开发板/*************************************************************************/ #include <msp430x14x.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // 停止看门狗P1DIR |= BIT1; // 设P1.1为输出P2IE |= BIT0; // P2.0中断使能P2IES |= BIT0; // P2.0 IO口边沿中断触发模式,下边沿有效 P2IFG &= ~BIT0; // P2.0 清IO中断标志位_EINT(); //开总中断允许LPM4; //进入低功耗模式4,此时单片机功耗最低.}//************************************************************************* // P2口中断服务程序#pragma vector=PORT2_VECTOR__interrupt void Port_2(void){P1OUT ^= BIT1; // P1.1取反P2IFG &= ~0x01; // P2.0清除相应中断标志位}//************************************************************************* //使IO中断时新手们要了解以下几点://1- MSP430的IO中,只有P1,P2才有IO中断功能.//2- P1,P2每组IO是多源中断源,P1IG0-P1IG7或P2IG0-P2IG7是共一个中断源的,用户可以//通过查房方式来得到是那个IO产生了中断.//3- 改变P1IES或P2IES中的位可能会引起相应中断标志位置位,与引脚电平有关.// PxIES.x PxIN.x PxIFG.x// 0->1 0 不变// 0->1 1 可能置位// 1->0 0 可能置位// 1->0 1 不变//所以,改变P1IES或P2IES后,根据需要清除相关的PxIG.x位.//4- PxIFG.x所有中断标志位在置位后是需要人为清除的.硬件不会自动清除该标位.DC,2007-01-27 02:47:12例程[3]://MSP430F14-利用IO中断方式实现按键检测程序/*************************************************************************///以下是结合MC430F14开发板来实现的按键检处理程序实验.//分别使用了采个三个按键接到MSP430的通用IO口,按任意一个按键可以使板上的LED反转.//例程中,单片机一直处于最低功耗状态,用户可以通过按下按键后唤醒单片机.单片机唤醒//后再进行去抖动动作.同时执行键处理程序.处理完后再次进入LPM4低功耗模式.//在本程序中用户可以灵活地修改程序来实现你相关的功能.//本程序适用在手持设备或电池供电的设计中.此程序结构比较通用,级用户可参与或套用修改.//应用目标板: MC430F14开发板/*************************************************************************/#include <msp430x14x.h>#define key1 0x01#define key2 0x02#define key3 0x04#define delay_small 200#define key_1 0xfe //定义返回键值1#define key_2 0xfd //定义返回键值2#define key_3 0xfb //定义返回键值3void key_process_0(void);void key_process_1(void);void key_process_2(void);void key_check (void);unsigned char key_value; //定义键值全局变是//************************************************************************* void main(void){WDTCTL = WDTPW + WDTHOLD; // 停止看门狗P1OUT |= BIT1; //关LEDP1DIR |= BIT1; // 设置P1.1为输出//以下设置是采用不同的编写方式,新手可以参考使用P2IE |= BIT0+BIT1+BIT2; // P2.0-P2.2 IO口中断使能P2IES |= 0x07; // P2.0-P2.2 IO口边沿触发中断方式设置 P2IFG &= ~(key1+key2+key3); // P2.0-P2.2 IO口中断标志位清除_EINT(); //中断允许// 或直接写成 _BIS_SR(LPM4_bits + GIE);LPM4; // 进入低功耗LPM4,此时单片机功耗最低while(1){P2IE &= ~(BIT0+BIT1+BIT2); // P2.0-P2.2 IO口关闭中断允许P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除key_check ();switch (key_value) //对键值进行处理.采switch语法结构查询 {case key_1: key_process_0(); //调用键处理程序1break;case key_2: key_process_1(); //调用键处理程序2break;case key_3: key_process_2(); //调用键处理程序2break;default: break;}key_value=0x00; //键值清除P2IE |= BIT0+BIT1+BIT2; // P2.0-P2.2 IO口中断使能P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除LPM4;}}//************************************************************************* //P2中断服务程序#pragma vector=PORT2_VECTOR__interrupt void Port_2(void){switch (P2IFG){case 0x01: key_value=0xfe;break;case 0x02: key_value=0xfd;break;case 0x04: key_value=0xfb;break;default: P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除break;}P2IFG &= ~0x07; // P2.0-P2.2 IO口中断标志位清除LPM4_EXIT;}//************************************************************************* void key_process_0(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//************************************************************************* void key_process_1(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//************************************************************************* void key_process_2(void) //值处理,用户可以自己修改...{P1OUT ^= BIT1;}//************************************************************************** void key_check (void){ unsigned int i;for(i=0;i<delay_small;i++); //延时去抖动if(0xff !=(P2IN & 0xf8)) //是否有键存在?{while(0xff !=( P2IN | 0xf8)); //一直等待按键松开}elsekey_value = 0x00; //延时去抖动无键按下,则清除键变量.}//**************************************************************************//如果在按键电路中加RC滤波电路,实现按键去抖动的效果会更显著此.DC,2007-01-30 00:37:31已更新!jdgxcu,2007-02-04 22:03:10顶,对初学很实用,不知怎么加入RC去抖DC,2007-02-04 22:39:45按键与IO之间加一个RC电路:IO口与按键之前加一个电阻,在IO口那端并一个电容下地。

MSP430入门详细讲解不错的入手机会

MSP430入门详细讲解不错的入手机会

引脚使用举例
控制连接在P5.1口线的发光二极管的亮与熄: 首先、 P51为输出 亮 输出1 熄灭 输出0 ---P5DIR =0x0 2; ---P5OUT = 2 ; ---P5OUT = 0 ;
南京航空航天大学电子中心&TI南航430联合实验室
如何让发光二级管闪烁?
1、亮 2、延时1秒钟 3 3、熄灭 4、延时1秒钟 5、跳转到 步骤1 (演示)
串行密码锁设计
按照顺序:KEY0-KEY1-KEY2 ; KEY1-KEY0-KEY2 ; K0-K0-K0-K1-K2-K0-K2 ; K2-K2-K0-K1-K2 ; 错误状态的清除 很重要!!
南京航空航天大学电子中心&TI南航430联合实验室
如何让单片机发声?
声音是什么? ——声音是震动产生的; 扬声器发声的原理:处在磁场中的有电 流的线圈产生震动,继而发声。 不同的频率产生不同的声音; MSP430的端口可以输出不同的频率; 继而可以推动扬声器产生不同的声音。 下页的程序将发出什么声音呢?
指针类型 18E-38— 39E+38 18E-38— 39E+38 浮点类型
表达式语句(结构) 表达式语句(结构)
条件语句 开关语句 循环语句 返回语句
南京航空航天大学电子中心&TI南航430联合实验室
条件语句
语句表达形式有3种(a、b、c): a if(条件表达式) 语句 b if(条件表达式) 语句1 else 语句2 c if(条件表达式) 语句1 else if(条件表达式) 语句2 else if(条件表达式) 语句3 ……
第二段程序
void s1(void) { for(ff=30;ff<500;ff++) { P6OUT ^= BIT0; // 对输出置反 for(tmp=0;tmp<ff;tmp++); // 延时 } }

MSP430F149 学习板使用说明

MSP430F149 学习板使用说明

MSP430F149 开发板使用说明2009年09月第一章新手入门1.1 MSP430F149 学习板特点:选用16 位超低功耗单片机MSP430F149,采用子母双板分离设计,MCU 子板与集成外设母板通过插针座连接,使用灵活方便。

ØMCU 的全部IO都用插针引出,便于二次开发提供电源指示灯和上电自动复位、手动复位电路。

2、蜂鸣器实验(1)蜂鸣器1:单频音(步进变音调)(2)蜂鸣器2:奏乐(祝你平安)3、数码管实验(1)数码管1(显示0123)(2)数码管2(动态显示0~F)4、4×1 独立按键实验(1)键盘1:扫描数码管显示5、1602 液晶实验(1)1602 液晶1:动态字符显示(2)1602 液晶2:静态字符显示(3)1602 液晶3:内部时钟显示6、RS232 接口实验(1)RS232 接口1:MCU 发送数据PC 机显示(2)RS232 接口2:按键控制MCU 发送数据PC 机显示(3)RS232 接口3:PC 机发送数据MCU 液晶显示(4)RS232 接口4:MCU 回发接收到的PC 机数据7、RS485 接口实验(1)RS485 接口1:发送程序8、PS2 接口实验(1)PS2 接口1:PS2 控制1602 显示9、12-Bit 高精度温度传感器实验(1)温度传感器1:DS18B20 在液晶显示10、RTC 实时时钟实验(1)实时时钟1:DS1302 测试(2)实时时钟2:DS1302 电子钟11、2k Bit EEPROM 实验(1)EEPROM1:AT24C02 测试(2)EEPROM2:读出数据通过串口在PC 机显示12、12-Bit 模数转换器(ADC)接口实验(1)模数转换器2:ADC 在1602 液晶在显示(2)模数转换器3:ADC 通过串口在PC 机显示13、12864 液晶实验(与12864 液晶配套)(1)12864 液晶并口1:字符显示(2)12864 液晶并口2:汉字显示(3)12864 液晶并口3:图形显示(4)12864 液晶并口4:综合演示(5)12864 液晶串口5:字符显示(6)12864 液晶串口6:汉字显示(7)12864 液晶串口7:图形显示(8)12864 液晶串口8:综合演示14、HS0038红外接口实验(1)红外遥控解码实验,在数码管上显示三、开发板综合程序1、温度时间综合实验(1)DS18B20 + DS1302 + 16022、SSCOM综合实验(1)PC发送接收字符第三章板上资源详解本章详细介绍了MSP430F149 学习板上各个功能模块的硬件电路原理、使用方法和注意事项,使用前请仔细阅读。

新手如何入门MSP430

新手如何入门MSP430
[2]搞清楚TA、CCR1、CCR2与CCR0之间的中断向量关系。
[3]综合上面的理解,建议结合TimerA的例程来进行相关验证,只有通过亲自的操作才能有效地记住。
学习进阶:
如利用TimerA实现PWM信号输出、利用捕获/比较功能实现捕获信号等等。
【结束语】
非常新手只要经过上述四个单元有条理地认真学习的话,我相信基本对MSP430单片机入门已有一定感性认识了。有了这些基础,接下要继续学习其他相关的模块应用也不难了。只要你了解到尽多模块中,在你的实际中不一定能用上;就算用上了这些模块也未必能全部应用他的全部功能。那么你可以 按需而用,需要的你就要去理解他和应用他。不必要的可以暂时放下。
在上面的过程中,就是熟悉和撑握这些模块的过程。在这个“学”和“练”的过程中很多都是靠你个人的。当你请教前辈时,人家只会告诉你一些参考思路或方向;往往里面的内容都要自己亲身去验证的。学习当中会往往存在着很“乐事”和“苦事”,相信很多成功的工程师们都会有这样的体会。
当然,我们很欢迎将你的“学、练”过程中的苦与乐与我们在微控论坛中分享。
【WDT看门狗定时器】
很有趣,相信新手们会看到很例程中开头都有“WDTCTL = WDTPW + WDTHOLD;”语句。这是CUP执行关闭定时器的意思。在这里我建议非常新手暂时不要去理会这个定时器应用。在刚入门阶段,建议跳过这章节。此时你只要大概地知道他的作用就好了。看门狗定时器一般是用于防止程序失效而存在的,一般是用于完整的程序中使用。主程序中可不断地清除看门狗定时器的计数值,以防定时器的值自动计满后使CPU复位而重新开始工作。当程序发生错误时,无法正常清除看门狗的定时值时则看门狗定时器计数溢出而产生CUP复位。对于看门狗定时器的使用,建议在应用进阶阶段中学习。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何学习
学习就是迎接挑战、解决困难的过程,没有挑战,就没有人生的乐趣。

下面以系列为例,解释一下学习的过程。

(1)获取资料
购买有关书籍,并到杭州利尔达公司网站和TI网站获取资料,例如,在网上可以找到FET 使用指导、F1xx系列、F4xx系列的使用说明和具体芯片的数据说明,可以找到FET的、实验板、知识等大量的实际应用参考电路,当然有些资料是英文的,看懂英文资料是个挑战,学会4、6级英语就是为看资料的。

英语难学,但是看资料容易,只要下决心,看完一本资料,就可以看懂所有的相关资料。

(2)购买FET和实验电路板
如果经济条件不错,可以直接购买。

(3)自制FET和实验电路板
自制仿真器FET,首先要到网上找到FET,然后就可以使用画电路板软件画电路图和电路板图,这又是个挑战。

FET电常简单,但要把它制作出来还是需要下一番工夫的,找一本有关书,然后练习画,画完后,就学习认识,再购买元件,这时就可以画电路板图了,一旦画好,将形成的PCB文件交给公司,10天后,就可以得到电路板,焊上元件和电缆,等实验电路板做好后,就可以与实验电路板一起调试了。

自制实验电路板,需要单片机芯片内部工作原理的知识、封装知识,清楚的知道每一个的功能,还需要、按钮、、三端、、散热器、、普通电容、电阻、等元件的知识,对于初学者,可以做一个只有3个、8个按钮、8个的简单实验板,这样的实验板,虽然简单,但足可以帮助初学者入门单片机。

自制实验电路板与自制FET一样,首先画电路图,然后买元件,再画电路板。

由于系列芯片是扁平封装,焊接起来有一定难度,这好象是个挑战,但实际上很简单,方法如下:首先在焊盘上涂上,在未干的情况下,将芯片放在焊盘上,注意芯片第一的位置,并使与焊盘对齐,将擦干净的(不能有任何)接触引脚,引脚只要一热,焊盘上的就自动将引脚焊住了,千万注意上不能有,焊接时最好配备一个。

焊接电路板时,每一个元件都要核对参数,可以用万用表测量的元件一定要测量。

(4)从网上获得IA
到利尔达公司或的网站下载IA,并安装到计算机上。

(5)调试FET和实验板
将FET的一端与PC机的相连,另一端连接实验板的,上电后,检查FET芯片、实验板上的单片机芯片是否发热(用),PC机是否工作正常后,运行IA,找个C语言或的例子,编译成功后下载到单片机中,如果能够下载,说明一切成功。

否则还需要仔细研究,一般情况下,只要电路板上的电路正确,元件参数准确,没有不成功的。

(6)分步骤学习单片机
学习使用单片机就是理解单片机硬件结构,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。

第一步:数字I/O的使用
使用按钮输入信号,显示,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发亮,这就是中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。

每使用单片机的一个功能,就要对控制该功能的进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

第二步:的使用
学会的使用,就可以用单片机实现,的功能是强大的,在工业、家用的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯不灭,当按钮按下时间超过2s,则灯灭。

可以实现,(PLD)可以实现电路,(PLC)也可以实现电路,但是只有单片机实现起来最简单,成本最低。

的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的。

要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返行正常的程序。

中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。

中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。

以上三步学会,就相当于武功,会了三掌了,可以勉强护身。

第四步:与PC机进行RS232通信
单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。

,USART 接口不能直接与PC机的连接,它们之间的不同,需要使用一个MAX3232芯片进行转换。

USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。

正确使用USART接口,需要学习,PC机的编程等等知识。

试想,上的数据显示在PC机上,而PC机的键盘信号可以在上得到显示,将是多么有意思的事情啊!
第五步:学会A/D转换
MAP430单片机带有多通道12位,通过这些可以使单片机操作,显示和检测电压、电流等信号。

学习时注意模拟地与数字地、、,,转换误差等概念。

使用A/D转换功能的简单的例子是设计一个。

第六步:学会PCI、I2和液晶显示器接口
这些接口的使用可以使单片机更容易连接,在扩展单片机功能方面非常重要。

第七步:学会比较、捕捉、PWM功能
这些功能可以使单片机能够,检测转速信号,实现电机等控制起功能。

如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招,可以出手攻击了。

第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与
学习USB接口、TCP/IP接口、各种工业总线的硬件与是非常重要的,因为这是当前的发展方向。

,相当于学会15招,但还不到打遍的境界。

即使如此,也算是单片机了。

顺便说一句,的技术支持是非常好的,负责任的会在关键时候,挺身而出,使你。

6. 达到理想境界
达到理想境界是困难的,在知识爆炸的年代里,即使天天学习,也很难跟上的发展,更何况每天还要为找工作、提职称、写论文、搞、习、买房、购车、柴、米、油、盐、酱、醋、茶等忙活,那么,还需要学习吗回答是肯定的,人就是为兴趣而活,爱好单片机才能学会单片机,不为什么目的,只为学习的乐趣,当然要是兴趣也能赚钱,则是一举两得。

学会使用单片机其实是学会了使用工具,充其量是个、锔碗的。

如果再要进步,就需要在信号识别、、理论、等方面下工夫,只有这样,才能开发出高水平、、具有的产品,达到熟练运用降龙十八掌,打遍的至高境界。

单片机是DSP、等高级硬件的基础。

如果想要进一步的发展,必须学会单片机的开发。

如果在学会单片机的基础之上,学会CPLD和FPGA的开发以及硬件描述语言,就可以在高速产品的开发方面获得一杯羹。

相关文档
最新文档