关于定时器/计数器的内容已经算是了解了一些了,不过这里梳理一个关于 C 语言位运算的内容。对于接触过汇编、C 语言、以及系统底层的内容的话,其实对位运算不会陌生的。...按位与操作(就是 & 这个符号),很多语言都有这个运算符,意义也都一样。& 操作的特性是对指定位进行清 0,其他位保持不变。...按位或操作(就是 | 这个符号),很多语言也都有这个运算符。| 操作的特性是对指定位进行置位操作,而其余位保持不变。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
MDK(Keil5,STM32F407)C语言: #include "stm32f4xx.h" int main(void) { int u = 367328153; // 原始数据...89C52(Keil5)C语言: 来一个大端的例子。手头上没有51的开发板,所以用的是软件仿真。...long); long u = 367328153; // 原始数据15 E4 FB 99 long* k = &u; return 0; } 注意看了,C52...然后再看内存窗口,就会发现u的存储是跟原始数据给的顺序是一样的,所以C51和C52是大端的!! ?...另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。
前言 此文档主要是针对有一定C/C++编程基础,并打算用Keil从事C51开发的开发人员。C51涉及的知识比较多,但是入门基本的开发,还是容易的。 C51简介 1....C51概念 C51继承于C语言,主要运行于51内核的单片机平台。...C51语法 1....Keil调试C51 Keil自带的仿真器还是非常强大的,可以用来调试通用的C51代码,对于学习C51了解C51的运行机制,帮助非常大。...l 模块化是所有编程语言最重要的概念之一,模块化是提高代码复用,降低代码耦合的最重要手段之一。因为C51是面向过程的开发语言,所以缺乏很多高格语言的模块化手段。
PDATA区 (5) XDATA区 (6) CODE区 2、存储模式 (1)SMALL模式 (2)COMPACT模式 (3)LARGE模式 3、指针的存储类型 (1)通用指针 (2)存储器指针 ---- 在C51...通常C51编译器会自动识别程序中使用频率最高的变量,并自动将其作为寄存器变量,程序员无需专门声明。 变量的存储种类和存储器类型是不一样的。存储器类型指明该变量所处的内存空间。...使用不同的存储器类型,程序会有不同的执行效率,在编写C51程序时,推荐指定变量的存储器类型,这样有利于提高程序的执行效率。...3、指针的存储类型 C51编译器支持两种不同类型的指针:存储器指针和通用指针 (1)通用指针 通用或未定型的指针的声明和标准C语言中一样。
前面的文章中已经把 C51 单片机的开发环境搭建好了,包括 Keil 的安装,Keil 工程的创建,串口转 USB 驱动的安装,以及通过 STC-ISP 将 Keil 生成的 hex 文件写入到单片机中...如果这几篇文章都没有看,而且对 C51 开发环境也不了解,可以看一下。 1. C51 单片机开发环境的安装 2. C51 单片机开发用 Keil 创建工程 3....C51 单片机开发将 Keil 生成的文件写入单片机 本篇文章主要是来简单说说什么是单片机,以及单片机的开发相关内容。...0x03:STC89 系列单片机 C51 单片机属于 STC89 系列的单片机,这里给出一个关于 STC89 系列单片机的命名规则,该规则来自于 STC89C51RC/RD+ 系列单片机器件手册,如下图所示...: 从图中可以看出,C51 的工作电压是 5.5V ~ 3.3V,51 的程序空间大小是 4KB,52 是 8KB 大小。
0x02:串口的电气标准与协议 串行接口按照电器标准及协议可分为RS-232-C、RS-422和RS-485等。这些标准主要规定了接口的电气特性,而不涉及接插件、电缆或协议细节。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
PWM 信号如下所示: 该舵机的 PWM 信号不是来自 C51 单片机手册,而是来自卖 SG90 舵机的店铺的商详页中。 在图中给出了舵机的输入信号脉冲宽度、给出了占空比、给出了对应的角度。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。...Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
如果不是Seven问起来,我以为C51这种东西已经属于历史遗迹了。不过简单搜索了一下,发现c51老而弥坚,仍然茁壮的生长着。...不过不管如何,作为入门类的单片机,c51还好啦,这些学习的经历,并不会浪费,学生能够很快的转化到其它平台上去。...Seven碰到的情况是这样,c51开发工具目前基本以windows为主,在mac上无法工作,总不能为了学习c51就换一台电脑。...把源代码编译成链接库文件.rel: sdcc -c test.c 执行完成你会发现已经有了.rel链接库文件。....单片机为了提高效率,还经常会用到汇编语言,汇编语言在sdcc软件包中是分cpu来实现的,一般默认提供这些cpu的汇编器: sdas390 sdas6808 sdas8051 sdasgb
C51 单片机的开发我学习的时候使用的是 C 语言,开发的环境是 Keil 这个开发环境,本篇文章主要介绍 Keil 的安装和注册机的使用,如果有条件的话,还是支持正版的好!...0x00:Keil 的介绍 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构上、可读性、可维护上有明显的优势...0x01:Keil 的安装 我使用的版本,c51v952,它是一个独立的 exe 文件 安装简单,右键“以管理员身份运行”,然后像普通程序一样下一步下一步的安装即可。
c51单片机编程要点总结 1、头文件:#include (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0// 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法...sbit code table[ ] = ;// 想用 table[i] 指定不同的引脚,但这么做会报错 sbit table[ ] = ; // 考虑到上面可能是 code 关键字使用错误,使用标准 C...空间 9、在使用数码管编程时,假如你正在使用 temp[i] 代表某一个显示字符,突然想显示小数点,可以使用 temp[i] 0x80,通过“或”运算实现加上小数点…… 10、如果你用 Keil C51...卧槽,今天编程序那个调错啊,就因为一个数组名和一个变量名完全一样,只是大小写不一样罢了,标准 C 我怎么记得这样可以啊……上网一查,卧槽,Keil C51 不区分大小写,准确的说是“连接的时候不区分大小写
普通的 STC89C52 是没有硬件支持 PWM 的,因此只能使 I/O 进行模拟,相对于硬件 PWM 来说精确度略差。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
是美国Keil Software公司开发的51系列兼容单片机的C语言软件开发系统。...(1)编译器C51:美国标准优化C交叉编译器C51可以把C源代码转换成可重定位的目标文件。 (2)汇编器A51 :汇编器A51把MCS-51汇编源代码转换成可重定位的目标文件。...数据类型总结 KEIL C51 编译器所支持的数据类型如下表所示: 1、位变量——bit bit 位变量是C51 编译器的一种扩充数据类型,它的值是一个二进制位,不是0 就是1。...对于指针的定义和标准C语言相似,例:char * pt;定义一个指向字符型变量的指针。指针变量同样要占据一定的内存单元,在C51 中它的长度一般为1-3个字节。...uchar c ;定义一个unsigned char数据变量c 注意:这里并没有增加新的数据类型,只是对已有的某种数据类型用另一种符号表示而已。 (2)C语言是一种强类型语言。
Keil uvision5 C51版下载: 复制链接在百度打开保存下载 链接:https://pan.baidu.com/s/12Eb8tg20dZcazGBiwFO3ng 提取码:iger 简介 Keil...C51是美国Keil Software公司(ARM公司之一)出品的51系列兼容单片机C语言软件开发系统。...与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。...Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。...如图所示: 2.选中“c51-v957”,鼠标右击选择以“管理员的身份运行”。如图所示: 3.根据提醒选择“next”。 4.勾选“I agree to all...”
上篇的文章介绍了 PWM 和 舵机,舵机的旋转控制需要 PWM,由于 C51 没有支持 PWM 的硬件,因此需要使用软件来模拟。而软件的模拟离不开定时器、中断两个概念。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
timer_init() //定时器初始化 { TMOD =0x10;//定时器T1方式1 //65536-50000=15536 转化为16进制为3cb0 TH1= 0x3c;...; delay1s(); P0=a[j]; } } } void timer1() interrupt 3 //3是定时器T1的中断号,书上176页 { TH1= 0x3c;...timer_init() //定时器初始化 { TMOD =0x10;//定时器T1方式1 //65536-50000=15536 转化为16进制为3cb0 TH1= 0x3c;...东西绿灯亮 delay1s(); P1=a[j]; } } void timer1() interrupt 3 //3是定时器T1的中断号,书上176页 { TH1= 0x3c;
后面会整理一些 Linux 和 Windows 下的 C 语言编程的知识,有些是按照一定的顺序较完整的整理,有些是一些零碎的知识点。...我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
0x02:C51 单片机 对于 C51 单片机也不例外,有很多的寄存器。在之前我们也操作过寄存器。...不记得可以回看前面的文章(C51 单片机开发 SFR 及 SBIT 的作用)。...sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 =
我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!
前面的文章中基本把关于 C51 单片机开发的环境和概念整理完了,就剩下关于 I/O 口的整理了,有了 I/O 口(输入输出口,也就是开发板上的针脚吧,其实这些针脚是从单片机上引出的)的知识就可以让单片机和外设进行通信了...0x01:I/O 口(输入/输出口) 我使用的单片机是 STC89C52,它也是兼容 STC89C51 单片机的。...STC89C52 单片机有 5 组输入输出口,分别是 P0、P1、P2、P3 这四个口,每组对应 8 个针脚,P4 口是 RC 系列才有的,它有 7 个针脚。...STC89C52 的 I/O 口使用比较简单,直接使用即可,无需配置!
领取专属 10元无门槛券
手把手带您无忧上云