32位的单片机内部各种数据寄存器和控制寄存器都是32位的,同理,8位单片机内部的数据和控制寄存器都是8位的。
例如:
AT89C51单片机的“中断控制寄存器”IE定义如下图所示:
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
EA | 保留 | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
LPC1114的“AHB总线时钟控制寄存器”SYSAHBCLKCTRL定义如下图所示:
bit31 | bit30 | bit29 | bit28 | bit27 | bit26 | bit25 | bit24 |
保留 | 保留 | 保留 | 保留 | 保留 | 保留 | 保留 | 保留 |
bit23 | bit22 | bit21 | bit20 | bit19 | bit18 | bit17 | bit16 |
保留 | 保留 | 保留 | 保留 | 保留 | SSP1 | 保留 | IOCON |
bit15 | bit14 | bit13 | bit12 | bit11 | bit10 | bit9 | bit8 |
WDT | 保留 | ADC | UART | SSP0 | CT32B1 | CT32B0 | CT16B1 |
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
CT16B0 | GPIO | I2C | FLASH2 | FLASH1 | RAM | ROM | SYS |
以上两个控制寄存器,一个是8位的,一个是32位的,它们的相同之处都是每一位决定了一项任务。例如,给AT89C51单片机的IE寄存器的bit4写1可以打开串口中断,写0可以关闭串口中断。给LPC1114单片机的AHBCLKCTRL寄存器的bit6写1表示打开GPIO的工作时钟,写0表示关闭GPIO的工作时钟。
上面所讲的IE寄存器,可以用IE=0x80开启总中断,也可以直接写EA=1开启总中断。用EA=1来开启的方式就是“位操作”。“位操作”与直接写寄存器值相比,直接写寄存器将会改变整个寄存器的值,而“位操作”不会改变寄存器中的其它值。
LPC1114单片机的寄存器不支持“位操作”,为了使得操作某位的同时,不影响其它位的值,我们需要运用一下C语言的逻辑“或”“与”操作。
例如:
对SYSAHBCLKCTRL寄存器的bit6写1:
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<6);
对SYSAHBCLKCTRL寄存器的bit6写0:
LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<6);
在头文件lpc11xx.h中,各个寄存器是由各个模块的结构体定义的,所以我们要给某个寄存器写值的时候,要用到给结构体成员变量赋值符号“->”。上式中,SYSAHBCLKCTTL寄存器位于结构体LPC_SYSCON,所以给寄存器赋值的时候,要这么写。
1<<6就是1向左移6下的意思,即:
32位数1用二进制表示00000000000000000000000000000001
32位数1左移6下以后为00000000000000000000000001000000
把这个左移好的数据与SYSAHBCLKCTRL中的值“或”一下,“或”的逻辑为0“或”任何数都是任何数,1“或”任何数都是1,所以结果只把bit6置1.
同理,可以分析一下给bit6写0的语句。都是C语言的基础知识。请相信,高手并不是拥有了特殊的技能,而是掌握了扎实的基础。
特别提示:上述两条写寄存器的语句,初看有些复杂,实则简单至极!当我们以后要给某个寄存器的某个位写值的时候,例如,要给AA模块的BB寄存器的bit n写1,套用上式,即:
AA->BB |=(1<同理,要给bit n写0,即:
AA->BB&=~(1<亲!恭喜你,你已经学会一大半了。
关键字:arm cortex lpc1114 寄存器配置
引用地址:
arm cortex m0 lpc1114寄存器配置
推荐阅读最新更新时间:2024-03-16 15:24
ARM大势所趋,除了苹果外我们将会看到何种PC
去年冬天,苹果的 Apple Silicon 让我们见识到了 ARM 芯片的无限潜力,相比起 x86 平台,ARM 显然已成为先进生产力的代表,最起码是未来的趋势没跑了。苹果有着强大的软硬件整合能力,在转向 ARM 这条快车道上走得很顺利,但相比之下,扎根太深的 PC 实在是难以脱身,前有英特尔后有高通,多次与微软联手都没见成效。但 PC 迈向 ARM 并非就完全没有希望,只是可能需要一些‘新鲜血液’来推动。 英伟达带来了全新的‘核武器’ 前几天,在英伟达一年一度技术大会(GTC)上,黄仁勋像以往一样身着黑色皮衣出现在自家厨房,不过,这次他并没有带来全新显卡,而是发布了一款基于 ARM 架构的处理器,官方依旧采用历史
[手机便携]
ARM处理器中断处理的编程实现
ARM处理器中断处理的编程实现arm编程特别是系统初始化代码的编写中通常需要实现中断的响应、解析跳转和返回等操作,以便支持上层应用程序的开发,而这往往是困扰初学者的一个难题。中断处理的编程实现需要深入了解arm内核和处理器本身的中断特征,从而设计一种快速简便的中断处理机制。需要说明的是,具体的上层高级语言编写的中断服务函数不在本文的讨论范围之内。 arm处理器异常中断处理概述 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场。从异常中断处理程序退出时,要恢复被中断的程序的
[单片机]
基于ARM和μC/OS-II的车载定位终端的设计
为了达到节省能源、降低排放的目标,电子控制技术在货车、工程车以及农用车的柴油机上得到快速发展和应用。随着机车电控化技术发展,车载定位终端的数据采集交互速度以及运行的稳定性已成为衡量该设备的一个重要指标。为进一步提升车载定位终端的实时性和稳定性,文中设计了一种基于ARM处理器和 C/OS II操作系统的车载定位终端。应用ARM处理器实现数据交互的高速性,应用 C/OS II操作系统解决程序运行的稳定性问题。 1 、车载终端整体结构及功能介绍 车载定位终端主要由CPU(包括S3C44BOX芯片,2MbyteNorFlash和8MByteSDRAM),GPS卫星数据接收电路,GPRS无线数据上传电路和CAN控制器及数据收发模
[单片机]
基于ARM微处理器的嵌入式温度调节器设计
本文针对无影照明系统中色温控制的难题,设计了一种基于ARM微处理器的嵌入式温度调节器,整个智能温度控制器由微控制器、数字显示模块、温度传感器、PWM加热模块、时钟电路等多个部件组成,设计了其中的PID调节电路、串口通信电路、微控制器外围通信接口、PWM加热控制电路以及软件模块,并搭建起整个软硬件系统。最后进行了实验和验证,结果表明,该嵌入式PID温度控制器能够满足设计要求,具有良好的调节精度,并保持恒温控制特性,可以投入实际应用。 温度控制器是一种重要的控制设备,在性能要求敏感的家用电器中,温度控制器是必备的控制系统之一,其在大型工业和日常生活等领域都具有广阔的应用前景。很多应用领域,需要精度较高的恒温控制,例如,根据
[单片机]
一种嵌入式网络视频监控系统的硬件设计
一、引言 应用嵌入式网络技术的监控系统是监控领域最新的发展趋势,嵌入式网络监控系统是电子技术、计算机技术、通信技术和自动化技术快速发展并相互结合的高新技术产品,嵌入式网络技术改变以往的监控系统体系结构,满足了现代监控系统的可扩展性、分布式、实时性等,可广泛应用在电信、电力、交通、银行、水利、智能大厦等领域。正是在这一背景下,本文设计了一种嵌入式网络化视频监控系统,该系统在32位高性能嵌入式处理器和专用视频压缩芯片的硬件平台上,采用MPEG-4编码技术,嵌入式Linux操作系统和流媒体技术进行设计。利用本系统可以进行网络数字化视频监控,具有体积小、图像质量稳定、远距离监控等优点,具有良好的应用与发展前景。 本文从视频监控技术
[单片机]
ARM微处理器的指令集概述(一)——ARM应用系统开发详解笔记
ARM微处理器的指令集概述 ARM指令集是加载/存储型的,就是说指令集仅仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。 ARM微处理器的指令集可以分为六大类 跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令。 一 指令的条件域 当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。每一条ARM指令包含4位的条件码,位于指令的最高4位 。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的
[单片机]
用ARM微处理器实现三导联远程心电监护系统
1 引 言 随着人们生活水平的提高、生活节奏的加快,心血管疾病的发病率迅速上升,已成为威胁人类身体健康的主要因素之一。而心电图则是治疗此类疾病的主要依据,具有诊断可靠,方法简便,对病人无损害的优点,在现代医学中,变得越来越重要。常规心电图是病人在静卧情况下由心电图仪记录的心电活动,历时仅为几s~1 m,只能获取少量有关心脏状态的信息,所以在有限时间内即使发生心率失常,被发现的概率也是很低的。因此有必要通过相应的监护装置对患者进行长时间的实时监护,记录患者的心电数据。又由于心脏病的发生具有突发性的特点,患者不可能长时间地静卧在医院,但又需实时得到医护人员的监护,所以研发相应的便携式无线心电监护产品就显得更加重要。
[单片机]
基于ARM的高速数据采集卡
1 引言 随着现代工业生产和科学研究对数据采集要求的日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要高速采集数据。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装复杂,价格昂贵,受计算机插槽数量、地址、中断资源限制,可扩展性差,在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。 本数据采集卡采用Philips公司的LPC2142微控制器(基于ARM7内核,内置了宽范围的USB 2.0串行通信接口),有效地解决了传统高速数据采集卡的缺陷。 2 基于ARM的数据采集卡原理 本系统主要由双通道模/数转换器AD9238、ARM微控制器及FPGA器件EP1C3T100组
[应用]