ARM微处理器试验指导书选修_第1页
ARM微处理器试验指导书选修_第2页
ARM微处理器试验指导书选修_第3页
ARM微处理器试验指导书选修_第4页
ARM微处理器试验指导书选修_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式微处理器结构与应用基于ARM7TDMI微处理器S3C44B0X实验指导书选修班)撰稿人:韩桂明张银2018年3月信息科技学院电子项目系实验目录实验一实验开发环境的创建和使用1实验二ARM汇编程序实验11实验三GPIO输出控制实验14实验四GPIO输入控制实验16实验五PWM信号实验17实验六定时中断实验19实验七键盘及LED驱动实验24实验一实验开发环境的创建和使用一、实验目的1,熟悉ADS1.2开发环境,学习使用ADS编译、下载、调试并跟踪程序。2.了解嵌入式开发的基本思想和过程。3 ,了解UP-NETARM3000实验箱,学会ARM仿真器的使用。4,掌握Windows超级终端的设置,

2、能够正确使用实验箱提供的BIOS功能。二、实验内容1.运行Windows系统下的超级终端,通过超级终端查看BIOS启动情况。2,配置ADS集成开发环境,新建一个简单的项目文件,并编译这个项目文件。3.学习ARM仿真器的使用和开发环境的设置。4,下载已经编译好的文件到嵌入式控制器中运行, 学会在程序中设置断点, 观察系统内存和变量,为调试应用程序打下基础。三、实验设备及工具1 .硬件:UP-NETARM3000实验箱、JTAG仿真器、PC机。2,软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验步骤1.超级终端设置及BIOS功能使用1)运行Win

3、dows系统下的超级终端HyperTerminal)应用程序,新建一个通信终端。如果要求输入区号、电话号码等信息请随意输入。出现如图1,1所示对话框时,为所建超级终端取名,如“arm”;可以为其选一个图标,然后单击“确定”按钮。连技描述01区1新建隹擅输人名称并为该连接选提图标:名称晅丈国标重)国标重): :确定取消图1.1创建超级终端2)在接下来的对话框中选择ARM开发平台实际连接的PC机用口如COM1),按确定后出现如图1,2所示的属性对话框,设置通信的格式和协议。这里波特率为115200,数据位8,无奇偶校验,停止位1,无数据流控制。按确定完成设置图1.2设置用行口3)完成新建超级终端的

4、设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。用用口线将PC机串口和平台UART0正确连接后,就可以在超级终端上看到程序输出的信息。4)启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS设置状态。如图1.3所示。K9F2808Uisfoind.K9F2808Uisfoind.MMMM整*M M:KMyKMytftfK KM MMMMM -M-K-M-K播 Si-Si-M M: MMMM-KMMMMMM-KMM:M M MVMMMVMM:K K* *WKMM-MKKMM-MH-H-MWKMM-MKKMM-MH-H-M:K KM MMMM

5、MMM N N* *UPUPHetHetARM3000BootloaderARM3000BootloaderVerVer3.063.06 * *COMCOM:115,2kbps115,2kbpsr r8Bit,NP.mRT08Bit,NP.mRT0* * *GuildTime:2904-04-15GuildTime:2904-04-15withADSwithADSL2L2 *菁* *-ShellMenu-ShellMenu* * *fFlashfFlashRomRomToolsTools* * *1 1TestLCDTestLCD* * o oFOEQIheindPlashheindPlash

6、ool-fil*l-fil* *nMdnMdSetSetNetaddressNetaddress* * *uEnterUSBDiskuEnterUSBDisk* * *eTestLEDeTestLED* * *kEnterTestkEnterTestKeyModeKeyMode* *sTestTouchsTestTouchpad*pad* *hS&tTouchpadModehS&tTouchpadMode * *a aEnterfestADCEnterfestADCMode*Mode* d dEnterTestEnterTestDRDRModeMode * *t tEnterHTCTestMo

7、deEnterHTCTestMode* * *iFnterAudioTestModeiFnterAudioTestMode* * *ininEnterEnterMotorMotorlestlestModeMode* *cEnterCANbusTestcEnterCANbusTestNode*Node* *bBootdefaulbBootdefault tsystemsystem* *M M餐图1.3系统的BIOS设置程序5)该画面上提示了该BIOS的版本等信息。ShellMenu是平台的检测菜单,每个条目的最左边字母是该功能的快捷键,按PC机键盘相应键将执行对应功能。注意操作时保持超级终端处于

8、激活状态,并且PC机键盘必须为小写。6)用户可以按超级终端的提示尝试部分测试功能,其中:l:测试LCD的文本和图形显示。 执行该命令后LCD上会打出文本提示, 然后进入图形模式并显示一幅彩色条形图案,然后在超级终端上看提示按任意键返回文本模式,并退出LCD测试返回测试菜单。o:格式化开发平台的16MFLASH,其中的文件将丢失,需要重新拷贝。执行该命令后超级终端上会出现确认提示,如果按“y”键则会格式化Flash,之后返回菜单。n:设置开发平台网卡的IP地址,子网掩码等,下有子菜单。执行该命令后出现子菜单:p:设置MAC地址,执行该命令后按提示操作i:设置IP地址,执行该命令后按提示操作,请与

9、所在局域网在同一网段m:设置子网掩码,执行该命令后按提示操作g:设置网关的IP地址,执行该命令后按提示操作s:保存所设地址,设置完IP地址等后必须执行该命令保存设置,否则设置无效d:设置默认地址q:退出子菜单,返回到主菜单。u:激活开发平台的USB连接,开发平台的Flash可以作为U盘使用,从而可以方便的将字库和应用程序等文件从PC机拷贝到平台的FLASH中。使用此功能时,必须保证USB电缆正确连接。e:测11t由ZLG7289驱动的LED显示,共分3步,请看超级终端提示按任意键继续,同时观察LED的变化,最后返回主菜单。k:测试由ZLG7289控制的键盘扫描,执行该命令后按开发平台的键盘,看

10、超级终端的键名显示,而在超级终端上按PC键盘任意键则退出测试返回菜单。s:测试开发平台触摸屏,触摸屏有动作时在超级终端上会显示动作类型和坐标。按PC键盘任意键后,再点一下触摸屏即可退出测试并返回主菜单。h:设置触摸屏的坐标基准点,也就是校屏功能。需要按提示点击触摸屏的3个位置并保存结果。a:测试开发平台的AD电路,执行该命令后调节平台的4个电位器,在超级终端上显示AD0AD3的数值。按PC键盘任意键退出测试并返回。d:测试开发平台的DA电路,在超级终端显示电压值,需要用电压表测量平台DA输出端子。按PC键盘任意键退出测试并返回。t:设置开发平台的RTC时间参数, 该时间由开发平台上的钮扣电池保

11、证持续计时。 请按提示确认修改时间并分别输入时间。设置完成合需要保存,否则设置参数无效。i:测试平台的音频电路,执行该命令后可以听到一段从平台扬声器发出的音乐。请适当调节音量电位器。m:测试平台的两个电机,需要打开电机附近的电机电源开关,按提示分别测试直流电机和步进电机。c:测试平台的CAN控制器。 执行该命令在超级终端显示CAN控制器ID,正常应该显示1234或0000。b:弓I导FLASH中的应用程序system.bk执行该功能将退出BIOS状态,把控制交给应用程序。7)按PC键盘的u键要使超级终端处于活动状态),这时超级终端上会显示如图1.4所示的信息。图1.4进入U盘状态这时,在“我的

12、电脑”中可以发现多了一个“可移动磁盘”,这就是开发板的海量存储器16M非线性Flash。开发平台的Flash芯片就像一个U盘,可以通过“我的电脑”进行操作。可以把编译后生成的system.bin文件通过USB下载到嵌入式开发板中,复位系统,运行并检查输出结果。提示system.bin文件是系统通过BIOS引导以后,装入内存中运行的默认文件名。2.配置ADS集成开发环境1运行ADS1.2集成开发环境CodeWarriorforARMDeveloperSuite)。选择“File|New”菜单,在对话框中选择Project,如图1.5所示,新建一个项目文件。图中示例的项目名为Exp6.mcp。图

13、1.5 新建项目点“set”按钮可为该项目选择路径如图1.6所示,选中CreatFolder选项后将以图1.5中的ProjectName为名创建目录,这样可以将所有与该项目相关的文件放到该项目目录下,便于管理项目。CreateCreateBe,Be,ProjectProject保存在保存在Q):|Exp. .直小直小国,国,文件名:际|保存保存非型红),|Prflj|Prflj(25*7/2)(2 I)P1?I)P1?若大干,则 R5R5 R5R51 1hFFFFhFFFF。,否则 R5R5 R5|h0000MFFR5|h0000MFFMOVMOVR1髀髀MDR0,R0.R0.LSL#2MDR

14、0,R0.R0.LSL#2;计算加 Y+4Y+4 村却好MOVMOVEO.RO.LSREO.RO.LSR#1#1;计算 RQRQ 吗却MOVMOVRUIRUIMOVMOVR1,R1.LSLR1,R1.LSL#1#1;计算 RIHRIH 却CKPRO.RICKPRO.RI;比较即和 RIRILDRHILDRHIR2.=OBFFFFOOOO;若即阳,则 R2R2=0 0 耳 FFFFOQODFFFFOQODAUDHIAUDHIRQ,R5.R2RQ,R5.R2;RD;RDRLRL 则 R5=R5R5=R5 皿 2 2ORRLMORRLME5,E5,fOxOOOOOOFFE5,E5,fOxOOOOOO

15、FF;若 RQRQ 小于党于 RIRI 期 R5=R5|R5=R5|口如口如口 UFFUFF:使用 TSTTST 指令耨试践的 bit23bit23 是否为 1,1,若是则田如位槽号(使用 BICBIC 指令)TSTR5,#BIT23TSTR5,#BIT23BICNEBICNER5,R5R5,R5.#0500000040.#0500000040BSTARTBSTARTEKDEKD五、实验步骤1 .启动ADS1.2,建立一个项目文件。 然后建立汇编源文件, 添加到项目中, 编写实验程序。2.编写好实验程序后,编译连接项目,选择Project-Debug,启动AXD进行软件仿真调试。或者点击Deb

16、ug图标。3.调试并观察程序执行过程1)AXD调试模式,选择Options-ConfigureTarget,如图:Fll-eProcf-ssorViewsSysite-nr*EMe-coccwSn-ciorINpFll-eProcf-ssorViewsSysite-nr*EMe-coccwSn-ciorINp2)选择软件仿真,点击ARMUL,并点击OKX X卵1111;定义置值为 1111Y YEQUEQU8 8 速义 y y 值为 8 8BIT23BIT23EQUEQU(123)(123):定义 BIT2?BIT2?的值为口前口就口口。口AfiEAAfiEAInstructicin,.COD

17、EInstructicin,.CODEf fREADOHLYREADOHLY:声明代码段 InMtiwticifiInMtiwticifi圃TRYTRY:麻识程序入口CODE3CODE3:声明 3232 位 ARMARM 指令STARTSTART4)打开寄存器窗口ProcessorRegister-S,选择Current项监视各寄存器的值。说明:使用鼠标左键选择一个寄存器,然后右击,在Format项中选择显示格式Hex、Decimal等,如图所示。I3回.何uIIw*5*曰.1,上FileSearchProcessorViewsSystemViewsExecuteOpticnnsWindowH

18、elpFileSearchProcessorViewsSystemViewsExecuteOpticnnsWindowHelpChooseTargetChooseTargetIUdMlI,闻回回同国WI麻用旧而旧同词1上|3)点击LoadImage,装载我们的.ax或件f f,AXDAXDAXD-ARM7TCMVI-4.编写、调试、观察以下程序通过课本P61页【例3.5】【例3.6,掌握无符号数和有符号数的相关运算六、思考题1.指令“MOVR0,#0 x12345678”是否正确?为什么?2 .将参考程序中应用CMP指令的代码,功能改为“若5*Y/2)(2*X,则R5=R5|0 x000000

19、FF否贝1JR5=R5&0XFFFF0000,程序应如何修改?3 .更改参考程序X的值为200,Y的值为163,单步运行程序,每执行一步程序的结果是多少?实验三GPIOGPIO输出控制实验、实验目的1 .熟悉S3C44B0ARM芯片的GPIO输入输出配置方法。2 .通过实当掌握ARM芯片I/O控制LED显示的方法。3 .进一步熟悉ARM汇编语言程序设计步骤。二、实验内容1 .熟悉ARM芯片I/O口的编程配置方法。2.熟悉S3c44B0芯片I/O口配置寄存器。3 .通过编程实现GPIO的E口输入,A口输出来控制实验平台上的LED三、实验设备及工具1 .硬件:UP-NETARM3000实验箱、JT

20、AG仿真器、PC机。2 .软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验原理S3c44B0芯片上共有71个多功能I/O弓唧,它们分为7组I/O端口:五、实验步骤1,启动ADS3c44B0芯撷目文件然后建立汇编源文件,添加至J项目中,编写实验程序。2.编写程JVCC3.3予,实现用E口输出控制LED灯亮、灭的汇编程序。阡程序:杳看工作寄存器:福观察LED灯的亮、灭情况。六、思考题1,用C语言如何实现上述程序的编写2个9位I/O端口端口E和F)2个8位I/O端口端口D和G)1个16位I/O端口端口C)1个10位I/O端口端口A)1个11位I/O

21、端口端口B)ELDELAYELDELAY;延时子程序DELOVLDKDELOVLDKHOUPJLRHOUPJLR;子程序返回ENDEND3电路原理图每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要1)流程示意图SIAHTSIAHTGPE6GPE7实验四GPIOGPIO输入控制实验一、实验目的1,熟悉S3C44B0ARM芯片的GPIO输入输出配置方法。2 .通过实当掌握ARM芯片I/O控制LED显示的方法。3,进一步熟悉ARM汇编语言程序设计步骤。二、实验内容1,熟悉ARM芯片I/O口的编程配置方法。2熟悉S3c44B0芯片I/O口配置寄存器。3 .通过编程实现GPIO的E口输入,A口

22、输出来控制实验平台上的LED。三、实验设备及工具1.硬件:UP-NETARM3000实验箱、JTAG仿真器、PC机。2,软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验原理S3c44B0芯片上共有71个多功能I/O弓唧,它们分为7组I/O端口:2个9位I/O端口端口E和F)。2个8位I/O端口端口D和G)。1个16位I/O端口端口C)。1个10位I/O端口端口A)。1个11位I/O端口端口B)。每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要。1)流程图2部分参考程序EQU0X01D20028EQU0X01D20028EQUOXO1

23、D2O8O0EQUOXO1D2O8O0EQU(17)EQU(17)AREAINPUT,CODE,READONLVAREAINPUT,CODE,READONLVENTRYENTRYC0DE32C0DE32LDRRLDRR。产PCONEPCONE;配置“E E为输入模式LDRR1,=0X0LDRR1,=0X0STRR1,R0STRR1,R0ENDEND3电路原理图GPA2GPA3S3c44B0芯片五、实验步堞2.编写实现E输入的汇编程序,使用JTAG进行仿真调试。3.编写程序,实现用A口输出控制LED灯亮、灭的汇编程序4 .编写程序,通过E口输入来控制A口的LED灯亮、灭,A口、E口的配置采用调用

24、子程序的方式。5.单步运行程序,查看工作寄存器;并观察LED灯的亮、灭情况六、思考题1.用C语言如何实现上述程序的编写。实验五PWMPWM信号实验一、实验目的2.了解PWM信号的特点。3 .掌握S3c44B0X产生PWM信号的方法。4 .练习如何优化代码。二、实验内容1 .定时器工作方式设置。2.配置GPIO为PWM信号输出引脚。三、实验设备及工具1 .硬件:UP-NETARM3000实验箱、JTAG仿真器、PC机。2 .软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯PCONEPPCONEPOONA8IOONA8IT7T71.启动A实验程序。DS1.2,

25、建立一个项中断。然后建立7L编源文件,添加到项目中,编写程序。四、实验原理1.实验电路示意图如下:3.实验参考程序:PCONEPDATEPUPETCFG0TCFG1TCONTCNTB3TCMPB3EQUTCNTO3CMD1CMD2EQU0X01D20028EQU0X01D2002CEQU0X01D20030EQU0X01D50000EQU0X01D50004EQU0X01D50008EQU0X01D500300X01D50034EQU0X01D50014EQU0X00A0000EQU0X0090000AREAtime,CODE,READONLYENTRYo 程序入口CODE32。指定为 32

26、位的 ARM 程序代码STARTLDRR1,=PCONELDRR0,=0X02000STRR0,R1LDRR1,=PUPEo 不配置 E 口的上拉电阻LDRR0,=0X1FFSTRR0,R1LDRR1,=TCFG0LDRR2,=0X0000FF00STRR2,R1LDRR1,=TCFG1LDRR2,=0X02000STRR2,R1LDRR1,=TCNTB3LDRR2,=0XFFFFFFFFSTRR2,R1LDRR1,=TCMPB3LDRR2,=0X88888888STRR2,R1LDRR1,=TCONLDRR2,=CMD1STRR2,R1LDRR1,=TCONLDRR2,=CMD2STRR2,

27、R1WAITBWAITEND五、实验步骤1 .启动ADS1.2,建立一个项目文件。 然后建立汇编源文件, 添加到项目中, 编写实验程序。2.编写程序实现PWM输出控制LED灯亮度,使用JTAG进行仿真调试。3.单步运行程序,查看工作寄存器;并观察LED灯的情况。4.修改、完善源程序,实现程序的模块化。六、思考题1 .在进行汇编模块化编程的时候如何建立堆栈,实现对现场的保护。2 .用C语言如何实现上述程序的编写。实验六定时中断实验一、实验目的1.了解S3c44B0X处理器的定时器应用方法。2 .掌握S3c44B0X处理器上中断的程序编写。3 .进一步熟悉平台硬件及其驱动程序的编写。二、实验内容1

28、.设置并启动定时器。2.设置中断,编写定时器中断服务程序,对中断次数进行计数并用LED显示结果。三、实验设备及工具1 .硬件:UP-NETARM3000实验箱、JTAG仿真器、PC机。2 .软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验原理1 .定时器原理S3C44B0X具有6个16bit定时器,每个定时器可以基于中断模式或DMA模式运行。定时器0、1、2、3具有PWM功能,定时器0还具有死区发生器可用于大电流设定时器0和1,2和3,4和5分别共享3个8bit预比例因子寄存器。每个定时器都各有一个4或5级的分频器,用TCFG0和TCFG1可

29、以设置这些比例因子或分频系数。计数值缓存寄存器TCNTBn的值在定时器启动后装载到减法计数器中。比较缓存寄存器TCMPBn的值将装载到比较寄存器中以和计数器中的值进行比较。TCNTBn和TCMPBn的这种双缓存技术使得当频率和占空比改变时定时器能有一个稳定的输出。即使设置了一个新的计数值,当前定时器操作继续完成。当减法计数器到达0时将产生定时器中断请求,通知CPU定时器操作已经完成。此时,如果自动重装控制位使能,TCNTBn的值会自动装载到计数器并开始下一操作周期。 当通过清除定时器使能位等方法使定时器停止后,计数值将不会自动重装。TCMPBn的值用于PWM或产生波形。当减法计数器的值和比较寄

30、存器的值匹配时,定时器控制逻辑将改变输出电平。这样可以控制定时器输出的波形占空比。下图是定时器2和3的结构图,其中没有死区发生器。启动定时器的步骤如下:1)将初始值写入TCNTBn和TCMPBn。2)将该定时器的人工刷新位manualupdatebit)置1,建议同时配置反转开关位(inverteron/offbit。3)将该定时器的启动位置1,启动定时器,同时清除人工刷新位。定时器时钟频率和比例因子、分频系数以及系统主频的关系如下:TimerinputclockFrequency=MCLK/prescalervalue+1/dividervalueprescalervalue=0-255di

31、vidervalue=2,4,8,16,322.中断控制器S3c44B0X的中断控制器接受来自于30个中断源的请求。 这些中断源包括DMA控制器,UART和SIO等等。其中外部中断EINT4/5/6/7是相或的。中断控制器的任务是经过仲裁过程当有多个中断源同时发出中断请求时)将FIQ或IRQ中断请求递交给ARM7TDMI核。S3c44B0X支持基于软件优先级算法的仲裁过程,也支持向量中断模式。前者在有多个中断请求产生时,将读取中断挂起寄存器来决定中断服务的优先级。S3C44B0X的中断控制器硬件直接提供了中断服务向量表, 当有多个中断请求时硬件优先级逻辑决定响应哪个中断。向量中断模式较之软件方

32、法减少了中断响应时间。要使能IRQ或FIQ中断响应必须清除程序状态字PSR中的I-bit或F-bit并且必须清除INTMSK中的相关位。如果PSR中的I-bit或F-bit置1,CPU将不接受中断控制器的IRQ或FIQ。ARM7TDMI具有两种中断类型:IRQ中断请求,FIQ快速中断请求。所有的中断源都可以决定在中断请求时采用那种中断模式。中断挂起寄存器表明是否有中断请求被挂起。当某挂起位被置1,如果中断使能则启动中断服务例程。它是只读寄存器,必须通过对I_ISPC或F_ISPC置1来清除。当中断掩码寄存器的某位置1后表明对应中断被关闭。如果加码位被旧1而相应中断请求产生后,对应挂起位将被置1

33、,但该中断不被响应。中断设置相关的寄存器如下:1) INTCON:使能IRQ向量模式、使能IRQ和FIQ到CPU的中断请求线。其设置和位描述如表6-1所示。表 6-1INTCON 寄存器的位描述INTCONINTCON位描述初始化状态Reserkred300V V这个位使能禁止 IRQ 的向量模式0=向量中断模式H 非向最中断模式1 1I I这个位使能 IRQ 中断请求线路到仃口0=工 RQ 中断使能保留注意:在使用 IRQ 中断前,这个位清零“1 1F F。 这个位使能 FIQ 中断请求线路到 CPUO=FIQ 中断使能 f 不允许向量中断模式)1=保留注意:在使用 F1Q 中断前百己必须清

34、零.1 12)INTPND:其设置如表6-2所示表 6-2INTPND 寄存器的设置寄存需地址描述融位值rXTPNDOOIEO(_ISR_STARTADDRESS+0 x18其中的宏SR_STARTADDRESS的定义在option.h文件中:#define_ISR_STARTADDRESS0 xc7fff00这就意限着HandleIRQ和pISR_IRQ有着特殊的关系,前者是地址,后者是这个地址上的内容,也就是说pISR_IRQ标可认为是中断服务程序的地址了。在UHAL.C中有这个函数voiduHALr_InterruptRequestInit(用来初始化中断。其中有:pISR_IRQ=(u

35、nsignedIRQ_Handler。而IRQ_Handler又回至U了OBank的ROM中,在44BINIT.S中有:IRQ_HandlerIMPORTISR_IrqHandlerSTMFDsp!,rO-r12,lrBLISR_IrqHandlerLDMFDsp!,rO-r12,lrSUBSpc,lr,#4EXPORTIRQ_Handler从这段汇编程方看出,控制又转移到了ISR_IrqHandler上,这是IRQ的中断服务程序,定义在ISR.C中:voidISR_IrqHandler(intIntOffset。IntOffset=GetISROffsetClr(。得到中断向量的偏移地址(*

36、InterruptHandlersIntOffset(。/运行中断服务程序其中GetISROffsetClr(定义如下:intGetISROffsetClr(计算中断的偏移地址,高位优先inti,ispr=rI_ISPR,tmp=1。/tempbitfor(i=MAXHNDLRS。i0。i-if(ispr&tmprI_ISPC=tmp。returni-1。tmp=1。)return-1。)实际上这段程序就是软件优先级算法,通过查看I_ISPR寄存器,决定应该执行的真正的对应于具体中断的中断服务程序。并使用rI_ISPC寄存器清除中断挂起位。而(*InterruptHandlersIntOffs

37、et(。则是把控制最终转移到了ISR上。然而,实际的ISR是如何和这套极其复杂的中断响应过程发生关系的呢?这里用SetISR_Interrupt(函数把用户编写的ISR设置在中断系统上,也就是把ISR的函数指针存放到数组InterruptHandlers口里, 有中断请求时GetISROffsetClr(会在该数组里找到它的。五、实验步骤1 .编写定时器的初始化等控制函数,因为平台上定时器0、1、2都分配给了电机控制,这里选择定时器3,编程主要针对Timer3。2 .编写定时器中断服务程序,完成对中断次数的计数。3 .编写中断初始化等函数,这里打开或关闭中断分为两个层面,其一是针对程序状态字P

38、SR的,用汇编语言编写如下:INTS_OFFmrsr0,cpsr。当前CSR寄存器movr1,r0。拷贝CSR寄存器到r1中orrr1,r1,#0 xC0。屏蔽中断位msrCPSR_cxsf,r1。关闭ints(IRQ和FIQandr0,r0,#0 x80。从原csr寄存器返回FIQ位movpc,lro返回INTS_ONmrsr0,cpsr。当前CSR寄存器bicr0,r0,#0 xC0。开启中断位msrCPSR_cxsf,r0。使能中断(IRQ和FIQmovpc,lro返回另一个层面就是对INTCON和INTMSK寄存器的操作了。六、思考题1.如何利用前面几次实验内容,在本实验的中断服务程序

39、中加入相应代码让在PE6上的LED按一定规律闪亮?实验七键盘及LEDLED驱动实验一、实验目的2.学习键盘及LED驱动原理。3 .掌握ZLG7289A芯片的使用方法。二、实验内容通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示三、实验设备及工具1 .硬件:UP-NETARM3000实验箱、JTAG仿真器、PC机。2 .软件:PC机操作系统WinXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验原理ZLG7289A是一片具有串行接口的,可同时驱动8位共阴式数码管或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,

40、单片即可完成LED显示、键盘接口的全部功能。其主要特点如下:a.串行接口无需外围元件可直接驱动LED。b.各位独立控制译码/不译码及消隐和闪烁属性。c.循环)左移/循环)右移指令。d.具有段寻址指令方便控制独立LED。e.键盘控制器内含去抖动电路。ZLG7289A的引脚说明如表7-1所示:表 7-1ZLG7289A 引脚说明引脚引脚名称名称说明说明1 1,2,2VDDVDD正电源3,53,5悬空4 4侬接地6 6/CS片选输入端,此引脚为低电平时,可向芯片发送揖令及读取键盘数据了CLKCLK同步时钟输入端.向芯片发送救据及读取键盘数据时.此引脚电平上升沿表示贰据有效据有效8 8DATADATA

41、市行数据输入/输出端,当芯片接收指令时此引晦为输人端,当读取键盘数据时此引脚在该指令最后一个时钟的下降沿变为输出端9 9/KEY/KEY按键有效输出端*平时为高电平,当检测到有效按键时,项取变为低电平10-1610-16SG-SASG-SA段号一段已驱动输出1717DPDP小数点驱动输出18-2518-25DrGC-DIG7DrGC-DIG7颍字 0 一数字装劭轮出0SC2振荡器输出端ZLG7289A的控制指令分为二大类一一纯指令和带有数据的指令:1 .纯指令1)复位清除)指令,如表7-2所示:表 7-2 复位指令格式D7D7D6D6D5D5D4D4D3D3D2D2D1D1DODO101 1O

42、 OO O10O O当ZLG7289A收到该指令后,将所有的显示消除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。2)测试指令,如表7-3所示:表 7-3 测试指令格式D7D7D6D6D5D5D4D4D3D3D2D2D1D1DODO1O O1 1111 111该指令使所有的LED全部点亮,并处于闪烁状态,主要用于测试3)左移指令,如表7-4所示:表 7-4 左移指令格式D7D7D6D6D5D5D4D4D3D3D2D2D1D1DODO1 10 010 00 0O O1使所有的显示自右向左从第1位向第8位)移动一位包括处于消隐状态的显示位),

43、但对各位所设置的消隐及闪烁属性不变。4)右移指令,如表7-5所示:表 7-5 右移指令格式D7D7D6D6D5D5D4D4D3D3D2D2DIDIDODOI0 0I I0 00 00 0U U0 0与左移指令类似,但所做移动为自左向右从第8位向第1位)移动,移动后,最左边一位为空。5)循环左移指令,如表7-6所示:表 7-6 循环左移指令格式D7D7D6D6D5D5D4D4D3D3D2DIDIDODOI I0 01 10 00 00 01 1I I与左移指令类似,不同之处在于移动后原最左边一位第8位)的内容显示于最右位第1位)。6)循环右移指令,如表7-7所示:表 7-7 循环右移指令格式D7

44、D70606D5D5D4D4口口 3 3D2D2DIDIDODO1 1O O1 1O OO O0 01 10 0与循环左移指令类似,但移动方向相反。2 .带有数据的指令1)下载数据且按方式0译码,其指令与数据格式如表7-8所示:表 7-8 下载数据具按方式 0 译码的指令与数据格式其中X表示无影响。命令由二个字节组成,前半部分为指令,其中a2,a1,a0为位地址,d0-d3为数据,收到此指令时ZLG7289A按表7-9译码方式0)进行译码。表 7-9 译码方式 0D7D7D6D6D5D5D4D4D3D3D2D2DIDIDODO10 00 00 00 0alalatat) )D7D7D6D6D5

45、D5D4D4D3D3D2D2DIDIDODODPDPX XX XX Xd3d2dldOdodod3d3(十六进制:d2d2dldldodo7 7段显示00H0 00 00 00 00 001H01H0 00 00 01 11 102H0 00 0L L0 0203H03H0 0Q QI IL L3 304H0 01 10 00 04 405H05H0 01 10 01 15 506H06H0 0I1 16 607H0 01 1I II I7 703H03HJ J0 00 00 08UHHUHHL0 00 01 19 9OAHOAHL0 01 10 0OBHOBH1 10 01 1I IEOCH

46、OCH110 00 0IIIIODHODH1I0 0; ;L LOEH t tI I0 0P POFHLI I1 1I I空无显示小数点的显示由DP位控制,DP=1时小数点显示,DP=0时小数点不显示2)下载数据且按方式1译码,其指令与数据格式如表7-10所示:表 7-10 下载数据且按方式 1 译码的其指令与数据格式其中X表示无影响。此指令与上一条指令基本相同,所不同的是译码方式,该指令按16进制进行译码,对应显示为“0F”。3)下载数据但不译码,其指令与数据格式如表7-11所示:表 7-11 下载数据但不译码的指令与数据格式D6D6%D4D4D3D3D2D2DlDlDODOD7D70606

47、D5D5D4D40303D2D2DlDlDODO0 00 00 0a2a2alalaUaUACE EF FG G其中,a2,a1,a0为位地址,A-G和DP为显示数据,分别对应7段LED数码管的各段。当相应的数据位为“1”时,该段点亮,否则不亮。4)闪烁控制,如表7-12所示:表 7-12 闪烁控制指令格式D7D7试试D5D5D4D4D3D3D2D2DlDlDODOD7D7D6D6D5D5D4D4D3D3D2D2DlDlDODOJ0 00 001 10 00q q胡d d7 7d6d6d5d d4 4d3d3d2d2此命令控制各个数码管的闪烁属性,d1-d8分别对应数码管1-8,0=闪烁,1=

48、不闪烁。开机后,缺省的状态为各位均不闪烁。5)消隐控制,如表7-13所示:表 7-13 消稳控制指令格式D7D7D6D6D5D5D4D4D3D3D2D2DlDlDODOD7D7D6D6D5D5第D3D3D2D2DlDlDODO1000d8J J7 7d6dld2dl此命令控制各个数码管的消隐属性。d1-d8分别对应数码管1-8,1=显示,0=消隐。当某一位被赋予了消隐属性后,ZLG7289A在扫描时将跳过该位,因此在这种情况下无论对该位写入何值,均不会被显示,但写入的值将被保留,在将该位重新设为显示状态后,最后一次写入的数据将被显示出来。当无需用到全部8个数码管显示的时候,将不用的位设为消隐属性,可以提高显示的亮度。注息D7D7D6D6D5D5M MD3D3D2D2DlDlDODO1 1001 1a2a2alD7D7D6D6D5D5D

温馨提示

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

评论

0/150

提交评论