南航430课程.ppt

上传人:本田雅阁 文档编号:3190169 上传时间:2019-07-23 格式:PPT 页数:72 大小:386.04KB
返回 下载 相关 举报
南航430课程.ppt_第1页
第1页 / 共72页
南航430课程.ppt_第2页
第2页 / 共72页
南航430课程.ppt_第3页
第3页 / 共72页
南航430课程.ppt_第4页
第4页 / 共72页
南航430课程.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《南航430课程.ppt》由会员分享,可在线阅读,更多相关《南航430课程.ppt(72页珍藏版)》请在三一文库上搜索。

1、,MSP430专题,主讲人:魏小龙 2005年11月,本讲稿可以在电子中心网站或www.open- 课件栏目下载,9月1日作业,1、求数组a20的和 2、求数组a20的最大值、最小值 3、看iar 430开发环境使用手册 4、看iar 430 c编译器手册,什么是单片机,单片机也叫微控制器 单片机就是单片计算机 一个芯片就是一台计算机,计算机CPU两大营: INTEL AMD,单片机五花八门,按总线宽度分: 4位机; 8位机; 16位机; 32位机; 运行速度可以调整: 32K 12M 266M等,有很多国际大公司参与设计生产: 51系列 几十个公司生产 PIC系列 美国微芯 摩托罗拉 台湾

2、大陆苏州 飞利浦的系列8位51系列以及32位ARM系列 德州仪器的系列430十六位单片机 南京东大可以生产ARM,单片机应用举例,我们周围的单片机应用有: 空调 洗衣机 电视机 微波炉 电子手表 手机 食堂消费机 计算机外围:鼠标、键盘、硬盘、光碟 一辆汽车有40片左右单片机 等等 以上列举都是单片机应用。,空调机控制系统框图,CPU单元,温度采集单元,压缩机 风机,键盘,显 示,学习MSP430单片机推荐参考书,MSP430系列超低功耗16位单片机接口技术及系统设计实例 北航出版社 魏小龙 编著 MSP430系列单片机C语言程序设计与开发 北航出版社 胡大可 编著,MSP430单片机学习方法

3、,强化理论知识 大量做实验 勤于思考 多动手 已经与MSP430厂家TI(德州仪器)建立了联合实验室,拥有60套实验设备。地点:3410。其中40套为赠送,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全有 在仿真

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

5、b if(条件表达式) 语句1 else 语句2 c if(条件表达式) 语句1 else if(条件表达式) 语句2 else if(条件表达式) 语句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

6、(条件表达式) 先执行一次循环体的语句,再判断条件是否满足,以决定是否再执行循环体。下面的程序将数组BUFF20中的全部数据相加。 Int x=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语句常用于跳转到一个固定的地址标号。其中固定的地址标号是一个带“

7、:”的标志符。比如: MM: goto MMM ,函数的定义与调用,函数类型 函数名(形式参数表) 形式参数说明 局部变量定义 函数体语句 存储变量类型 interrupt 中断矢量变量 函数类型 函数名(形式参数表) 形式参数说明 局部变量定义 函数体语句 ,经常使用的延时函数,void delay(long v) while(v!=0)v-; delay(100)究竟延时多久呢?就是这句话执行需要的时间。 时间等于:机器周期需要的机器周期数 (在仿真环境中可以测试出来),MSP430单片机的输入输出,P1 P2 P3 P4 P5 P6,引脚控制寄存器,PnDIR 方向寄存器 1为输出、0为

8、输入 PnOUT 输出寄存器 1输出高、0为低 PnIN 输入寄存器 读出口线的状态 PnSEL 第二功能寄存器 n=1,2,3,4,5,6,引脚使用举例,控制连接在P5.1口线的发光二极管的亮与熄: 首先、 P51为输出 P5DIR = 2; 亮 输出1 P5OUT = 2 ; 熄灭 输出0 P5OUT = 0 ;,如何让发光二级管闪烁?,1、亮 2、延时1秒钟 3、熄灭 4、延时1秒钟 5、跳转到 步骤1 (演示),如何改变发光二级管闪烁的速度?,改变延时的时间参数 1、亮 2、延时1秒钟 3、熄灭 4、延时1秒钟 5、跳转到 步骤1 (演示),如何让一只发光管闪快、另一只慢?,增加一个变

9、量xx xx为模5计数器 只有当xx为1的时候第一发光管亮 只有当xx小于4的时候第二发光管亮 其余时间两个都熄灭 (5分钟时间学生自己编写程序),第三个按钮控制前两个按钮,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 ; 错误状态的清除 很重要!,如何让单片机发声?,声音是什么? 声音是震动产生的;

10、扬声器发声的原理:处在磁场中的有电流的线圈产生震动,继而发声。 不同的频率产生不同的声音; MSP430的端口可以输出不同的频率; 继而可以推动扬声器产生不同的声音。 下页的程序将发出什么声音呢?,第一段程序,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(vo

11、id) for(ff=50;ff100;ff+) P6OUT = BIT0; / 对输出置反 for(tmp=0;tmpff;tmp+); / 延时 ,总结,以上三段程序的结构完全一样,但是效果完全不一样! 主要为: 频率不一样; 各频率段的延时不一样。 第三段频率高,延时短。,数码管的显示,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只数码管连接在端口上。 程序举例(演示),液晶显示器的使用,液晶显示器的控制寄

12、存器 LCDCTL LCDMEM I 常用: LCDCTL = 0XDF ;,液晶显示原理与显示码表,C,B,E,G,A,F,D,C,B,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 ;

13、为什么?,在液晶屏上显示数据,依次显示06: char I ; For(I=0;I7;I+) LCDMEMI = LCD_TABI ;,如何在液晶上循环显示,作为思考题 自己编写程序 为上机内容,如何在液晶上显示闪动的数字,作为思考题 上机内容,定时器 TA,TA的原理:,TA的工作方式,4种工作模式: 连续 增 减 停,定时器TA的寄存器,控制寄存器 TACTL 捕获 / 比较寄存器,定时器应用举例,产生1秒的定时信号: 首先 、选择输入信号来源 其次、 选择工作模式 最后、 设定比较值 开启中断、启动定时器等待时间的到达。,时钟的设计,作为上机内容,请同学们自己编写完整程序 要点: 1、定

14、时器 设置为1秒中断一次 2、写时间程序 两个60进制,一个24进制,7进制 3、时间送液晶显示 4、显示: 星期 时 分 秒 5、 每秒发光二极管闪烁,设计闹钟,要点: 1、基于前面的时钟程序 2、增加时间控制 3、到达规定的时间点,发光二极管亮5秒,扫描键盘键盘原理,扫描键盘为行列扫描 扫描键盘的完整程序为: 1、判断是否有按键按下; 2、判断是哪个按键按下; 3、判断是否按键松开。,按键原理图,电路原理图 行线P11、P12、P13 列线P14、P15、P16、P17全上拉,P13,P14,P16,P17,P15,P12,P11,如何判断是否有按键按下,首先、设置端口:行线为输出、列线为

15、输入。 然后、行线输出为低电平 最后判断: 如果有按键按下,则列线不全为高电平, 如果没有键按下,则列线全部为高电平。 char Keyj(void) P1DIR = 0x0E; / set p1.1p1.3 设置为输出模式 P1OUT = 0x00; / p1.1p1.3 输出值清零 return(P1IN 如果返回值为0xf0 则 有按键按下吗? 以后直接调用这个函数,即可判断有否按键按下。,注意:有键按下后,需要消抖动,使用延时再判断的方法即可消除抖动 If(Keyj() != 0xf0 ) delay(200); /延时消除抖动 If(Keyj() = 0xf0 ) exit; /没有

16、按键 为抖动 else /确实有键按下 /处理 ,检查程序正确性,测试方法:如果有按键按下则发光管亮 If(Keyj() != 0xf0 ) delay(200); /延时消除抖动 If(Keyj() = 0xf0 ) exit; /没有按键 为抖动 else /确实有键按下 P1OUT = 1 ; /处理 DELAY(10000); P1OUT = 0 ; ,如何查找哪个按键按下,方法为:一个一个地查找。 先第一行输出0,检查列线是否非全高 否则第二行输出0,检查列线是否非全高 否则第三行输出0,检查列线是否非全高 如果某行输出0时,查到列线非全高,则该行有按键按下。 根据第几行线输出0与第

17、几列线读入为0,即可判断在具体什么位置的按键按下。 下页具体程序。,void check_Key(void) unsigned char row ,col,tmp1,tmp2; / tmp1用来设置P1OUT的值,使P1.1P1.3中有一个为0 tmp1 = 0x08; for(row=0;row3;row+) P1OUT |= 0x0E; / p1.1P1.3=1 P1OUT -= tmp1; / P1.1p1.3中有一个为0 tmp1 = tmp1/2; / tmp1 右移一位 if (P1IN / tmp2右移 ,完整的键盘程序,键盘程序过程: 判断按键 消除抖动 判断位置 等待松开,v

18、oid key(void) If(Keyj() != 0xf0 ) delay(200); /延时消抖 If(Keyj() != 0xf0 ) /确实按下 check_Key(); Wait: if(Keyj() = = 0xf0 ) goto wait ; /等待松开 ,将键盘的键码液晶显示,设计时间控制器,要求: (2、3同学讨论设计) 时间可以调整 控制点5个 可以键盘输入 控制时间到,发光管亮 可以输入每个控制点的发光管亮的时间520秒,计算器设计,要求:(键盘与液晶)(2、3同学讨论设计) 被操作数2位,结果4位 运算: / 操作规则: 1、输入两个数字为第一操作数 2、输入运算:1

19、、2、3、4 / 3、输入两个数字为第二操作数 4、为取消 5、为回车运算(等号),ADC12的使用,MSP430内含12路12位200KPS的ADC: 模拟输入端为P6,将P6设置为第二功能则为ADC12; A10为内部温度传感器;,ADC12框图,ADC12 使用举例,首先设置ADC12: ADC12CTL0 = ADC12ON + REFON + REF2_5V + SHT0_6;/ 设置ADC12 的内部参考电压2.5伏 然后可以转换: ADC12CTL0 |= ENC; / 使能转换 启动转换: ADC12CTL0 |= ADC12SC; 读取结果: result = ADC12ME

20、M0;,温度控制系统设计,使用片内温度传感器 使用LED作为控制输出的模拟 设置4个温度值:大火加热停止温度点T1、中加热停止温度点T2、小火加热停止温度点T3 温度: T1 T2 T3 大火 中火 小火 停止加热 加热器使用LED的亮度表示。,后续430综合实验,1、可编程时间控制器 2、复杂计算器设计 3、环境温度监测 4、小规模LED点阵显示屏(4、5汉字) 5、温度控制系统 6、数据采集系统 7、汉字液晶显示 8、数字万用表 9、数字稳压直流电源 10、数字信号发生器 11、机械臂控制 12、无线数据采集与无线控制 13、电子称设计,WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer P5DIR |= 0x02; / Set P5.1 to output direction P5DIR ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1