msp430系列单片机入门课件

上传人:F****n 文档编号:88023334 上传时间:2019-04-17 格式:PPT 页数:71 大小:318KB
返回 下载 相关 举报
msp430系列单片机入门课件_第1页
第1页 / 共71页
msp430系列单片机入门课件_第2页
第2页 / 共71页
msp430系列单片机入门课件_第3页
第3页 / 共71页
msp430系列单片机入门课件_第4页
第4页 / 共71页
msp430系列单片机入门课件_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《msp430系列单片机入门课件》由会员分享,可在线阅读,更多相关《msp430系列单片机入门课件(71页珍藏版)》请在金锄头文库上搜索。

1、,MSP430专题,主讲人:魏小龙 2005年11月,本讲稿可以在电子中心网站或www.open- 课件栏目下载,什么是单片机,单片机也叫微控制器 单片机就是单片计算机 一个芯片就是一台计算机,计算机CPU两大营: INTEL AMD,单片机五花八门,按总线宽度分: 4位机; 8位机; 16位机; 32位机; 运行速度可以调整: 32K 12M 266M等,有很多国际大公司参与设计生产: 51系列 几十个公司生产 PIC系列 美国微芯 摩托罗拉 台湾 大陆苏州 飞利浦的系列8位51系列以及32位ARM系列 德州仪器的系列430十六位单片机 南京东大可以生产ARM,单片机应用举例,我们周围的单片

2、机应用有: 空调 洗衣机 电视机 微波炉 电子手表 手机 食堂消费机 计算机外围:鼠标、键盘、硬盘、光碟 一辆汽车有40片左右单片机 等等 以上列举都是单片机应用。,空调机控制系统框图,CPU单元,温度采集单元,压缩机 风机,键盘,显 示,学习MSP430单片机推荐参考书,MSP430系列超低功耗16位单片机接口技术及系统设计实例 北航出版社 魏小龙 编著 MSP430系列单片机C语言程序设计与开发 北航出版社 胡大可 编著,MSP430单片机学习方法,强化理论知识 大量做实验 勤于思考 多动手 已经与MSP430厂家TI(德州仪器)建立了联合实验室,拥有60套实验设备。地点:3410。其中4

3、0套为赠送,20套购买,MSP430单片机分类,MSP430F449单片机结构,MSP430F449片内资源,16-Bit RISC 结构, 12-Bit A/D 16-Bit Timer_B 16-Bit Timer_A 6 * 8 I/O 比较器 USART 160 Segments LCD 60KB+256B Flash Memory, 2KB RAM 看门狗 基本定时器,MSP430F449内部有什么?,上页内容MSP430F449全有 在仿真环境内,我们可以清楚地看到他们 打开仿真环境的对应窗口即可。,MSP430开发流程,编写源代码,修改程序,硬件准备,结束,仿真调试,满意?,修改

4、硬件,软件不满意,硬件不满意,满意,MSP430开发调试过程,1、建立工程项目 2、编写源代码 3、将源代码添加到项目文件 4、选择器件 5、选择仿真方式 6、编译下载代码到芯片 7、仿真调试 (演示),MSP430开发环境介绍,(举例说明:演示) 具体的 实验再讲,MSP430 C语言,可以使用的数据类型(见下页),表达式语句(结构),条件语句 开关语句 循环语句 返回语句,条件语句,语句表达形式有3种(a、b、c): a if(条件表达式) 语句 b if(条件表达式) 语句1 else 语句2 c if(条件表达式) 语句1 else if(条件表达式) 语句2 else if(条件表达

5、式) 语句3 ,开关语句,switch(表达式) case 常量表达式1:语句1 break; case 常量表达式2:语句2 break; case 常量表达式3:语句3 break; default: 语句d ,循环语句,while(条件表达式) 语句; 当条件满足时,就反复执行后面的语句,一直执行到条件不满足时。以软件延时程序为例说明该语句是如何执行的。 void delay(long v) while(v!=0)v-; ,do 语句 while(条件表达式) 先执行一次循环体的语句,再判断条件是否满足,以决定是否再执行循环体。下面的程序将数组BUFF20中的全部数据相加。 Int x=

6、0; Char I=0; Do x =BUFFI + x; I=I+1; while(I20); ,for(初值设定表达式;循环条件表达式;条件更新表达式)语句 for语句常用于需固定循环次数的循环。下面的程序段同样实现将数组BUFF20中的全部数据相加的功能。 Int x=0; Char I=0; for(I=0;I20;I+) x =BUFFI + x; ,goto 语句标号 goto语句常用于跳转到一个固定的地址标号。其中固定的地址标号是一个带“:”的标志符。比如: MM: goto MMM ,函数的定义与调用,函数类型 函数名(形式参数表) 形式参数说明 局部变量定义 函数体语句 存储

7、变量类型 interrupt 中断矢量变量 函数类型 函数名(形式参数表) 形式参数说明 局部变量定义 函数体语句 ,经常使用的延时函数,void delay(long v) while(v!=0)v-; delay(100)究竟延时多久呢?就是这句话执行需要的时间。 时间等于:机器周期需要的机器周期数 (在仿真环境中可以测试出来),MSP430单片机的输入输出,P1 P2 P3 P4 P5 P6,引脚控制寄存器,PnDIR 方向寄存器 1为输出、0为输入 PnOUT 输出寄存器 1输出高、0为低 PnIN 输入寄存器 读出口线的状态 PnSEL 第二功能寄存器 n=1,2,3,4,5,6,引

8、脚使用举例,控制连接在P5.1口线的发光二极管的亮与熄: 首先、 P51为输出 P5DIR =0x0 2; 亮 输出1 P5OUT = 2 ; 熄灭 输出0 P5OUT = 0 ;,如何让发光二级管闪烁?,1、亮 2、延时1秒钟 3、熄灭 4、延时1秒钟 5、跳转到 步骤1 (演示),如何改变发光二级管闪烁的速度?,改变延时的时间参数 1、亮 2、延时1秒钟 3、熄灭 4、延时1秒钟 5、跳转到 步骤1 (演示),如何让一只发光管闪快、另一只慢?,增加一个变量xx xx为模5计数器 只有当xx为1的时候第一发光管亮 只有当xx小于4的时候第二发光管亮 其余时间两个都熄灭 (5分钟时间学生自己编

9、写程序),第三个按钮控制前两个按钮,Char key_en=0; If(key=2) key_en = key_en ; If(key=0)&(key_en=0) If(key=1)&(key_en=0) ,串行密码锁设计,按照顺序:KEY0-KEY1-KEY2 ; KEY1-KEY0-KEY2 ; K0-K0-K0-K1-K2-K0-K2 ; K2-K2-K0-K1-K2 ; 错误状态的清除 很重要!,如何让单片机发声?,声音是什么? 声音是震动产生的; 扬声器发声的原理:处在磁场中的有电流的线圈产生震动,继而发声。 不同的频率产生不同的声音; MSP430的端口可以输出不同的频率; 继而可

10、以推动扬声器产生不同的声音。 下页的程序将发出什么声音呢?,第一段程序,void gun(void) for(ff=40;ff200;ff+) P6OUT = BIT0; / 对输出置反 for(tmp=0;tmpff;tmp+); / 延时 ,第二段程序,void s1(void) for(ff=30;ff500;ff+) P6OUT = BIT0; / 对输出置反 for(tmp=0;tmpff;tmp+); / 延时 ,第三段程序,void s2(void) for(ff=50;ff100;ff+) P6OUT = BIT0; / 对输出置反 for(tmp=0;tmpff;tmp+);

11、 / 延时 ,总结,以上三段程序的结构完全一样,但是效果完全不一样! 主要为: 频率不一样; 各频率段的延时不一样。 第三段频率高,延时短。,数码管的显示,C,B,E,G,A,F,D,E,G,A,F,D,以上为数码管的原理,实质为8只发光二级管,地端连接在一起,当给ADEG高电平时将显示数字“2”。,C,A,E,D,B,F,GND,H,G,0111 1101,如何显示,实验系统有6只数码管连接在端口上。 程序举例(演示),液晶显示器的使用,液晶显示器的控制寄存器 LCDCTL LCDMEM I 常用: LCDCTL = 0XDF ;,液晶显示原理与显示码表,C,B,E,G,A,F,D,C,B,

12、E,G,A,F,D,如果红色显示 将显示数字“2” 如果HGFEDCBA对应一个字节的高到低位 则显示码为:HGFEDCBA 0 10 11 0 1 1 0x5b,常用数字的液晶段码,H G F E D C B A 0 1 2 3 4 5 6 7 8 9,液晶码表,什么是码表? 就是一个数组,用于查找对应数字的显示码 LCD_TAB10=0x3f , 0x06 , 0x5b .; 当要 显示“1”的时候,使用语句: LCDMEMN = LCD_TAB1 ; 为什么?,在液晶屏上显示数据,依次显示06: char I ; For(I=0;I7;I+) LCDMEMI = LCD_TABI ;,如

13、何在液晶上循环显示,作为思考题 自己编写程序 为上机内容,如何在液晶上显示闪动的数字,作为思考题 上机内容,定时器 TA,TA的原理:,TA的工作方式,4种工作模式: 连续 增 减 停,定时器TA的寄存器,控制寄存器 TACTL 捕获 / 比较寄存器,定时器应用举例,产生1秒的定时信号: 首先 、选择输入信号来源 其次、 选择工作模式 最后、 设定比较值 开启中断、启动定时器等待时间的到达。,时钟的设计,作为上机内容,请同学们自己编写完整程序 要点: 1、定时器 设置为1秒中断一次 2、写时间程序 两个60进制,一个24进制,7进制 3、时间送液晶显示 4、显示: 星期 时 分 秒 5、 每秒

14、发光二极管闪烁,设计闹钟,要点: 1、基于前面的时钟程序 2、增加时间控制 3、到达规定的时间点,发光二极管亮5秒,扫描键盘键盘原理,扫描键盘为行列扫描 扫描键盘的完整程序为: 1、判断是否有按键按下; 2、判断是哪个按键按下; 3、判断是否按键松开。,按键原理图,电路原理图 行线P11、P12、P13 列线P14、P15、P16、P17全上拉,P13,P14,P16,P17,P15,P12,P11,如何判断是否有按键按下,首先、设置端口:行线为输出、列线为输入。 然后、行线输出为低电平 最后判断: 如果有按键按下,则列线不全为高电平, 如果没有键按下,则列线全部为高电平。 char Keyj

15、(void) P1DIR = 0x0E; / set p1.1p1.3 设置为输出模式 P1OUT = 0x00; / p1.1p1.3 输出值清零 return(P1IN 如果返回值为0xf0 则 有按键按下吗? 以后直接调用这个函数,即可判断有否按键按下。,注意:有键按下后,需要消抖动,使用延时再判断的方法即可消除抖动 If(Keyj() != 0xf0 ) delay(200); /延时消除抖动 If(Keyj() = 0xf0 ) exit; /没有按键 未抖动 else /确实有键按下 /处理 ,检查程序正确性,测试方法:如果有按键按下则发光管亮 If(Keyj() != 0xf0 ) delay(200); /延时消除抖动 If(Keyj() = 0xf0 ) exit; /没有按键 为抖动 else /确实有键按下 P1OUT = 1 ; /处理 DELAY(10000); P1OUT = 0 ; ,如何查找哪个按键按下,方法为:一个一个地查找。 先第一行输出0,检查列线是否非全高 否则第二行输出0,检查列线是否非全高 否则第三行输出0,检

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号