2010-07-17 14:58:00 feiyinzilgd 阅读数 3542
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

一、MSP430单片机的端口概述

P1~P6每组有8个I/O 口,P3,P4,P5,P6具有I/O,及其它片内外设功能,每组具有4个寄存器。P1,P2除具有上述功能外还具有中断能力,每组具有7个寄存器。

 

二、PX端口

1. P1,P2端口

(1)PxDIR 输入/输出方向寄存器(x代表1,2)

相互独立的八位分别定义了Px7~Px0,8个引脚的输入输出方向。

0 输入模式,只能读。

1 输出模式,可读可写。

8为在PUC后都被复位及置为0.

Eg:P1DIR=0X0F;

这里0X0F为16进制表示,对应的二进制为00001111,即将P1DIR的高4位置0,低4位置1,也就是将P1.7,P1.6,P1.5,P1.4(P1的高4位)设置为输入模式将P1.3,P1.2,P1.1,P1.0(P1的低4位)设置为输出模式。

(2)PxIN 输入寄存器

每一位对应一个输入端口,如:第2位对应Px.2,记录着对应位输入的数据,0还是1.输入寄存器是只读寄存器,用户不能对它写入,只能从中读数据。

eg:

char a;

a=P1IN;

将P1输入的数据赋给a,也可以读取其中的一位或若干位。

eg: if((P1IN&0X01)==1) a=b;

这句话的意思是如果P1IN得最低位为1,即P1.0输入的是1,就将b赋给a;其中’&’意思是按位求与运算,即将P1IN中的8位数据和0x01按位求与运算。

(3)PxOUT输出寄存器

该寄存器为I/O端口的输出缓冲寄存器,每一位对应一个输出端口,如:第2位对应Px.2。用户向对应位写入数据,则对应的端口就会输出对应的数据。

eg:

P1OUT=0X01;

将P1OUT的最低位置1,其它位置0,即P1.7, P1.6 P1.5 P1.4 P1.3 P1.2 P1.1输出0, P1.0输出1;

P1OUT=BIT0;

通过查阅MSP430单片机的头文件我们可以知道BIT0就是0x01,说以这句话和上一句是等价的,之所以这样写,是为了使程序更易懂,更简洁。

(4)PxIFG中断标志寄存器

0 表示没有中断请求

1 表示有中断请求

中断标志PxIFG.0~ PxIFG.7共用一个中断向量,属于多源中断。当对应的I/O口有上升沿或下降沿出现时,对应的标志位会置位,如果中断允许而且系统总中断允许,则产生中断,并执行中断处理程序。

注意:1. PxIFG.0~ PxIFG.7被置位后,不会自动复位。必须用软件判定哪一个I/O有中断事件产生,并将相应的标志位复位。

2.外部中断事件的事件必须保持不低于1.5倍的MCLK 时间,以保证中断请求被接受,且使相应的中断标志置位。

(5)PxIE中断使能寄存器

0 禁止中断

1 允许中断

只有跳变才能引起中断请求,而静电平不能

(6)PxIES中断触发沿选择寄存器

0 上升沿使相应标志位置位

1 下降沿使相应标志位置位

(7)PxSEL功能选择寄存器

0 选择引脚为I/O功能

1 选择引脚为外围模块功能

单片机内还有丰富的外围模块,这些模块通常也需要和外界进行通信,但是单片机的引脚有限,故采用P1和P2引脚复用的方法来实现。

Eg:

P5SEL |= 0x10; // P5.4 用作MCLK输出

2. 端口P3,P4,P5,P6

(1)端口P3,P4,P5,P6除没有中断能力外,其余功能和P1,P2相同,包括输入输出功能和外围模块功能。

(2)由于端口P3,P4,P5,P6没有中断能力,所以它们没有和中断相关的寄存器,每组端口有4个寄存器分别为:PxDIR 输入/输出方向寄存器,PxIN 输入寄存器,PxOUT输入寄存器,PxSEL功能选择寄存器。

三、端口COM和S

用来实现与液晶的直接接口,只有MSP430F4XX系列的单片机才有。

2016-05-26 21:06:19 baiyang139 阅读数 1994
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

生活中我们经常会犯眼高手低的毛病,很多东西看着别人弄很容易,但轮到自己的时候就会发现其实没有想象中的简单。学完51单片机时,我以为小小的单片机无非就是进行一些IO口的控制罢了,但今天在进行AVR系列单片机学习的时候,才发现原来单片机还有很多的不同,自己原来掌握的东西还远远不足,所以无论到什么时候只有虚心学习,不断努力才能真正的掌握一门技术,学习的过程也是自己人格丰富的过程。下面来说说对EEPROM学习的一些感受。

AVR单片机内部已集成了512kb的EEPROM,对EEPROM的操作比51单片机相对简单一些。写EEPROM操作:

操作:

主函数将记录打开开发板的次数,将开机数送EEPROM保存,开机后使用LED显示开发板的启动次数。

书写主函数时出现了一些错误:

由于变量i,每次启动时不能记录上一次的数据,导致写入EEPROM中的数据错误,最终导致程序错误,因此不能随便修改程序执行顺序。所有问题调试通过后,下载到开发板运行时,发现开发板根本就不会执行程序,很奇怪。咨询厂家客服后,给出的建议是设置程序的优化度,于是将优化度设置为2后程序运行正常。

2017-11-01 16:21:22 wzz110011 阅读数 1754
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

在学习MSP430单片机的时候,经常会遇到一个问题,那就是单片机上电复位以后它到底是什么样的状态?因为它功能复杂,且资源丰富,IO管脚很多,时钟和低功耗模式配置灵活,那么上电后它们处于什么样的状态?

对于电子开发的工程师而言,芯片手册是最好的文档,而且要学会阅读英文的手册,以下我就通过TI公司的用户指南帮助大家一步一步缕清楚,上电复位。


首先我们要了解430单片机的复位包括POR(power on reset)系统上电复位和PUC(power up clear)上电清除,总的来说poc信号更广泛,暂且不深入讨论,我们只要知道上电后会触发POC和PUC即可。那么POR信号会使系统做什么呢?

请看下图:


打对勾的三条很重要,它的IO管脚会配置为输入模式,状态寄存器会清零,而且看门狗定时器会工作。

这告诉我们,如果要使用IO口做输出,那么需要进行配置。而且要关闭看门狗定时器才能防止溢出复位。

Status register is reset是说状态寄存器SR全部清零,这句话包含了很多信息,我们可以再看一下,SP寄存器的各个位的含义:


SR寄存器是一个16位的寄存器,与我们相关的几位在图中打钩了,其它的位只需要在用汇编语言的时候用。

SCG0和SCG1都为0表示主时钟MSCK和子系统时钟SMCLK都是默认打开的,OSCOFF=0表示外部的低频晶体振荡器也是默认打开的,也就是我们常说的32768手表晶体。

GIE是总中断使能位,如果我们需要使用外部中断就需要将这一位置1,它有点类似51单片机的EA。

到此为止,我们就已经了解整个复位的情况。

2013-09-24 19:54:56 xiaocaohuyang 阅读数 1981
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

MSP430单片机外部中断

小小总结,完全原创。欢迎转载!请注明出处。技术交流QQ1626092784

视频教程地址:http://www.youku.com/playlist_show/id_20133778.html

相关的源程序、视频教程、电路图、开发软件打包下载:http://pan.baidu.com/share/link?shareid=1516264396&uk=471316729

 

MSP430F149的外部中断资源丰富,P1口和P2口共16个IO口都可以作为外部中断源。我们着重讲怎么用。

要想让一个IO口作为外部中断的中断源必须有三个设置。第一,必须将该IO口的方向设置为输入;第二,选择外部中断的触发方式,即选择是上升沿触发还是下降沿触发;第三,使能该IO口的中断。

比如,如果我们想设置P1.0口作为外部中断源就可以这样设置:

P1DIR&= ~BIT0;//方向设置为输入

 P1IES |= BIT0;//触发方式设置

P1IE |=BIT0;//使能中断

其中触发方式设置中0为上升沿触发、1为下降沿触发。设置完成之后就可以使用P1.0端口的下降沿或者上升沿触发的外部中断了。

需要特别说明的是如果在一个设计程序中如果用到了中断,那么在使用中断之前必须使能总中断。IARfor430环境下的使能总中断的语句是:_EINT(); 就像我们如果想开A、B、C三个灯,我们除了需要把A、B、C三个灯的开关打开之外还需要把总电源开关打开,不然的话灯还是不会亮的。相应的关闭总中断的语句是:_DINT(); 

       具体的应用例程请观看我的视频教程。网址:

2017-10-17 13:27:08 u013963632 阅读数 8332
  • 单片机控制第一个外设-LED灯-第1季第6部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第1季第6个课程,主要讲解LED的工作原理和开发板原理图、实践编程等,通过学习目的是让大家学会给单片机编程控制LED灯,并且为进一步学习其他外设打好基础。

    4002 人正在学习 去看看 朱有鹏

总述: 8STC15系列单片机相比于89系列内部资源获得了极大地丰富. 它内部有5个16位可重载初值的定时器T0~T4, 注意可重载, 89系列可重载的只有8位, 16位必须在中断中重载一次. 不仅如此它还有4个全双工一步串行口, 自带8通道高速10位ADC, 8路PWM(带死区), 6通道15位专用高精度PWM等等.

拿到芯片必须从它的引脚学起, 实质就是通过IO口接触片内的寄存器了 . 我的是PDIP-40封装的.
一. 引脚功能
1>P0口:
P0.0~P0.7可做普通IO
* P0.0和P0.1可以分配给串行口3的RxD3和TxD3
* P0.2和P0.3可以配置为串行口4的RxD4和TxD4
* P0.4和P0.5可以配置为定时器T3的时钟输出端和外部计数输入端
* P0.6和P0.7可以配置为定时器T4的时钟输入端和外部计数输入端
特别强调:
* P0.5还可以配置为PWMFLT_2(PWM异常停机控制引脚切换脚).
* P0.6和P0.7可以为PWM通道6和通道7的输出端

2>P1口:
P1.0~P1.7可做通常IO, 也可做8路A/D模拟输入通道
* P1.0和P1.1可以配置为CCP0和CCP1, 用作外部信号捕捉, 高速脉冲输出或者脉宽调制输出通道, 还可以配置成串行口2的RxD2和TxD2.
* P1.2可以配置成SS(SPI同步接口从机选择信号引脚切换端), 或者配置为ECI(PCA计数器外部脉冲输入端) , 还可以配置为CMPO(比较器比较结果输出端)
* P1.3~P1.5可以配置为SPI同步串行接口的MOSI(主出从入), MISO(主入从出), SCLK(同步时钟信号线)
* P1.6和P1.7可以配置成串行口3的RxD3和TxD3, 或者分别配置成外接晶振XTAL2和XTAL1端, 或者PWM通道6和通道7的输出端.
* P1.6还可以配置为MCLKO_2(主时钟输出引脚切换端)

3>P2口:
P2.0~P2.7可做通常IO, 访问外部存储器是作为高8位地址线
* P2.0引脚可以配置为RSTOUT_LOW, 上电复位后输出低电平
* P2.1~P2.3可以分配为SPI同步串行接口的引脚切换端SCLK_2, MISO_2和MOSI_2信号线, 或者分配为PWM通道3~5的输出端
* P2.4可以配置为ECI_3(PCA计数器外部脉冲输入引脚切换端), 或者SS_2, 或者PWMFLT(PWM异常停机控制端)
* P2.5和P2.6可以配置为CCP0_3(CCP输出通道0的切换引脚)和CCP1_3(CCP输出通道1切换引脚)
* P2.7可以配置为PWM2_2(PWM通道2输出引脚切换端)

4>P3口:
* P3.0和P3.1可以配置为串行口1的RxD和TxD
* P3.0还可以配置为INT4(外部中断4,下降沿触发), 或者配置为T2CLKO, 即T2定时器时钟输出端
* P3.1还可以配置为定时器T2的外部脉冲输入端
* P3.2和P3.3可以分配为INT0和INT1, 触发方式可以选择上升沿或者下降沿
* P3.4和P3.5可以配置为定时器T1和T0的外部计数脉冲输入端, 或者配置为T1CLKO(定时器T1的时钟输出端)和T0CLKO(定时器T0时钟输出端)
* P3.4还可以配置为ECI_2
* P3.5还可以配置为CCP0_2(CCP通道0切换引脚)
* P3.6和P3.7引脚可以配置为INT2(外部中断2, 下降沿触发)和INT3(外部中断3, 下降沿触发), 或者串行口1的RxD_2和TxD_2(切换引脚)
* P3.6还可以配置为CCP通道1的切换引脚
* P3.7还可以配置为PWM通道2输出端

5>P4口:
* P4.0可以配置为MISO_3(SPI接口主入从出引脚切换端), 该引脚只有LQFP44封装芯才有
* P4.1可配置为MOSI_3(SPI接口主入从出引脚切换端)
* P4.2可以配置为WR(外部数据写信号,低电平有效), 或者配置为PWM5_2(PWM通道5输出引脚切换端)
* P4.3可以配置为SCLK_3(SPI接口同步时钟信号引脚切换端), 该引脚只有在LQFP44封装下有
* P4.4可配置为RD(外部数据读信号, 低电平有效) , 或者配置为PWM4_2(PWM通道4输出引脚切换端)
* P4.5可配置为ALE(外部数据存储器扩展时低8位地址锁存器), 或者配置为PWM3_2(PWM通道3输出引脚切换端)
* P4.6和P4.7在LQFP44封装下可以配置为RxD2_2和Txd2_2

6>P5口:
* P5.4引脚可以配置为RST(复位端)或者MCLKO(主时钟输出可输出不分频,2分频,4分频主时钟)或者配置为SS_3(SPI接口从机选择信号引脚切换端)或者配置为CMP-(比较器负极输入端)
* P5.5可以配置为CMP+(比较器正极输入)

7>特殊引脚功能配置
* P1.7和P1.6可以用于外接晶振输入端时,它们上电复位后为高阻输入模式
* P5.4/RST引脚,P5.4引脚既可以做IO口,也可以做复位输入RST
* P2.0/RSTOUT_LOW引脚,P2.0引脚在上电复位后可以输出低电平,也可以输出高电平

8>IO口工作模式的设置
这里写图片描述

注意PxM1,PxM0为8位寄存器, 只有同时设置才能正确定义某个引脚的共奏模式.
比如:

P0M1 = 0X01;
P1M1 = 0X01;//表示P0.7~P0.1口均为准双向口,P0.0为开漏模式

小结:
这里写图片描述
这里写图片描述
这里写图片描述

没有更多推荐了,返回首页