单片机实验指导书23_第1页
单片机实验指导书23_第2页
单片机实验指导书23_第3页
单片机实验指导书23_第4页
单片机实验指导书23_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE4前言3实验一熟悉µ’nSP™IDE环境下的汇编程序的编写………………4【实验目的】4【实验设备】4【实验步骤】4【程序流程图】5【程序范例】5【程序练习】5实验二熟悉µ’nSP™IDE环境下的C语言的编写6【实验目的】6【实验设备】6【实验步骤】6【程序范例】6【程序练习】6实验三使用汇编语言实现A口的输出实验7【实验目的】7【实验设备】7【实验原理】7【实验步骤】7【硬件连接图】……7【程序练习】8实验四FIQ中断实验…………………9【实验目的】9【实验设备】9【实验原理】9【实验步骤】9【程序流程图】……9【程序练习】10实验五A/D转换11【实验目的】11【实验设备】11【实验原理】11【实验步骤】11【硬件连接图】……12【程序流程图】……12【程序练习】13实验六双通道D/A14【实验目的】14【实验设备】14【实验原理】14【实验步骤】14【程序流程图】……15【程序练习】15实验七一路输入的录音16【实验目的】16【实验设备】16【实验原理】16【实验步骤】16【程序练习】16实验八32KFlash读/写17【实验目的】19【实验设备】19【实验原理】19【硬件连接图】……19【实验步骤】19【程序练习】20实验九0.5S定时刷新数码管显示21【实验目的】21【实验设备】21【实验原理】21【硬件连接图】……22【实验步骤】22【程序练习】23前言本教材是结合《µ’nSP™系列SPCE061A单片机基础与应用技术》一书而设计实验,与课堂教学内容结合紧密。本书共分九个实验,其内容如下:第一部分SPCE061A设计性实验,共有7个实验(实验1至第实验7)。第二部分SPCE061A综合性试验,共有2个实验(实验8,9)。本书是为完成重庆邮电学院自动化学院的《单片机原理及应用》课程相关实验教学而编写的。实验学时为16学时。前七个实验共10个学时,后两个实验共6个学时。本课程实验开设于信息科技大厦S804,罗克韦尔实验室。罗克韦尔实验室提供计算机15台,单片机实验系统10套。按2人一组计算,每次实验可满足20人次。注意:在进行实验课前,要求每位学生对相关实验进行预作,即要求每位学生在上机实验前,要有相关程序的书面报告。否则不允许参加上机实验。罗克韦尔实验室编2005年3月4日实验一熟悉µ’nSP™IDE环境下的汇编程序的编写【实验目的】1)熟悉µ’nSP™IDE环境及在该环境下用汇编语言编写的应用程序。2)熟悉简单的µ’nSP™汇编语言指令。【实验设备】装有WINDOWS系统和µ’nSP™IDE仿真环境的PC机一台。【实验步骤】1)将µ’nSP™IDE打开后,建立一个新工程。2)在该项目的源文件夹(SOURCEFILES)下建立一个新的汇编语言文件。3)编写汇编代码。4)编译程序,软件调试,观察并跟踪其结果,查看各个寄存器状态,等等。【程序流程图】主程序流程图:【程序范例】//========================================================////Program:计算1to100累加值//Output:[sum]=5050(十进制)或13BA(十六进制)//========================================================//.RAM//定义预定义RAM段.varR_Sum;//定义变量.CODE//定义代码段.public_main;//对main程序段声明_main:r1=0x0001;//r1=[1..100]r2=0x0000;//寄存器清零L_SumLoop:r2+=r1;//累计值存到寄存器r2r1+=1;//下一个数值cmpr1,100;//加到100否jnaL_SumLoop;//如果r1<=100跳到L_SumLoop[R_Sum]=r2;//在R_Sum中保存最终结果L_ProgramEndLoop://程序死循环jmpL_ProgramEndLoop;【程序练习】在µ’nSP™IDE下用汇编语言使用冒泡法编写一个排序程序。.iramarray:.dw5,89,40,12,55,32,18,46,77,21==============================================EX1END=============================================冒泡法的思路是:将相邻两数比较,将小的调到前头。设有n个数要求从小到大排列,冒泡排序法的排列过程分为如下n-1步:第1步从上向下,相邻两数比较,小者调上。反复执行n-1次,第1个数最小。第2步从上向下,相邻两数比较,小者调上。反复执行n-2次,前2个数排好。………………第k步从上向下,相邻两数比较,小者调上。反复执行n-k次,前k个数排好。………………第n-1步从上向下,相邻两数比较,小者调上。反复执行1次,排序结束。实验二熟悉µ’nSP™IDE环境下的C语言的编写【实验目的】熟悉µ’nSP™IDE环境及在该环境下用C语言编写的应用程序。【实验设备】装有WINDOWS系统和µ’nSP™IDE仿真环境的PC机一台。【实验步骤】1)将µ’nSP™IDE打开后,建立一个新工程。2)在该项目的源文件夹(SOURCEFILES)下建立一个新的C语言文件。3)编写C语言代码。4)编译程序,软件调试,观察并跟踪其结果,查看各个寄存器状态,等等。【程序范例】//============================================================////Program:计算1to100累加值//Output:[sum]=5050(十进制)或13BA(十六进制)//============================================================//intmain(){inti,Sum=0;for(i=0;i<=100;i++)Sum=Sum+i;//Sum是累加的结果while(1){};//程序死循环//用变量Watch窗口看Sum的值}【程序练习】在µ’nSP™IDE下用C语言使用冒泡法编写一个排序程序。IntArray[]={{5,89,40,12,55,32,18,46,77,21}//----------------------EX2END//----------------------实验三使用汇编语言实现A口的输出实验【实验目的】1)通过实验了解A口作为输出口时的使用方法。2)使用汇编语言来实现A口作为输出口的方法。【实验设备】1)装有WINDOWS系统和µ’nSP™IDE仿真环境的PC机一台。2)µ’nSP™十六位单片机实验箱一个。【实验原理】通过点亮不同发光二极管来显示A口输出的数值不同。【实验步骤】1)根据硬件连接图连接好硬件。2)将µ’nSP™IDE打开后,建立一个新工程。3)在该项目的源文件夹(SOURCEFILES)下建立一个新的汇编语言文件。4)编写汇编代码。5)编译程序,软件调试,跟踪结果,观察LED及各个寄存器状态等等。【硬件连接图】【程序流程图】主程序流程图:【程序练习】使用汇编语言实现A口的输出实验实验四FIQ中断实验【实验目的】1)了解FIQ的中断向量和中断源。2)掌握中断控制单元P_INT_Ctrl,P_INT_Clear的设置方法。3)熟悉中断的编程方法。【实验设备】1)装有µ’nSP™IDE仿真环境的PC机一台。2)µ’nSP™十六位单片机实验箱一个。【实验原理】FIQ中断对应PWM、TMA、TMB中断源,通过写P_INT_Ctrl来设置中断允许,FIQ_TMA,FIQ_TMB中断源分别是通过定时器A、定时器B产生的,当计满溢出时产生中断请求信号TA_TIMEOUT_INT或TA_TIMEOUT_INT,CPU响应后进入中断执行相应的子程序,中断程序里可以通过读取P_INT_Ctrl单元,判断是哪个中断源,并进入相应的子程序控制发光二极管点亮。【实验步骤】1)根据实验内容自行设计,连接硬件电路并检查。2)画流程图并编写程序代码。3)编译程序,软件调试。4)观察LED、各个寄存器状态等。【程序流程图】主程序流程图:FIQ中断服务子程序流程图:【程序练习】***********************************************************Note:FIQ有FIQ_PWM、FIQ_TMA和FIQ_TMB三个中断源,当定时器A或B计满溢出时产生中断请求信号TA_TIMEOUT_INT或TA_TIMEOUT_INT,CPU响应后进入中断执行相应的子程序控制二极管发光。A口的低四位接LED灯,B口的低四位接LED灯.*************************************************************实验五A/D转换【实验目的】1)了解ADC输入接口的结构与转换原理2)熟悉模拟量输入口LINE_IN1—LINE_IN7的使用3)掌握P_ADC、P_ADC_CTRL单元的设置方法【实验设备】1)装有µ’nSP™IDE仿真环境的PC机一台2)µ’nSP™十六位单片机实验箱一个【实验原理】ADC工作方式分手动和自动两种当ADC工作在自动方式下:1)外部信号由LIN_IN[1~7]即IOA[0~6]输入并直接被送入缓冲器P_ADC_MUX_Data($702BH);,在ADC自动方式被启用后,会产生出一个启动信号,即RDY=0。此时,DAC0的电压模拟量输出值与外部的电压模拟量输入值进行比较,以尽快找出外部电压模拟量的数字量输出值,A/D转换的结果保存在SAR内。2)当10位A/D转换完成时,RDY会被置‘1’。此时,用户通过读取P_ADC_MUX_Data($702BH)单元可以获得10位A/D转换的数据。而从该单元读取数据后,又会使RDY自动清‘0’来重新开始进行A/D转换。本实验通过改变LINE_IN端口的模拟电压来改变IOB口输出的数据,采用自动方式即定时器A溢出执行ADC转换,可以通过发光二极管的点亮了解转换的数据值。【实验步骤】1)根据实验内容连接硬件电路并检查。2)画流程图并编写程序代码。3)编译程序,软件调试。4)通过改变输入电压,来观察发光二极管的亮灭。【硬件连接图】【程序流程图】IRQ1中断服务子程序框图:【程序练习】**************************************************************Note:通过模拟量输入口LINE_IN输入电压值,通过读取P_ADC_MUX_Data单元可以获得10位A/D转换的数据。而从该单元读取数据后,又会使RDY自动清'0'来重新开始进行A/D转换。若未读取P_ADC_MUX_Data单元中的数据RDY仍保持为'1',则不会启动下一次的A/D转换。***************************************************************实验六双通道D/A【实验目的】1)了解音频输出接口的结构与转换原理。2)掌握P_DAC2、P_DAC1、P_DAC_CTRL单元的设置方法。【实验设备】1)装有u’nspIDE仿真环境的PC机一台。2)µ’nSP™十六位单片机实验箱一个。3)示波器一台。【实验原理】SPCE061A提供的音频输出方式为双DAC方式。在此方式下,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,输入的数字量分别写入P_DAC1(写)($7017)和P_DAC2(写)($7016)单元。DAC工作可以直接将DAR的数据锁存到DAC中,也可以采用定时中断的方法,即定时器溢出时响应中断,在中断中写输入数据到P_DAC中。本实验采取直接方式,通过编程实现一个锯齿波,将实验板的两通道DAC输出分别接示波器CHI、CH2可以观察到锯齿波形,同时也可以听到AUD1和ADU2两端的扬声器有持续间断的声音。【实验步骤】1)根据实验内容连接硬件电路并检查。2)画流程图并编写程序代码。3)编程实现D/A转换功能。4)编译程序,软件调试,通过DAC1和DAC2来播放语音,同时观察示波器输出波形。【程序流程图】【程序练习】***********************************************************Note:本实验采取直接方式,通过编程实现一个锯齿波,用示波器则可以观察到锯齿波形,同时也可以听到AUD1和ADU2两端的扬声器有持续间断的声音。*************************************************************实验七一路输入的录音【实验目的】1)了解ADC输入接口的结构、转换原理及实时录音并实时播放的功能。2)熟悉麦克风输入口MIC_IN的使用。3)进一步掌握P_ADC、P_ADC_CTRL、P_DAC1、P_DAC2、P_DAC_Ctrl各单元的设置方法。【实验设备】1)装有u’nspIDE仿真环境的PC机一台。2)µ’nSP™十六位单片机实验箱一个。【实验原理】ADC由通道LIN_IN[1~7]即IOA[0~6]输入信号时的工作方法,本实验也是ADC实验的一种,但外部信号由通道MIC_IN输入,再经过缓冲器和放大器。AGC功能将通过MIC_IN通道输入的模拟信号的放大值控制在一定范围内,然后放大信号经采样-保持模块被送至比较器参与A/D转换值的确定,最后送入P_ADC($7014H)。本实验通过编程实现录放音的功能,采用自动方式即定时器A溢出执行ADC转换,通过A/D将MIC_IN输入的语音信号转换为数字信号,再通过D/A的两个通道AUD1和AUD2播放。【实验步骤】1)根据实验内容连接硬件电路并检查。2)编写程序代码。3)编译程序、软件调试、运行程序,实现实时录音并实时播放的功能。【程序练习】***********************************************************Note:时钟频率为Fosc/2,采样率为8kHz***********************************************************实验八32KFlash读/写32K字的内嵌式闪存被划分为128个PAGE(每个PAGE存储容量为256字),第一页[0x8000—0x80ff]最后一页为[0xff00—0xffff]。它们在CPU空闲状态下均可通过编程被设置为只读或读/写工作方式。全部32K字闪存均可在ICE工作方式下被编程写入或被擦除。Flash的控制端的地址为0x7555(P_Flash_Ctrl=0x7555)Flash的匹配数据为0xAAAA(C_FlASH_MATCH=0xAAAA)Flash的页擦除控制字为0x5511(C_FLASH_PAGE_ERASE=0x5511)Flash的字写入控制字为0x5533(C_FLASH_1WORD_PGM=0x5533)Flash的顺序写入多字的控制字为0x5544(C_FLASH_SEQUENT_PGM=0x5544)Flash页擦除的过程为:注:Page_Address为擦除该页中的任意地址。如:擦除第一页则页地址可为80XX(X可为任意数据)。Flash字写入的过程:注:Data_Address为被写数据的存储地址(0x8000—0xffff),Writed_Data为被写数据。Flash的顺序写入多字的过程:【实验目的】1)了解SPCE061的32K闪存读写原理。2)熟悉SPCE061的32K闪存读写编程方法。【实验设备】1)装有µ’nSP™IDE仿真环境的PC机一台。2)µ’nSP™十六位单片机实验箱一个。【实验原理】在CPU空闲时,定义FLASH为可读写,擦除全部数据,检测是否擦除成功,失败点亮LED1。写单字失败时点亮第二个LED。【硬件连接图】【实验步骤】1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论