位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
1.标准C语言
C语言是一种计算机高级程序设计语言,应用非常普遍,它具有以下一些基本特点:
1)具有高级语言面向用户、容易记忆、便于阅读等优点,又有面向硬件和系统,可以直接与底层硬件交互的能力。
2)它是一种结构化程序设计语言,便于采用自顶向下的设计方法,程序结构清晰、牢固,便于维护。
3)便于模块化,每个模块功能独立,为团队集体开发创造了良好的条件。
4)具有丰富的运算符,非常利于计算处理。
5)很容易利用众多的库函数,提高了程序开发的效率。
6)数据类型丰富,具有较强的数据处理能力。
7)具有良好的可移植性,通过不同的C语言编译器,可以在不同的单片机上执行。
由于C语言具有上述众多优点,因而它既适宜编写系统软件,也适宜编写应用软件。
2.嵌入式C语言
所谓嵌入式系统,是指将操作软件或固件程序嵌入到机器芯片内,从而构成一个控制系统。包括单片机系统在内,由于芯片容量较小,通常直接用汇编语言编程,代码效率较高。但近来情况有所变化,有如下几个方面因素:
1)单片机芯片容量增大,速度提高。运行软件的能力大大增强。(www.chuimin.cn)
2)随着片上系统(System on Chip,SoC)的出现,系统硬件集成度大大提高,开发重点转移到软件方面。
3)软件复杂性提高,程序大型化,导致必须以团队化的开发方式编程。
4)软件开发的速度和可维护性成为主要因素。
5)技术交流及方便阅读的需要。
以上几方面导致了在嵌入式系统中应用高级语言变得非常必要。但在众多高级语言中,为什么C语言被青睐呢?可能是只有C语言具备与底层硬件交互的能力,因而在嵌入式系统中应用高级语言方面,C语言是最佳的选择。如何让读者较容易的具备嵌入式C语言的基本应用技能,从而为大量学习应用实例创造条件是本书的一个特点。
嵌入式C语言与被控对象结合紧密,编程除具有标准C语言的特点外,与标准C语言相比,还有如下一些要求:
1)对一些关键字进行了一定的扩展。
2)对核心芯片的结构有一定了解。
3)了解被控对象的硬件系统特性。
这些特点是学习者必须考虑的。本书后面如果不特别指明,C语言即指嵌入式C语言,不再加“嵌入式”前提。
3.C语言编译器
C语言程序可以在不同单片机之间移植。但这种移植的条件就是要靠与单片机对应的C语言编译器。例如,C语言程序要想通过编译生成8051系列单片机的机器代码,就必须在Keil C51编译器下才能通过。对AVR系列单片机也必须有专用的C语言编译器才可以生成相应的代码。因此,编译器对生成机器代码是至关重要的。Keil C51编译器可以生成高质量的8051机器代码,只比汇编语言稍多一些。后面要学习的内容,就是在Keil μVision 2开发环境下进行的。读者可以将两种语言编程进行对比,就可以深切体会到C语言的优势。现在网上可以下载到Keil uVi-sion 3,但要有2KB代码限制,会给使用带来不便。因而我们仍然以Keil μVision 2为主。
有关零起点学习单片机多语言编程的文章
位运算是以运算量的二进制位为单位所进行的运算。一般位逻辑运算都是以十六进制数形式进行。在右移运算中,左端的空位补0,右端移出位则舍弃。按条件将a=0x85,b=0x36,执行位运算具体如下:P3=a<<1,左移1位后a=00001010=0x0A显示正确,左位取消,右位补0。......
2023-11-07
第二行程序的开始地址是02,第二条机器码程序有两个指令有分别是“0B”、“05”,其中02地址单元中存放“0B”指令,03地址单元中存放“05”数据。第三条程序的开始地址是04,第三条机器码程序有三个指令有分别是“12”、“05”、“02”。......
2023-11-07
所谓独立键,就是各个按键的功能线之间没有电的连接,每个按键独立存在。这种连接方法一只按键要占用一个接口。常用于键少的应用场合。若再次查询按键并没有闭合,则认为按键未被按下,无效。流程图的作用就是将一个应用任务转化为计算机的工作流程。这是用计算机解决应用问题的必要前提。对于任何程序,只有三种基本结构,即顺序结构、分支结构和循环结构。反复执行,则P1.0反复取反状态,表示程序执行正确。......
2023-11-07
单片机是将CPU+ROM+RAM+I/O集成在一块小小的芯片上,这种结构使用非常灵活,可以“嵌入”任何控制对象内,组成嵌入式系统。单片机中的片内程序存储器是一种可编程可擦除的只读存储器。通用计算机的CPU主要是进行高速数据处理。单片机体积很小,可以直接“嵌入”到机器的控制板上,实际上就是将计算机系统嵌入到机器内,组成所谓的“嵌入式系统”。......
2023-11-07
安装在单片机上的两个数码管从“00”开始累加1显示,到“99”后循环。需要讲解的指令重点是累加器A加1赋值指令“INC A”和十进制变换指令“DA A”。低位数码管逐段循环显示源程序实例程序运行效果:在完成了源文件建立、汇编、下载的步骤后,单片机自动运行该程序。......
2023-11-07
为此,我们采用逐次逼近,边焊边试的操作方法,保证读者能100%按质量完成整机装焊。用逻辑笔测试U3-74HC164的引脚13、12、11、10、6、5、4、3的状态,应为11000110。若不能显示以上状态,应立即断开电源开关K1,逐项检查。如果直接进行下一步会相当危险,可能导致整板报废。2)插放芯片U2、U3、U4、U5及数码管。达不到要求不能进行下一步。按第3步3)操作,应正常显示。......
2023-11-07
键入时,要注意每一条语句的格式,例如,“{ }”、“;”等不能遗漏,所有标点符号用英文输入状态下的符号。②执行时,所有操作均采用“单步”,一步步地执行。将上面C51源程序编译后的HEX文件通过STC-ISP下载软件写入目标板(实验机)观察结果,应显示流水灯效果。也就是将灯的显示码存入芯片的ROM内,执行时可顺序调出,达到彩灯的效果。单击“单步”执行程序,核对P1口的输出状态,与数组的内容相同,证明程序正确。......
2023-11-07
定时器/计数器是MCS51系列单片机芯片内的一个组件,简写为T/C。它有2个相同的定时器/计数器,称为定时器/计数器0和定时器/计数器1。实际上定时器/计数器是一个计数器,可以8位、13位或16位计数,对应的两组4个8位计数器。TCON定时控制位共4位。TR0=0,停止定时器/计数器工作;TR0=1,开启定时器/计数器工作。TMOD是专业寄存器,用于设定定时器/计数器0和定时器/计数器1的工作方式,只能用字节传送设置。......
2023-11-07
相关推荐