嵌入式led控制实验报告(嵌入式系统由嵌入式硬件)

《ARM嵌入式系统与应用实验报告》由会员分享,可在线阅读,更多相关《ARM嵌入式系统与应用实验报告(26页珍藏版)》请在人人文库网上搜索。1、信息科学与技术系ARM嵌入式系统与应用实验报告专业班级____电信0803班__________学号____________姓名______________实验老师_____________总成绩________________…

大家好,又见面了,我是你们的朋友全栈君。

《ARM嵌入式系统与应用实验报告》由会员分享,可在线阅读,更多相关《ARM嵌入式系统与应用实验报告(26页珍藏版)》请在人人文库网上搜索。

1、信息科学与技术系ARM嵌入式系统与应用实验报告专业班级 ____电信0803班__________ 学 号 ____________ 姓 名 ___ ___________ 实验老师 ___ __________ 总 成 绩 _________________________20112012学年(1)实验一 通用 IO 口试验一、实验目的 熟悉ARM 芯片I/O口编程配置方法; 掌握ARM芯片I/O口控制LED显示的方法。 二、实验设备 硬件:嵌入式实验平台一套、仿真器一个、PC 机一台。 软件:Windows 98/2000/NT/XP 操作系统、仿真器驱动程序、ADS 开发软件一套。 三、。

2、实验内容 控制嵌入式实验箱上的LED轮流点亮。 四、实验原理 S3CRRB0X 芯片上共有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 )每组端口都可以通过软件配置寄存器来满足不同系统合设计的需要。在运行主程序之前,必须先对每一个用到的引脚的功能进行设置。如果某些引脚的附庸功能没有使用,那么可以先将该引脚设置为I/O口。 S3C44B0X芯片与端口相关的寄存器 (1)端口控制寄。

3、存器 (PCONAG):在S3C44B0X 芯片中,大部分引脚是使用多路复用的,所以要确定每个引脚的功能。PCONn(端口控制寄存器)能够定义引脚功能。如果 PG0PG7作为掉电模式下的唤醒信号,那么这些端口必须配置成中断模式。(2)端口数据寄存器 (PDATAG):如果端口定义为输出口,那么输出数据可以写入 PDATn中相应的位;如果端口定义为输入口,那么输入数据可以从PDATn 相应的位中读 入。 (3)端口上拉寄存器 (PUPCG):通过配置端口上拉寄存器,可以使该组端口与上拉 电阻连接或断开。当寄存器中相应位配置为0 时,该引脚接上拉寄存器;当寄存器中相应位 配置为1 时,该引脚不接上。

4、拉电阻。 (4)外部中断寄存器 (EXTINT ):通过不同的信号方式可以使8 个外部中断被请求。 EXTINT 寄存器可以根据外部中断的需求,将中断触发信号配置为低电平触发,高电平触发,下降沿触发,上升沿触发和边沿触发几种方式。 五、实验操作步骤 1启动ADS1.2,使用ARM Execuatable Image 工程模板新建一个工程; 2添加两个组INC 和SRC; 3将INC 文件夹下所有文件添加到组INC 中; 4将SRC 文件夹下所有文件添加到组SRC 中; 5建立源文件test5.C,编写实验程序,添加到工程中; 6编译链接选项的设置同前面实验; 7编译链接工程,点击Debug 按。

5、钮,启动AXD进行调试; 8连续点击step in按钮,单步运行程序,主板上的三个LED灯循环点亮。 9理解并掌握本实验原理及程序,完成练习题 六、实验参考程序 #include option.h #include def.h #include 44b.h #include 44blib.h void Isr_Init(void); void HaltUndef(void); void HaltSwi(void); void HaltPabort(void); void HaltDabort(void); void Main(void) rSYSCFG=SYSCFG_8KB; #if (PLL。

6、ON 1) ChangePllValue(PLL_M,PLL_P,PLL_S); #endif Isr_Init(); 中断初始化 Port_Init(); 端口初始化Uart_Init(0,); 波特率为Uart_Select(0); 选择串口0Delay(0); /calibrate Delay() 延时Led_Display(7); 0111三个灯全亮Delay(1000); /calibrate Delay() Led_Display(0); 三个灯全灭Delay(5000); /calibrate Delay() Led_Display(7); Uart_Printf(n start。

7、 n); 在终端打印startwhile(1) Delay(5000); /calibrate Delay() Led_Display(1); 点亮第一个灯,其他灭Delay(5000); /calibrate Delay() Led_Display(2); 点亮第二个灯,其他灭Delay(5000); /calibrate Delay() Led_Display(4); 点亮第三个灯,其他灭 void Isr_Init(void) U32 i; pISR_UNDEF=(unsigned)HaltUndef; pISR_SWI =(unsigned)HaltSwi; pISR_PABORT=(。

8、unsigned)HaltPabort; pISR_DABORT=(unsigned)HaltDabort; for(i=_RAM_STARTADDRESS;iTp。在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在Tp时刻修改定时器的计数值,定时器将在Ti时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。2.S3C44B0X的看门狗 1) S3C44B0X看门狗的功能S3C44B0X的看门狗定时器有两个功能:(1)定时器功能:可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT。(2)复位功。

9、能:作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周期的复位信号。2) S3C44B0X看门狗结构与工作原理S3C44B0X ARM7的看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。图6-1 看门狗定时器的功能框图S3C44B0X看门狗定时利用MCLK作为时钟源,经过8位的预分频和4选1的2位分割之后得到所需频率。预分频值和频率分割值在看门狗定时器控制寄存器WTCON中配置。3) S3C44B0X看门狗定时时间u 预分频器为8位,其值为:0-255u 再分频器可选择值为:16、32、64、128u 输入到计数器的时钟周期为。

10、:T_wtd=1/PCLK/(Prescaler+1)/Division_factoru 看门狗的定时周期为:T=WTDATT_wtd注意:一旦看门狗的定时器启动工作,其数据寄存器(WTDAT)中的值将不会自动读到时间寄存器中间去(WTCNT)。由于这个原因,程序员必须在看门狗计时器启动之前,应该将一个初始值写入到看门狗的时间计数器(WTCNT)中间去。即先对时间计数器系初值,再启动看门狗工作。3. 看门狗专用寄存器共3个,其基地址为0x1D30000。寄存器描 述初值偏移地址WTCON看门狗控制寄存器0x80210WTDAT看门狗数据寄存器0x80004WTCNT看门狗计数寄存器0x8000。

11、81)看门狗控制寄存器(WTCON)RegisterOff AddR/WDescriptionReset ValueWTCON0R/W看门狗控制寄存器0x8021字段名位意 义初值Prescaler Value15:8预分频值。0-255。0x80Reserved7:6保留(为0)00Watchdog Timer5看门狗控制位。0:禁止;1:允许1字段名位意 义初值Clock Select4:3再分频值选择。 00:16;01:32;10:64;11:12800InterruptGeneration2看门狗中断控制。0:禁止; 1:允许。0Reserved1保留(为0)0ResetEnable。

12、0看门狗复位功能控制。0:禁止; 1:允许。12)看门狗数据寄存器(WTDAT)RegisterOff AddR/WDescriptionReset ValueWTDAT4R/W看门狗数据寄存器0x8000说明:(1)该数据寄存器为对看门狗计数器重装计数值。初始值为0x8000。(2)在初始化看门狗操作中,WTDATA 的值不会自动加载到定时计数器中。(3)在计数溢出后,WTDAT的值将被装载到WTCNT 寄存器中。3)看门狗计数寄存器(WTCNT)RegisterOff AddR/WDescriptionReset ValueWTCNT8R/W看门狗计数寄存器0x8000字段名位意 义初值C。

13、ount Value15:0看门狗的当前计数值0x8000说明:在计数中只能读,不能写(写不起作用)。五、实验操作步骤1、新建工程文件2、定义相关各寄存器地址和一些特殊的位地址,编写实验程序,然后添加到工程中去。3、选择project-Debug,启动AXD进行JTAG仿真调试。4、理解并掌握本实验原理及程序,完成思考题。#include option.h#include def.h#include 44b.h#include 44blib.hvoid Isr_Init(void);void HaltUndef(void);void HaltSwi(void);void HaltPabort(void); void HaltDabort(void);void __irq Wdt_Int(void);volatile int isWdtInt;void Main(void)unsigned char *src, *dst;int i;unsigned int memSum;rSYSCFG=SYSCFG_8KB;#if (PLLON=1)ChangePllValue(PLL_M,PLL_P,PLL_S);#endifIsr_Init(); 中断。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128888.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • qca wlan wifi modules 解析一

    qca wlan wifi modules 解析一分析lsdk-ap121lsdk-ap134源码:https://github.com/hades13/lsdk_ar9531包含wifidrivers另一wifidrivers版本:https://download.csdn.net/download/nolycjyf/3722308目录结果:appsbuilddriversincludemodulesbo…

  • ExtJs自学教程(1):一切从API開始

    ExtJs自学教程(1):一切从API開始

    2021年12月14日
  • 开机出现DISK BOOT FAILURE,INSERT SYSTEM DISK AND PRESS ENTER「建议收藏」

    开机出现DISK BOOT FAILURE,INSERT SYSTEM DISK AND PRESS ENTER「建议收藏」开机就出现DISKBOOTFAILURE,INSERTSYSTEMDISKANDPRESSENTER我的第一引导是从光驱,第二是从硬盘。以前是可以正常从硬盘启动的,突然发现这种现象。光驱里面没有光盘,为什么不能从硬盘启动了呢?开机滴的一声,应该是自检正常啊。打开BIOS查看了一下,好像也没动什么数据,打开机箱,把几个插头插紧了一下,(不记得做了哪些操作,反正没动内存

  • python官方库和第三方库_python 第三方库

    python官方库和第三方库_python 第三方库转载地址:http://www.cnblogs.com/YangtzeYu/p/7858182.html

    2022年10月14日
  • Scheduled失效原因[通俗易懂]

    Scheduled失效原因[通俗易懂]引言在一些业务场景中需要执行定时操作来完成一些周期性的任务,比如每隔一周删除一周前的某些历史数据以及定时进行某项检测任务等等。在日常开发中比较简单的实现方式就是使用Spring的@Scheduled(具体使用方法不再赘述)注解。但是在修改服务器时间时会导致定时任务不执行情况的发生,解决的办法是当修改服务器时间后,将服务进行重启就可以避免此现象的发生。本文将主要探讨服务器时间修改导致@Schedu…

  • js 删除对象里的某个属性[通俗易懂]

    删除属性有很多方法,学到了就在这里记录一下。有一个对象a。有2个属性b=1,c=2删除b,保留c1.使用deleteleta={b:1,c:2}deletea.b//trueconsole.log(a)//{c:2}2.使用解构leta={b:1,c:2}let{b,…a}=aconsole.log(a)//{c:2}…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号