《微处理器原理及系统设计实验.docx》由会员分享,可在线阅读,更多相关《微处理器原理及系统设计实验.docx(16页珍藏版)》请在三一办公上搜索。
1、微处理器原理与系统设计实验手册1实验平台概述自从口推出超低功耗MSP430单片机以来,MSP430凭借其优越的性能,丰富的外设, 易于上手的特性备受业工程师的欢送。单片机MSP430G2553集成的片外设才目当丰富,包括 ADC、Timer、parator、Touch Key、SPI、I2C、UART 等,MSP-EXP430G2 LaunchPad 是 TI 公司推出的1款MSP430开发板,它提供了具有集成仿真功能14/20引脚DIP插座目标板, 可通过Spy Bi-Wire2线J TAG协议对系统置的MSP430超值系列G系列进展快速编 程和调试。实验平台包含MSP-EXP430G2中配
2、套的MSP430G2553单片机片外设实验以及2 个综合性实验。2实验平台硬件口袋实验平台硬件原理框图如图1所示,主要有以下局部:TauchFadj Etc* Autd Fui 云号边lifl bru L E3 wheMSP-EXP430G2Pocket LaboratoryRev. 2.1Buium*PL功HEKJ二 T5IJa ibrtjiL LiJ tipander日TL 补或 paurTCAb41MDAC7311iXC” Pl盘 i*l. 5.7 4 成0回|4 叫*1 rErULATKJN :由*fe717 777 * 2 a f-i A 31 - H、.:.xaurs 叫礼即FKF
3、 严PL-r 尸 0ED19 M d | b IP2r5 OPi史里-JtaKMfi 孔斐 j.- 可 v SMEWen 厂 jin ojW 径SL溢忡A气.呻国生卫修陞(iMQ)- P1互啊应A-Fl.&ClOTH跆口Y 1Rlr JmiTPSeMDD图1 口袋实验平台硬件原理框图1显示和输入单元:口袋实验平台利用I2C接口的TCA6416A扩展出16个低速双向IO IO00IO07,IO10IO17。4个扩展IO用于控制LCD驱动器HT1621,4个用于机械按 键输入,8个用于LED灯柱。2触摸按键单元:两个触摸按键占用P2.0和P2.5两个GPIO,MSP430G2系列单片 机的P1 口
4、和P2 口全部具备振荡功能。3模拟输出单元:外部扩展了 12位串行数模转换器DAC7311,使用P1.0/P1.3/P2.2 三个普通GPI。控制。这三个IO同时被其他单元复用,但是由于DAC7311都是高阻输入 口,所以无需跳线复用。音频功放TPA301可以将DAC输出进展电流放大,以便驱动喇叭/蜂鸣器负载。4扩展存储局部:由 SPI 协议控制 TF 卡,使用 P1.1/SPI SOMI、P1.2/SPI SIMO、P1.4/SPI CLK三个USCI功能IO和1个普通P2.4控制。5SLOPE ADC单元:使用拨盘电位器作为待测电阻P1.5/arator_A+、P1.3、P2.2 三个IO
5、进展控制。P1.3、P2.2复用,但同样无需跳线。6PWM单元:P2.1/TA1.1负责输出SPWM;轨至轨运放TLV2372负责将SPWM滤 波为双极性模拟信号;TPS60400提供运放所需负电源;三电阻网络负责将双极性信号转变 为单极性信号;P1.0/ADC10负责将单极性信号采样,P1.0功能复用,同样无需跳线。表1口袋实验平台硬件功能单元名称元件IO功能IO扩展TCA6416AP1.6/I2C SDAP1.7/I2C SCL利用I2C协议控制TCA6416A 获得16个低速IO IO00IO07 IO10-IO17显示HT1621128 段 LCDIO14/扩展 IO;IO15/扩展
6、IOIO16/扩展 IO;IO17/扩展 IO4个I2C扩展IO控制HT1621 HT1621控制段式液晶机械按键微动开关*4IO10/扩展 IO;IO11/扩展 IOIO12/扩展 IO;IO13/扩展 IO4个I2C扩展IO识别机械按 键LED灯柱0603LED*8IO00/扩展 IO;IO01/扩展 IOIO02/扩展 IO;IO03/扩展 IOIO04/扩展 IO;IO05/扩展 IOIO06/扩展 IO;IO07/扩展 IO8个I2C扩展IO控制8个LED触摸按键覆铜P2.0、P2.5电容触摸按键模拟输出DAC7311TPA301、蜂鸣器P1.0/复用、P1.3/复用、P2.2/复用
7、12 位串行 DAC7311、BTL 乙 类功率放大器扩展存储TF卡槽P1.1/SPI SOMI、P1.2/SPI SIMO、P1.4/SPI CLK、P2.4基于SPI的TF卡读写SLOPE ADC拨盘电位器P1.5/parator_A+、P1.3/ 复用、P2.2 复用利用比拟器实现积分型ADCPWMTLV2372TPS60400三电阻网络P2.1/TA1.1、P1.0/ADC10/ 复用PWM波形合成双极性信号的ADC采样实验首次开设时间:2015年4月28日3实验容实验一系统时钟的使用实验目的:学会MSP430单片机时钟系统的使用。掌握并熟练使用单片机时钟系统。实验容: RST/WMI
8、设定DCO频率并观察DCO频率变化。P1.6PLGRSt/NMIMS户葛谜嚣登图2观测DCO频率变化实验原理图实验仪器:计算机、信号源、示波器等。实验原理:1MSP430G2553单片机的CPU时钟来源于数控振荡器DCO。2CPU通过长延时控制P1.6的LED闪烁亮灭。3单片机识别P1.3机械按键以后,改变DCO参数,一次设置为1M,8M,12M和 16MHz,可观察到闪烁频率增加。考前须知:不使用扩展板进展试验,图2所示跳线帽需插上实验。工程名:4_KEY_LED_Change_DCO.本例程主要学习单片机时钟的配置方法和前后台的编程思想:1)主函数main()中,只调用初始化函数GPIO_
9、Init()和执行后台程序,本例中后台程序 就是长延时改变LEDP1.6的亮灭。2前后台程序构造中,前台程序就是各种中断中执行的程序。中断效劳程序子函数 PORT1_ISR 0中不要去写“实质性代码,只调用事件检测函数,这样能提高程序可读性。3事件检测函数P1_IODect(),在GPIO中断效劳子函数中调用,检测按键是否“一定 被按下,然后调用事件处理函数。4事件处理函数P13_Onclick(),一旦被调用,就循环改写DCOCTL和BCSCTL1存放 器,从而改变DCO也就是CPU频率。5前后台程序中,前台程序的编写是难点。但只要坚持用“事件检测“事件处理 的方法处理,就能变得井井有条。实
10、验结果:对应的LED灯闪烁作业:ACLK,SMCLK通过设置输出到I/O 口,编程实现不同频率自选3个频率点的输 出,并且用示波器观测波形是否满足程序的要求。实验二MSP430单片机定时器的使用实验目的:学会MSP430单片机定时器的使用。实验容:基于PWM的LED调光控制,即通过按键控制LED亮度。R5T/NMCJ-tSL *Pl .6PLORST/NMEW-5P43CG25S3图3 LED调光控制实验原理图实验仪器:计算机、信号源、示波器等。实验原理:1TATimer_A定时器可用于自动输出PWM而无需CPU干预。2编写PWM初始化、设定频率、改写占空比的库函数文件TA_PWM.c。3主函
11、数调用库函数TA0_PWM_Init()完成TA_PWM初始化,然后休眠。4P1.3事件处理函数中,循环递增静态局部变量Bright的值,并调用库函数TA0_PWM_SetPeriod ()改写占空比参数。考前须知:不使用扩展板进展实验,图3所示跳线帽需插上实验。工程名:6_PWM_LED.本实验主要学习TA自动生成PWM的原理,外部库函数文件的使用,静态局部变量的 使用。TA生成PWM波形的本质就是通过改写定时器的TACCR0存放器改变PWM频率, 改写TACCR1/2存放器改变占空比。编写库函数文件方便在各种程序中都能调用。作业:1. 在MSP430G2553单片机中,P1.0 口和P1.
12、6 口通过晶体管控制两只灯泡的亮度。要求 从 P1.0引脚输出占空比75%的PWM调制波形,从P1.6引脚输出占空比50%的PWM调制波 形。频率约为100Hz。要求编写调试,并在LaunchPad实验板上调试通过。2. 用MSP430G2553单片机设计一个可编程的分频器,要求分频过程无需CPU干预,且 可通过软件随时更改分频比。从P1.0引脚TACLK引脚输入,从P2.0TA1.0输出。 要求在LaunchPad实验板上调试通过。实验三定时扫描非阻塞按键实验目的:学会MSP430单片机定时器的使用,掌握消除阻塞的编程方法。实验容:通过可。丁定时周期性读取IO状态,准确识别按键按下和弹起。跳
13、蜷、r LEDP1.6P1.0PL3MSM30G2553图4定时扫描按键实验原理图实验仪器:计算机等。实验原理:1WDT定时器设置为16ms中断。2在 WDT中断中,记录下最近两次的IO状态存在KEY_Now和KEY_Past中。根据 前高后低可判断按键按下,前低后高可判断按键松开。3事件处理函数P13_Onclick()根据按键状态切换LED亮灭。考前须知:不使用扩展板进展实验,图4所示跳线帽需插上实验。工程名:7_2_Timer_Key_LED本实验主要学习定时扫描在消除CPU阻塞中的作用,以及消抖的原理。CPU 无遗漏地查询时间发生是产生阻塞代码的重要原因。定时扫描消抖原理如图5所示。定
14、时扫描的精华在于扫描的间隔足够短,保证不会遗漏“事 件。刿断出有推谴技下判断出有按噩弹起高低低高高 WDT中断时序L一 11丫Sr0心实际电压按下匚|弓幅 P2.i m,3NTaTCAMJ4ACSKDP】.E8个控制LED s 4个检测按键r 4个建制LCD驱动果图12 I2C扩展IO实验原理图实验目的:掌握学习I2C总线,掌握扩展的IO 口的使用。实验容:通过I2C协议扩展出的I/O 口识别机械按键和控制LED。实验仪器:计算机、信号源、示波器等。实验原理:1配置 DCO 频率调用库函数 TCA6416A_Init()实现 TCA6416A 初始化,在TCA6416A_Init()中包含了调
15、用I2C的初始化函数I2C_Init()。2调用控制I2C_IO输出的函数PinOUT(),将8个LED设置为间隔亮灭。3看门狗定时器设为16ms唤醒CPU 次,然后执行1次PinIN(),在事件检测函数中, 包含有按键事件处理函数。4事件处理函数的最终效果是1个按键切换2个LED的亮灭。考前须知:G2单片机的I2C 口是P1.6和P1.7,定要把G2板上P1.6的LED跳线拔掉,否那么 I2C将无法通信。两个工程的区别在于有无软件I2C条件编译。工程名:10_UART_KeyBoard.本实验主要学习USCI_I2C通信模块的配置和使用、软件I2C原理、TCA6416A操作时 序。1IC协议
16、收发有关的库函数位于I2C.c中,如果是初次学习I2C协议,建在 I2C中 条件编译,实用软件I2C,这样比拟清楚的知道协议容。2TCA6416A有关的操作函数位于TCA6416A.c文件中,最核心的容可以看TCA6416A.h 中所列出的3 个库函数 PinIN()、PinOUT()、TCA6416A_Init()和一个全局变量 TCA6316A_InputBuffer。3调用一次 PinIN0函数,就意味着将 TCA6416A的输入IO值写入全局变量 TCA6416_InputBuffer 中。4调用负责PinOUT()函数那么可控制任意扩展IO的输出。作业:通过扩展的IO 口控制发光二极
17、管LED和蜂鸣器的鸣响,具体格式自定。实验九LCD显示自检SEG捋csSEG29aRTSEG2SESEG27DATASEGMSEG23IRQSEG24SE-G23SEG22O9COSEG2LSE伽OSCESEGMSEG1SBZSEG17SEGUUEZSE-G35SEG14VDDSEG13SEG12SE-G3LYLCDSEGlfr21c.- s 7 5 Ji 3 Tx L o GGG&GGGG SISI避攵SIsi81受S15ZE E R- E - - - - - - - F.-R1 -二 rDF.-二一 -D-CF.-PT 二-=1二1-1二-1 二-F._F.- - -1 二一 -CF.-R
18、1R_ gsfSI5fssfSI5fsfSISISIsfSISJSIsfSISISIsfSISISJsf5fSISJSI5fSIsf以略式液晶壁曲COM3COM2CO|caucCCM2CCMlHTL62LB图13 LCD自检实验原理图图14 HT1621驱动器芯片实验目的:掌握学习USCI_I2C的工作原理和应用,掌握学习LCD的工作原理。实验容:通过I2C协议扩展出的IO控制HT1621驱动LCD做自检显示。实验仪器:计算机、信号源、示波器等。实验原理:1配置 DCO 频率调用库函数 TCA6416A_Init()实现 TCA6416A 初始化,在 TCA6416A_Init()中包含了调用
19、I2C的初始化函数I2C_Init()。2分别调用 LCD_DisplaySeg()、LCD_DisplayDigit()、LCD_DisplayNum()三种改写 LCD 显示缓存LCD_Buffer的程序,改写想要实现的显示效果。3调用HT1621_Reflash()函数更新显存至HT1621中,LCD显示做才目应 变化。4LCD先逐段显示,再逐段消隐,然后8字段显示0-9数字,最后显示PASS。图15 为LCD显示自检的效果图。考前须知:G2单片机的I2C 口是P1.6和P1.7,定要把G2板上P1.6的LED跳线拔掉,否那么 I2C将无法通信。图15 LCD自检实验效果图工程名:14_
20、LCD_SelfScan_Hard_or_Soft_I2C.本实验主要学习HT1621驱动器的控制方法、显存隔离以及利用宏定义进展硬件隔离的 编程思想。1要想使用MSP-EXP430G2扩展板上这块128段式液晶很难。如下图,单片机必须 用I2C协议去控制TCA6416A输出4个控制信号CS、WR、RD、DATA,哪怕只是改变一次 CS的电平,实际工作量就是完整的I2C通信了 一次。图16 LCD控制的信号控制图2如图16所示,将HT1621的控制信号线宏定义之后,无论用的是何种IO, HT1621 的库函数都是一样的。这就是利用宏定义进展硬件隔离的思想。/#def xrie #defiFie
21、 #deHFine define #de-Fne #de-frine #de4Fine #da-FnePinOUTtldQ) PinOUTtldl) PinOUTf 15 PinOUTf15,1 PinOUTClG,) PinOUT(16,1) PinOUTf17,0 PinOUT(17,l控制信号线宏定义 HT1621_CS_LOW HT1621_CS_HIGH H ri62_RD_LOW H ri621_RD_H UGH H ri621_WR_LOW HT167 J _WR_HTGH HT162 J _DATA_LOW HT162 I DATA HIjH图17利用宏定义进展硬件隔离3对于显
22、示类的应用,显存隔离也是一种常用的编程思想。在RAM中建立显存数组 LCD_Buffer,CPU想显示什么容就调用函数改写显存数组,这是顶层程序要干的事情。4至于显存数组中的数据怎么写到HT1621硬件中,那么是HT1621_Relash()函数要实现 的事,这属于硬件相关的底层程序。作业:编写程序,完成LCD的自检,自检完成之后,显示自己的XX拼音以及学号,显 示格式自定。实验十温度传感器采样及显示图18温度传感器采样及显例如程原理图实验目的:掌握学习A/D转换器的工作原理和应用,继续掌握USCI_I2C的使用。实验容:通过移植CCS Example中的测温代码,将温度值显示到LCD屏幕上。
23、实验仪器:计算机、信号源、示波器、万能板、10kQ可调电阻、10kQ电阻等。实验原理:CCS的Example有一个ADC10 TempSens Convert的例程,将测温代码进展移植,ADC10 采样值存入long型全局变量temp,并换算为摄氏度,存入long型全局变量IntDeg。对IntDeg进展数字拆分,并显示在LCD屏幕上。考前须知:G2单片机的I2C 口是P1.6和P1.7, 定要把G2板上的P1.6的LED跳线拔掉,否那么I2C将无法通信。工程名:19_ADC10_Temperature.本实验主要学习如何借助CCS的Example加快程序开发进程。1对于大多数外设,CCS的Example中都给出了参考例程,如图18所示,移植例程中 的代码可以显著加快学习和使用该外设的速度。2ADC10 TempSens Convert例程功能是对G2单片机片温度传感器进展采样。我们直 接读取采样结果,然后显示在LCD上。3不要忘记添加与LCD显示才目关的4个C文件及其头文件。作业:通过通用版设计一个可调电阻器,并接入到ADC10的输入端口,利用ADC10对可调电 阻进展测量,并且在LCD显示阻值,显示格式自定。