ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:21.14KB ,
资源ID:5241444      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5241444.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM开发实践实验报告册s3c2440.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM开发实践实验报告册s3c2440.docx

1、ARM开发实践实验报告册s3c2440电子科技大学成都学院实验报告册 课程名称: ARM开发试验 姓 名: 学 号: 院 系: 微电子技术系 专 业:集成电路设计与集成系统(嵌入式) 教 师: 2014年 6 月 20 日 实验一: S3C2440 I/O口控制 一、 实验目的:在ADS软件上进行编程,让TQ2440开发板上的4个LED灯同时亮和灭,两者之间有一定的延时。二、实验原理和内容:LED通过电源,限流电阻与ARM的I/O口为低电平时,电源会通过LED限流电阻往ARM里灌流,点亮LED,反之I/O口为高电平时,则LED不会亮,注意亮灭之间要有一定的延时(大于人眼分辨率大概十几毫秒),以

2、便人眼能够区分出亮灭。三、实验步骤:1.首先在ADS上建立一个工程,工程名为LED,然后选择一个和适的路径存放。2.将光盘中TQ2440测试程序里面inc和src文件夹下的2440addr.h,2440lib.h,2440slib.h,def.h,Nand.h,Option.h,2440addr.inc,Mencfg.inc,Option.inc,2440init.s,2440slib.s,2440lib.c,nand.c这13个文件依次拷贝到刚才建立工程的文件夹下。3.新建一个源文件,命名为LED.c,存放到工程名为LED的文件夹下。4.在LED.mcp下创建一个分组,取名为startcod

3、e,然后将前面拷贝的3个文件夹2440init.s,2440slib.s,nand.c依次添加到以startcode命名的文件夹下。5.将LED.c添加到工程里面去。6.配置Debugrel Settings。7.在LED.c里面进行程序的书写。8.编译所写程序。9.将开发板,仿真器和电脑正确连接,打开Hjtag软件,调试程序。10.观察开发板上的LED亮灭情况。四、实验数据和结果:4个LED灯同时亮和灭。5、实验总结:通过此次试验我掌握S3C2440 I/O寄存器的配制方法。 并且灵活运用I/O寄存器。基本熟悉ADS的使用。六、程序代码#include2440addr.hvoid Delay

4、(unsigned int x) /延时函数 int i,j; for(i=0;ix;i+) for(j=0;jx;j+) ;void Main() rGPBCON=0x15400; /GPB寄存器配置 rGPBDAT=0X1e0; rGPBUP=0x7ff; while(1) rGPBDAT=0X0; Delay(10000); rGPBDAT=0X1e0; Delay(10000); 实验二: S3C2440定时器中断控制一、实验目的:用S3C2440的定时器4来精确定时1s,让开发板的蜂鸣器每隔2s响一次,持续时间是0.5s,蜂鸣器响的同时伴随着LED亮。2、实验原理和内容:1.时钟源设

5、置:由开发板原理图可知,OM3和OM2都为低,外部晶振为12MHZ,所以该开发板的时钟源和USB时钟源都是12MHZ的晶振。2.锁相环(PLL):Mpll=(2*m*Fin)/(p*2s)m=M(分频器M的值)+8,p=P(分频器P的值)+23.FCLK,HCLK和PCLK:FCLK:内和时钟。HCLK:AHB。PCLK:APB。4.时钟发生器和电源管理特殊寄存器:三、实验步骤:1.首先在ADS上建立一个工程,工程名为timer_buzzer_led,然后选择一个和适的路径存放。2.将光盘中TQ2440测试程序里面inc和src文件夹下的2440addr.h,2440lib.h,2440sli

6、b.h,def.h,Nand.h,Option.h,2440addr.inc,Mencfg.inc,Option.inc,2440init.s,2440slib.s,2440lib.c,nand.c这13个文件依次拷贝到刚才建立工程的文件夹下。3.新建一个源文件,命名为timer_buzzer_led.c,存放到工程名为timer_buzzer_led的文件夹下。4.在timer_buzzer_led.mcp下创建一个分组,取名为startcode,然后将前面拷贝的3个文件夹2440init.s,2440slib.s,nand.c依次添加到以startcode命名的文件夹下。5.将timer_

7、buzzer_led.c添加到工程里面去。6.配置Debugrel Settings。7.在timer_buzzer_led.c里面进行程序的书写。8.编译所写程序。9.将开发板,仿真器和电脑正确连接,打开Hjtag软件,调试程序。10.观察开发板上的led亮灭情况及蜂鸣器的发声。四、实验数据和结果:蜂鸣器每隔2S响一次,持续时间是0.5S,蜂鸣器响的同时伴随着LED亮。五、实验总结:通过此次试验我掌握S3C2440 I/O寄存器的配制方法,中断寄存器的配置,定时器中断控制I/O寄存器。六、程序代码#include 2440addr.hvoid Led_Init(void) /led 初始化

8、rGPBCON &= (3 10); rGPBCON |= (110) ; rGPBUP &= (1 5) ;rGPBDAT |= (1 5);void Timer4_Init(void) rTCFG0 &= 0x0; rTCFG0 |= 99 ; rTCFG1 &= (0xf) ; rTCFG1 |= 0x02 ; rTCNTB04= 125000 ;/2s中断一次 rTCON |= (1 1) ; rTCON = 0x09 ; void Beep_Init(void) /蜂鸣器初始化 rGPBCON &= (3 0) ; rGPBCON |= (10) ; rGPBUP &= (1 0)

9、; rGPBDAT &= (1 0);void Timer0_Interrupt_Init(void) /中断服务函数 rINTMSK &= (1 10) ;实验三 PWM1、实验目的:用PWM来驱动蜂鸣器,并通过改变脉宽来改变蜂鸣器的发生频率,脉宽从低到高,再从高到低,周而复始。并利用4个LED来指示脉宽的高低,最高时全亮,最低时全灭。2、实验原理和内容:S3C2440一共有5个16位的定时器,其中4个定时器具有脉宽调制功能因此用S3C2440可以很容易的实现PWM功能。三、实验步骤:1.首先在ADS上建立一个工程,工程名为PWM,然后选择一个和适的路径存放。2.将光盘中TQ2440测试程序

10、里面inc和src文件夹下的2440addr.h,2440lib.h,2440slib.h,def.h,Nand.h,Option.h,2440addr.inc,Mencfg.inc,Option.inc,2440init.s,2440slib.s,2440lib.c,nand.c这13个文件依次拷贝到刚才建立工程的文件夹下。3.新建一个源文件,命名为PWM.c,存放到工程名为PWM的文件夹下。4.在PWM.mcp下创建一个分组,取名为startcode,然后将前面拷贝的3个文件夹2440init.s,2440slib.s,nand.c依次添加到以startcode命名的文件夹下。5.将PWM

11、.c添加到工程里面去。6.配置Debugrel Settings。7.在PWM.c里面进行程序的书写。8.编译所写程序。9.将开发板,仿真器和电脑正确连接,打开Hjtag软件,调试程序。10.观察开发板上的led亮灭情况及蜂鸣器的发声。四、实验数据和结果:依次亮到全亮,再依次灭,到全灭。五、实验总结:通过此次试验我掌握S3C2440 外部中断的工作原理,熟练掌握了外部中断来控制其他资源。六、程序代码#include2440addr.hvoid clk_div() /配置时钟分频 rMPLLCON = (12712)|(24)|1; rCLKDIVN = (21)|1;void Delay(un

12、signed int data) /定义延时函数 unsigned int i,j; for(i = 0;i data;i+) for(j = 0;j data;j+);void Timer0_Init() /定时器0初始化 rTCFG0 &= 0xffff00; rTCFG0 |= 249; rTCFG1 &= 0xfffff0; rTCFG1 |= 2; rTCNTB0 = 25000; rTCON &= 0xf; rTCON |= 0xf; rTCON &= 0x2; void Main() int freq; freq = 0; clk_div(); Timer0_Init(); rG

13、PBCON = 0x15400; /LED初始化 rGPBDAT = (15)|(16)|(17)|(18); rGPBUP = 0x7ff; rTCMPB0 = freq; while(1) /while(1)死循环 for(;freq24000;) freq=freq+1000; rTCMPB0=freq; Delay(500); if(freq = 3000) /依次判断,并操作LED灯 rGPBDAT = 0x0; /Delay(500); else if(freq = 9000) rGPBDAT=(15)|(16)|(17); /Delay(500); else if(freq =

14、15000) rGPBDAT=(15)|(16); /Delay(500); else if(freq = 20000) rGPBDAT=(11000;) freq=freq-1000; rTCMPB0=freq; Delay(500); if(freq = 3000) rGPBDAT = 0x0; /Delay(500); else if(freq = 9000) rGPBDAT=(15)|(16)|(17); /Delay(500); else if(freq = 15000) rGPBDAT=(15)|(16); /Delay(500); else if(freq = 20000) rG

15、PBDAT=(15); /Delay(500); else if(freq = 23000) rGPBDAT=(0x0); /Delay(500); /减 实验四: S3C2440外部中断控制 2、实验目的:用S3C2440的外部中断来控制led灯的亮灭。开发板上共有4个按键,分别连接到了EINT0,EINT1,EINT2,EINT4。用这四个按键控制连接到GPB5GPB8上面的4个led灯,按一下按键,对应的led灯被点亮,再按下按键,对应的led灯灭。3、实验原理和内容:8个外部中断可以由多种信号触发方式所请求。EXTINT寄存器为外部中断配置信号触发方式为电平触发方式或边沿触发,同时还需

16、配置信号触发性。三、实验步骤:1.首先在ADS上建立一个工程,工程名为interrupt,然后选择一个和适的路径存放。2.将光盘中TQ2440测试程序里面inc和src文件夹下的2440addr.h,2440lib.h,2440slib.h,def.h,Nand.h,Option.h,2440addr.inc,Mencfg.inc,Option.inc,2440init.s,2440slib.s,2440lib.c,nand.c这13个文件依次拷贝到刚才建立工程的文件夹下。3.新建一个源文件,命名为interrupt.c,存放到工程名为interrupt的文件夹下。4.在interrupt.m

17、cp下创建一个分组,取名为startcode,然后将前面拷贝的3个文件夹2440init.s,2440slib.s,nand.c依次添加到以startcode命名的文件夹下。5.将interrupt.c添加到工程里面去。6.配置Debugrel Settings。7.在interrupt.c里面进行程序的书写。8.编译所写程序。9.将开发板,仿真器和电脑正确连接,打开Hjtag软件,调试程序。10.观察开发板上的led亮灭情况及蜂鸣器的发声。四、实验数据和结果:按一下按键,对应的led灯被点亮,再按下按键,对应的led灯灭。五、实验总结:通过此次试验我掌握S3C2440 外部中断的工作原理,熟

18、练掌握了外部中断来控制其他资源。六、程序代码#include2440addr.hvoid Delay(unsigned int data) /延时函数 unsigned int i,j; for(i = 0;i data;i+) for(j = 0;j data;j+);volatile int variable0;void clk_div() /配置时钟分频 rMPLLCON = (12712)|(24)|1; rCLKDIVN = (21)|1;void Timer0_Init() /定时器初始换函数 rTCFG0 &= 0xffff00; rTCFG0 |= 249; rTCFG1 &=

19、 0xfffff0; rTCFG1 |= 2; rTCNTB0 = 25000; rTCON &= 0xf; rTCON |= 0xf; rTCON &= 0x2; void _irq Timer0_1s(void) / 定时器0中断服务函数 rSRCPND = 0x400; rINTPND = 0x400; rGPBDAT = rGPBDAT; variable0 +;void _irq key4_LED(void) /按键4中断函数 rSRCPND |= 0x1; rINTPND |= 0x1; clk_div(); Timer0_Init(); rGPBDAT = rGPBDAT|(0x

20、15); while(variable0 = 0); variable0 = 0;void _irq key1_LED(void) /按键 1中断函数 rSRCPND = 0x2; rINTPND = 0x2; clk_div(); Timer0_Init(); rGPBDAT = rGPBDAT|(0x16); while(variable0 = 0); variable0 = 0;void _irq key3_LED(void) /按键3 中断服务函数 rSRCPND = 0x4; rINTPND = 0x4; pISR_TIMER0 = (int)Timer0_1s; clk_div()

21、; Timer0_Init(); rGPBDAT = rGPBDAT|(0x17); while(variable0 = 0); variable0 = 0;void _irq key2_LED(void) /按键2 中断服务函数 rSRCPND = 0x10; rINTPND = 0x10; rEINTPEND=0x10; pISR_TIMER0 = (int)Timer0_1s; /定时中断函数 clk_div(); Timer0_Init(); rGPBDAT = rGPBDAT|(0x18); while(variable0 = 0); variable0 = 0;void Main(

22、) variable0 = 0; /LED 初始化 rGPBCON = 0x15400; rGPBDAT = 0x1e0; rGPBUP = 0x7ff; rGPFCON = 0x22a; rINTMSK = (0x417); /中断使能,开中断 rSRCPND = 0x417; rINTPND = 0x417; rEXTINT0 = 0x0; rEINTMASK = (14); rEINTPEND = 0x10; pISR_EINT0 = (unsigned int)key4_LED; pISR_EINT1 = (unsigned int)key1_LED; pISR_EINT2 = (un

23、signed int)key3_LED; pISR_EINT4_7 = (unsigned int)key2_LED; while(1); 实验五: S3C2440看门狗控制 一、实验目的:使用看门狗定时器定时,当看门狗计数器减到0时,开发板开始复位。二、实验原理和内容:S3C2440的看门狗定时器是用于当其噪声和系统错误引起的故障干扰时恢复控制器的工作。它可以被用作通用16位内部定时器来请求中断服务。看门狗定时器产生128个PCLK周期的复位信号。三、实验步骤:1.首先在ADS上建立一个工程,工程名为watchdog,然后选择一个和适的路径存放。2.将光盘中TQ2440测试程序里面inc和s

24、rc文件夹下的2440addr.h,2440lib.h,2440slib.h,def.h,Nand.h,Option.h,2440addr.inc,Mencfg.inc,Option.inc,2440init.s,2440slib.s,2440lib.c,nand.c这13个文件依次拷贝到刚才建立工程的文件夹下。3.新建一个源文件,命名为watchdog.c,存放到工程名为watchdog的文件夹下。4.在watchdog.mcp下创建一个分组,取名为startcode,然后将前面拷贝的3个文件夹2440init.s,2440slib.s,nand.c依次添加到以startcode命名的文件夹

25、下。5.将watchdog.c添加到工程里面去。6.配置Debugrel Settings。7.在interrupt.c里面进行程序的书写。8.编译所写程序。9.将开发板,仿真器和电脑正确连接,打开Hjtag软件,调试程序。10.观察开发板上的led亮灭情况及蜂鸣器的发声。四、实验数据和结果:当看门狗计数器减到0时,开发板开始复位。五、实验总结:通过此次试验我掌握S3C2440 看门狗的工作原理,熟练掌握了看门狗来控制其他资源。六、程序代码#include2440addr.hvoid clk_div() rMPLLCON = (12712)|(24)|1; /FCLK=400MHz rCLKD

26、IVN = (21)|1; /FCLK:HCLK:PCLK =1:4:8void Delay(unsigned int x) int i,j; for(i=0;ix;i+) for(j=0;jx;j+); void _irq wtdog_ISR() rSRCPND = (19); rINTPND = (19); rSUBSRCPND =(113); rGPBDAT = (18); int Main() int i,light; light = 0x20; rGPBCON = 0x15400; rGPBDAT = (15)|(16)|(17)|(18); rGPBUP = 0x7ff; clk_

27、div(); rWTCON = (2498);/*|(33);/定时器的值*/ rWTDAT = 50000; /4s rWTCNT = 50000; rWTCON |= (15)|(12);/使能定时器和中断 rINTMSK = (19); rSRCPND = (19); rINTPND = (19); rINTSUBMSK = (113);/打开子中断,看门狗中断有两个子中断,INT_WDT(13bit),INT_AC97(14bit) rSUBSRCPND =(113); pISR_WDT_AC97 = (unsigned int)wtdog_ISR; while(1)/跑马灯 for(

28、i=0;i2;i+) rGPBDAT = light; light = light1; Delay(5000); for(i=0;i1; Delay(5000); 实验六: S3C2440 UART控制 1、实验目的:通过查询方式,在主程序内不断的查询UART端口,当有数据来时,就接受数据,并再通过UART发送数据,然后根据接受的数据的不同,分别执行不同的内容,如点亮,熄灭led,控制蜂鸣器响或不响。2、实验原理和内容: SPI,IIC和UART是最常见的三种串行总线,这三种总线都在S3C2440中被集成了。 UART用于异步通讯,可以实现全双工发送和接收。它不仅可以实现不同嵌入式系统之间的通讯,还可以实现与PC之间的通信。S3C2440的通

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1