浙江工业大学 嵌入式系统原理实验(1-8).doc

浙江工业大学 嵌入式系统原理实验(1-8).doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浙江工业大学 嵌入式系统原理实验(1-8)

嵌入式实验(1-8) 第一次实验 1. 用汇编语言编程实现:若R0=0,则转移到标号L0处;若R0=1,则转移到标号L1处;若R0=2,则转移到标号L2处。否则不转移。 2. 用汇编语言编程实现128位整数减法。 3. 用汇编语言编程实现:有4个数分别存放在R0~R3中,编程实现:4数相乘,其积存放在R4中。 4. 用汇编语言编程实现:R0中的高24位[31:8]保持不变,低8位[7:0]设置为0xB。 5. 用汇编语言编程实现:快速中断的使能和禁止。 第二次实验 1. 用汇编语言编程实现:将存储器中起始地址M1处的4个字数据复制到地址M2处。 2. 用汇编语言编程实现:100+101+102+…+200,其和存于R0。 3. 用汇编语言编程实现:从存储器中起始地址M1处的20个字节数据中,找出一个最小数存放在R0中。 4. 利用跳转表的思想编写一个汇编子程序,根据键入的值(存放在R0中)不同来完成不同的子程序跳转(假设有四个子程序SUB0、SUB1、SUB2、SUB3)。 第三次实验 1 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成字符串STR1与STR2内容的互换(假设STR1和STR2长度一致)。 2. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,将输入的20个字节数据,从大到小加以排序,大数在前,小数在后。 3. 用C语言和汇编语言混合编程实现:用汇编语言完成对C语言全局变量的访问。假设CVAR1和CVAR2是C语言中定义的全局变量,请用一段汇编语言访问它们,完成两者的相加运算,结果存放在CVAR1中。 第四次实验 1. 用C语言和汇编语言混合编程实现:在C语言程序中调用汇编语言代码,完成两个字符串的比较,并返回比较结果。如果比较字符串相同,返回1,否则返回0。 2. 用C语言和汇编语言混合编程实现:请完成一段字符串“Hello Zhejiang University of Technology!”的拷贝,要求主程序用Cexamples\CH3\INT\FIQ\SRC文件夹中的TARGET.C文件至工程文件夹并加载入工程中,启动代码Startup.s需要修改三处。 1) 将:SWI-Handler B SWI-Handler 替换 2) 将 FIQ_Handler B FIQ_Handler 替换 3) 在Startup.s的最开始出加入一条语言: IMPORT FIQ_Exception ;注意这条语句不能顶格写 第七次实验:中断实验2 设计:设置P0.16管脚为EINT0,采用向量IRQ中断,低电平触发,连接一个按键KEY1,设置P0.14管脚为EINT1,采用快速中断,低电平触发,连接一个按键KEY2,在P0.0和P0.1处各连接1个LED灯,使得每按一下KEY1,LED1的状态改变一次,每按一下KEY2,LED2的状态改变一次,要求LED1和LED2的状态互不影响。 第八次实验:定时器实验 1.验证:在KEIL UVISION4和PROTEUS 7平台下验证P158页例4-9“利用定时器T0以查询方式实现0.5s定时”和P159页例4-10“利用定时器T0匹配中断方式实现0.5s定时”。 2.设计:利用定时器T0查询方式实现LED1灯(连接在P0.3管脚)0.5s定时点亮或熄灭;同时,利用定时器T1匹配中断方式实现LED2灯(连接在P0.15管脚)1s定时点亮或熄灭,并匹配输出到LED3灯(连接在P0.12管脚),使LED3实现定时点亮或熄灭。 实验中需注意问题: 1. 验证P158页例4-9的过程中,三个问题需要注意: 1) main函数中的语言PINSEL1=0替换为PINSEL0=0为什么? 2) 电路图中的电源String值应改为“+3.3v”。 3) 实验仿真结果中,似乎LED点亮熄灭间隔时间要长于0.5s,要想缩短间隔时间可修改T0MR0的值,为什么? 2. 验证P159页例4-10的过程中,若干问题需要注意: 1)将:SWI-Handler B SWI-Handler 替换 3)main函数中语句PINSEL1=0去掉,为什么? 4)IRQ_Time0子程序中:将T0IR = 0x02 改为T0IR = 0x01,为什么? 5)Time0Init()子程序中: T0MCR = 0x033 改为 T0MCR = 0x03 去掉语言T0MR1 = 60024 T0IR = 0x02改为T0IR = 0x01 为什么?

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档