首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C 语言操作寄存器开发

在使用C语言操作寄存器前,仍需要先分析《开发板原理图》和《参考手册》,从而得知需要操作哪些外设寄存器,假设读者已经了解需要操作哪些外设寄存器。...本章涉及的代码位于100ASK_STM32F103开发板资料的“5_程序源码\0_单片机开发模式的发展\2_C语言操作寄存器开发\”。...语言操作寄存器(main.c) #define RCC_APB2ENR (0x40021000 + 0x18) #define GPIOB_BASE (0x40010C00) #define GPIOB_CRL...以上代码就实现了对开发板三色灯的红色灯交替闪烁效果,读者可以打开配套资料的“5_程序源码\0_单片机编程模式的发展\ 2_C语言操作寄存器开发\ Project\Led_Reg.uvprojx”工程,编译...使用C语言后,只需定义指针变量指向对应寄存器,修改该指针变量的值,即可修改对应寄存器,操作上方便了很多。

57510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C51 单片机开发 AUXR 寄存器说明

    0x01:AUXR寄存器 在 STC-ISP 中有一条代码,是上篇文章没有讨论的代码,代码如下: AUXR &= 0x7F; 这条代码的注释是“定时器时钟12T模式”,但是这个寄存器的介绍我在手册上找的是这样的...,文档的 P33,截图如下: 看完这个图我就有一些郁闷,因为这个寄存器的第 2 到第 7 位都没有做任何的说明。...0x02:来自网上的 AUXR 的文档 为了能有个答案继续搜索一番,然后搜索到了如下图: 从图中可以看出,网上的截图和我的文档的截图中,寄存器的地址是相同的。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!

    41120

    C51 单片机开发定时器中断寄存器

    所以,我们想使用 Timer0/FT0 的话,需要配置 ET0 和 EA 对应的寄存器。 0x02:中断允许寄存器 在上图中看到,“中断允许控制寄存器” 下方箭头指着 “IE、XICON 寄存器”。...它明确的说明 IE 和 XICON 是中断允许寄存器。我们查看手册的 P158,如下图: 上图是 IE 寄存器,该寄存器就包含了 EA 和 ET0 寄存器。...在图中的表格上面有一句话,“IE:中断允许寄存器(可位寻址)”,也就是说该寄存器仍然想前面的寄存器可以按位进行操作。我们提到的 ET0 和 EA 寄存器都包含在 IE 寄存器中。...EA 寄存器是 CPU 的总中断允许控制位,回顾第一个图,EA 贯穿整个中断允许寄存器。EA 在 IE 寄存器的第 7 位。ET0 是 T0 的溢出中断允许位,在 IE 寄存器的第 1 位。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!

    11110

    PIC单片机C语言简记「建议收藏」

    2]; unsigned int i; }; 3.PICC对数据寄存器bank 的管理   PICC把单片机中数据寄存器的bank 问题交由编程员自己管理,因此在定义用户变量时你必须自己决定这些变量具体放在哪一个...真正需要绝对定位的只是单片机中的那些特殊功能寄存器,而这些寄存器的地址定位在PICC编译环境所提供的头文件中已经实现,无需用户操心。   ...“volatile”类型定义在单片机C 语言编程中是如此的重要,是因为它可以告诉编译器的优化处理器这些变量是实实在在存在的,在优化过程中不能无故消除。   ...但是在 PIC 单片机这一特定的架构上,指针的定义方式还是有几点需要特别注意。 1.指向RAM的指针   如果是汇编语言编程,实现指针寻址的方法肯定就是用FSR 寄存器,PICC也不例外。...6.PICC 中的子程序和函数   中档系列的PIC 单片机程序空间有分页的概念,但用C 语言编程时基本不用太多关心代码的分页问题。

    1.7K20

    C51单片机开发 C 语言位运算技巧

    关于定时器/计数器的内容已经算是了解了一些了,不过这里梳理一个关于 C 语言位运算的内容。对于接触过汇编、C 语言、以及系统底层的内容的话,其实对位运算不会陌生的。...定时器0开始计时 } 上面的这段代码,和我们写的初始化的代码略有不同,看下我们的代码: TMOD = 1; TL0 = 0; TH0 = 0xDC; TR0 = 1; 从两段代码可以看出 TMOD 寄存器的赋值是有差别的...按位与操作(就是 & 这个符号),很多语言都有这个运算符,意义也都一样。& 操作的特性是对指定位进行清 0,其他位保持不变。...按位或操作(就是 | 这个符号),很多语言也都有这个运算符。| 操作的特性是对指定位进行置位操作,而其余位保持不变。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!

    11910

    单片机开发之C语言编程基本规范

    本规范主要针对单片机编程语言和08编译器而言,包括排版、注释、命名、变量使用、代码可测性、程序效率、质量保证等内容。...2) 对由多个.c文件组成的模块程序或完整监控程序,建立公共引用头文件,将需要引用的库头文件、标准寄存器定义头文件、自定义的头文件、全局变量等均包含在内,供每个文件引用。...2) 对由多个.c文件组成的模块程序或完整监控程序,建立公共引用头文件,将需要引用的库头文件、标准寄存器定义头文件、自定义的头文件、全局变量等均包含在内,供每个文件引用。...如工程中包含的“Type.h”文件,该文件用于C语言中类型的别名定义,用户还可以根据自己的需要,随时在该文件中添加条目。在工程的任一文件中,需要用到这些别名时,都要包含“Type.h”。...3) typedef和#define的用法 ① typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像

    1.8K20

    c语言单片机delay延时函数详解

    c语言单片机delay延时函数 环境 延时函数 一、是什么 二、为什么 三、用在哪里?...四、怎么做 1、循环延时 2、定时器延时 环境 开发环境:NY-IDE 单片机 :NY8B062D 延时函数 延时函数,作为一种常用函数,在不同的领域有不同的用处。...而在嵌入式以及C语言的编写中,我们常常遇到需要自己来编写延时函数的情况,这种情况之下,了解其原理就显得必要。 一、是什么 简单来说,延时函数的目的就在于等,实际上就是要等一段时间再来执行接下来的代码。...,让计算机跑无用的代码,从而达到延时的目的 定时器 通过定时器的计时功能,来达到延时的目的 系统调用 该功能其实还是通过以上的两种方式来实现,当时这种功能出现在有系统的程序里面,执行系统延时的情况下,单片机可以去执行别的函数...思路:我们设置好一个定时器的循环时间,然后每次循环完成标志位加一,然后在自己的任务里面,判断标志位的大小,当数据达到的时候,就来处理对应的事件,这有利于单片机效率的提高 初始化定时器: /*******

    10.5K12

    浅谈单片机C语言与汇编语言的转换

    一、单片机课设题目要求与软件环境介绍 做了一单片机设计,要用C语言与汇编语言同时实现,现将这次设计的感受和收获,还有遇到的问题写下,欢迎感兴趣的朋友交流想法,提出建议。...单片机设计:基于51单片机的99码表设计 软件环境:Proteus8.0 + Keil4 要求:1,开关按一下,数码管开始计时。2,按两下,数码管显示静止。3,按三下,数码管数值清零。...三、C语言转汇编语言步骤 好了,那么接下来我们就开始C语言——>汇编语言之旅 (1)C语言1-10行改为 1 ORG 0000H //汇编起始伪指令,功能是规定程序存储器中源程序或数据块存放的起始地址...(3)C语言中15-35行是个while循环,逻辑比较繁琐,注意了!...五、感受 还记得前段时间我一直纠结于汇编语言中的各种指令的语法和功能,直到一个阳光明媚的中午,我一手拿着已经写好的两页半的C语言代码,一手拿着一本单片机的汇编指令查询手册,开始一行一行的翻译,可能汇编代码会在调试中有所错误

    2.4K30

    (二)汇编语言——寄存器

    ----         说起寄存器,我们可不陌生,在单片机中我们已经接触过了。...但是这个地方的寄存器要比单片机中有点不一样,以8086为例子,一共有14个寄存器: 通用寄存器:AX、BX、CX、DX; 变址寄存器:SI、DI; 指针寄存器:SP、BP; 指令指针寄存器:IP;...的寄存器,分为高位(H)和低位(L),这就相当于两个8位,不得不说,还是满巧妙地,这样也解决了我的疑问,为什么在单片机里面寄存器可以拆开来用。...就像这里红色圈起来的0058,当执行add al, 93,之后,相当于,c5+93=158,然后1溢出,不会向高位进位。 ...这样,我们表示123C8就可以直接用1230:00C8来表示,当然也可以用其他的,在此不再赘述。  未完待续

    50650

    怎么用c语言编写单片机流水灯程序,单片机编程入门:单片机流水灯程序

    今天就来教教大家怎么玩玩51单片机,当然了,首先有一个必要的条件就是你必须要会c语言,目前大学里面有开的关于微机原理的课的,上课的时候,老师还说:“你们要多学学汇编语言,对你们以后学习单片机有用”,而事实上后来才发现...c语言才是最重要的。...要想玩单片机,就必须要知道最重要的是什么,对于一块51单片机的开发板来说,最重要的就是要认认真真的看它的原理图,原理图才是最重要的。...今天先说说最基本的,就是怎么玩流水灯,老样子,先看看原理图: 可以看到,总共是八个LED灯,都是由单片机的P1口控制的,并且可以知道当端口为低电平时,灯就会亮,大家一定要注意这一点,目前市场上51的开发板还是有非常多的

    1.6K10

    c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解

    C语言编写的单片机流水灯程序 一、硬件电路 因为电路用单片机控制,所以电路非常简洁。其电路原理图见下图,印制板图如下图所示。 ?...电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,共8个引脚。...图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成时钟振荡器。...事实上,写C程序的时候,可以把多行写作一行,C编译器只要遇到分号就认为是一行语句的结束。...09行:声明一个无条件for()循环,“;;”以使单片机重复执行任务,使流水灯能不停地流动。

    2.7K20
    领券