1.计算机的程序指令、变量和常量以字节为单位存储在内存单元中。内存中的每个字节都有一个唯一的数字,就像我们生活中的门牌号一样。这个数字是存储单元的地址。 对于内存单元,单元的地址是指针,存储在地址中的数据是该单元的内容。如果定义了存储指针变量的数据类型,则该变量称为指针变量。 假设我们定义了一个字符变量s,她的值为‘a内存地址为0x3366地址单元。
2.数组实际上在内存区域开辟了一个空间,然后将数据连续保存在这个空间中。指针是一个方向,可以指向数组、变量或其他位置。 p = &a[0]; 指针变量指向数组a,此时,我们可以通过指针变量p访问数组a。一般来说,对于一维数组: p i就是a[i]的地址 *(p i)就是a[i]的值。
3.根据供电方式,数码管一般分为共阴极数码管和共阳极数码管。共阴极数码管是数码管内部的把手GND连接在一起,通过外部高电平点亮,共阳极数字管在数字管内部VCC连接在一起,通过外部低电平点亮。
4、& 取地址操作符
- 指针运算符 int *p; p = &a; 其中,p = & a;将变量a的地址赋值给指针变量p。也可以这样赋初值: (2)赋初值 在定义指针时,下面的代码将整形变量a”的地址作为初值赋给指针: int *p = &a;
5.应特别注意的是,变量指针和指针的变量是两个不同的概念。变量指针是变量的地址,存储在指针变量中的内容是内存中另一个变量的地址。每个变量都有自己的地址(指针),每个指针变量指向另一个变量。
6.当人眼观看超过25帧/秒的动画时,感觉不到闪烁和延迟。我们让两个数字管以25帧/秒的速度切换,给人的感觉是两个数字管同时点亮。
7、其中“sfr是关键词,代表寄存器的定义,sfr P0M0 = 0X93;指定义寄存器P0M它的地址是93H。 提醒大家注意,在使用中sfr当关键字定义寄存器时,后面的值是寄存器的地址,例如sfr P0M0 = 0X93;指定P0M0寄存器的地址是0x93。 使用寄存器时,等号后面给出我们将写入寄存器的值,例如P0M1 = 0xf0;意思是给P0M1赋值为0xf0; 设置其他端口工作模式的方法和P0口相似。首先根据芯片的数据手册找到两个寄存器对应的地址,定义寄存器,然后根据需要给它们相应的值。
8.一般来说,电平触发模式适用于外部中断请求,即低电平输入和中断服务可以去除外部中断源,并以负脉冲输入减少沿触发。
9“.是存取成员的运算符。 从内存分配的角度来看,结构占用的内存空间是内部成员变量占用的总和,而共享变量占用的内存大小是由共享内存空间占用最大的成员变量决定的。 STC89C51RC-RD 32台通用单片机系列单片机I/O端口,分别是P0口、P1口、P2口和P3口共4组,部分升级型号增加了几个P四口,它们的特点和使用方法P0 - P三口基本相同。这些I/O端口可以通过代码设置相应的端口寄存器作为输入或输出使用。有些端口有第二个功能,我们将在以后介绍其他功能时向您解释。
10.目前有几种不同类型的芯片包装形式,常用PDIP双列直插、LQFP薄片封装等。STC89C51RC-RD 根据系列型号和包装形式的不同,系列单片机的引脚端口有少量差异,但基本上是P0 – P三口全系列都是标配,我们用STC89C51RC-RD 系列HD以40引脚双列直插芯片为例,看其引脚分部,
从电路图可以看出,发光二极管D阴极和单片机P1.0口相连,阳极大小为1k限流电阻连接到VCC(如果没有特别说明,本书涉及的内容VCC均为 5V),单片机使用11.0592MHz晶振作为频率源。当P1.当0口输出高电平时,发光二极管D1当没有电流通过时,处于熄灭状态P1.当0口输出低电平时,电流从VCC经由R1、D1流入P1.发光二极管被点亮。限流电阻R将电流控制在5mA保证水平IO口腔不会因过流而损坏。
12.当这个过程快速反复运行时,由于视觉暂留的特点,人眼感觉不到数字管依次点亮的过程,看起来所有的数字管同时点亮。让我们从一个简单的开始,显示固定数字9F看看代码是如何实现这个过程的。
一般情况下,13、 我们将首先设置中断工作模式,然后打开中断,最后打开总中断。这可以确保在打开中断之前设置中断工作模式。只有在最后一步打开总中断后,中断功能才能真正打开,以避免在极端条件下被误触发。
14、RS-232C-5V—-15V5V— 15V为0电平。PC遵循机器的串口RS-232标准。 采用51单片机TTL电平。TTL的全称是Transistor Transistor Logic,即晶体管-晶体管逻辑集成电路, 5V等于逻辑1,0V等同于逻辑0。
15.由于单片机串口和PC串口的电平规格不同,因此当两者相互通信时,需要有一个中间环节进行电平转换。一般来说,我们经常使用它MAX232芯片实现电平转换。MAX232芯片包括与单片机相同的2路接收器和发送器 5V可以产生供电RS-232接口需要的10V电平。MAX232的硬件电路比较简单,使用方便,因此被广泛采用。让我们来看看这个芯片:
16、SBUF它们实际上是两个寄存器,即数据接收寄存器和数据发送寄存器。当我们对待它时SBUF读取操作时,接收寄存器;当我们对待它时SBUF写作时,它发送寄存器。
17、一片74HC扩展单片机端口的138芯片。HC通常称为3-8译码器,它使用三位二进制数来表示07共8个数的原理。HC138芯片有3个数据输入端口和8个数据输出端口,74HC138芯片的4、5、6引脚是使能控制端,芯片只有在电平低、低、高时才能工作。A0A2是输入脚,Y0~Y7.输出脚。HC138芯片真值表 我们使用三台单片机I/O口来控制74HC138芯片可获得8种不同的输出,节省5台单片机I/O。实验电路原理图如图9所示.12所示:
18.串口通信距离非常有限,9600bps在波特率下,最远通信距离为15m一般来说,两个通信终端之间的距离约为几米或更短。因此,为了增加通信距离,需要使用其他方法或设备,如技术RS-485通信、CAN总线通信、各种无线通信等。在结构上,信号增强器可用于增加信号功率,或中继器可用于接力通信等。 在本节中,我们将向您介绍一种常用的远距离通信方式,RS-485通信。
19、RS-485简介 RS-485接口采用差异传输信号,不需要相对于某个参考点来检测信号,系统只需要检测两条线之间的电位差, 2V~ 6V表示“0”,- 6V~- 2V表示“1”。
RS-485有两线系统和四线系统。四线系统只能实现点对点通信模式,现在很少使用。现在主要采用两线系统接线模式。这种接线模式是总线扩展结构,最多可以在同一总线上连接32个结点。 在RS-485通信网络一般采用主从通信方式,即主机带多个从机。在许多情况下,连接RS-485通信链路只需简单地使用一对双绞线将每个接口A”“B端连接就够了,这种连接方法在很多场合都能正常工作。
20、理论上,RS-485的通信速率为1000Kpbs及以下时,它的最长传输距离可达1200米,实际应用中传输的距离因芯片及电缆的传输特性而有所差异。在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加八个中继,也就是说理论上RS485的最大传输距离可达9.6公里。
从单片机串口信号转换为RS-485信号非常方便。硬件上使用485收发芯片和串口进行电平转换,软件上可以做一些相应的处理。.7是常用的485收发芯片之一MAX1487引脚分布图:
21.嵌入式系统软件总是由复杂的程序组成。一般来说,一个完整的嵌入式程序分为底层驱动和功能软件两个主要层次。 底层驱动:与底层硬件相关的程序部分负责控制和操作所有硬件,如本章实例DS设置和读取1620温度传感器的温度,MAX数219数码管驱动程序等。 功能软件:这部分是实现嵌入式系统基本功能的程序,如时钟显示、时钟设置、闹钟设置等逻辑部分,与特定硬件关系不大。 一个好的嵌入式软件应该合理划分底层驱动和功能软件,这样功能软件的编写就不需要考虑太多的硬件部分,而底层驱动开发人员只需要专注于硬件相关软件的开发。