程序设计题相关文章:
【国一超全代码分享!】蓝桥杯单片机各模块代码整合
【提分必看!】蓝桥杯单片机提分技巧(国一经验分享)
- 51单片机中,1个机械周期包含12个时钟周期
- 定时器工作模式:定时器0具有4种工作模式;定时器1具有3种工作模式;定时器2具有1种工作模式
- OC门和OD门都具有线与功能
- 在16位地址总线中,P2口传输高8位地址,P0口传输低8位地址;8位的数据则由P0口传输。P0口是复用端口
- 数据存储类型(位置):
- code:程序存储器
- pdata:分页寻址(page)内部数据存储器
- idata:间接寻址内部数据存储器
- xdata:外部数据存储器
- 内部存储器的读取速度要比外部的快很多;写代码时尽量把数据都存在内部存储器;一些无关紧要,跟时序关系不大的变量可以存在外存
- 数码管只有两种接法:
- DP G F E D C B A
- A B C D E F G DP
- 串行接口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器;两者虽然地址相同,但是在物理结构上是独立的;可以做到同时发送数据和接收数据。
- 对DS1302进行单字节操作时,数据在时钟线SCLK上升沿写入,在时钟线SCLK下降沿读出
- 能进行位寻址和字节寻址的条件:寄存器地址能够被8整除
- IAP15F2K61S2单片机的最高主频:35MHz
- IIC总线上最多可以挂127个从器件:IIC8位地址,减去1位广播地址,就是7位地址,0x00地址不使用,所以就有127个地址
- IAP15F2K61S2:15是工作频率,F指的是工作电压,2K:指的是RAM的大小;61指的是Flash容量为61K,S2表示两个串行口
- 串口通信:
- 起始位(1bit),时必须有的,必须是逻辑0电平
- 数据位,数据位的位数可以由通信双方共同约定,通常为8bit;传输数据时先传输字符的低位,后传输字符的高位
- 奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验。该位不是必须有的
- 停止位:停止位可以是1位、1.5位或2位。必须是逻辑1电平,它标志传输一个字符的结束
- IAP15单片机的复位引脚也可以作为普通IO口使用
- 在C51中,定义一个不可改变的常量,可以用
const
和code
修饰,用const修饰,存储在RAM中;用code修饰,存储在ROM中 - 看门狗:
- 看门狗本质上是一个定时器
- 启动看门狗后需要在程序中喂狗
- 可以提高系统的稳定性可靠性
- RS232通信要共地吗?
- 要共地(共GND)
- 当电压差值在+3V+15V之间表示逻辑“0”,当电压差值在-3V-15V之间表示逻辑“1”,其他范围电压没有定义
- 全双工
- 短距离通信:15m以内
- 最大位速率为20Kb/s
- 使用前需要将TTL电平转换成232电平。
- RS-422
- 全双工
- 差分信号
- 传输速率提高到10Mbps
- 传输距离延长到4000英尺≈1200米(速率低于100Kbps时)
- RS-485
- 半双工
- 差分信号
- 正电平在+2V~+6V之间,表示一个逻辑状态;负电平在-2V~-6V之间,则表示另一个逻辑状态
- 差分传输方式
- 最大传输距离标准值为4000英尺,实际上可达3000米
- 抗干扰能力强
- RS-485可以实现一主多从的通信,而不像串口通信和RS232通信只能单设备通信(点对点通信)
- SPI:
- 片选线为低电平时,片选才有效
- SPI的片选线叫CS和SS都可以
- SPI是串行同步通信,有SCK引脚
- 只有在时钟信号的上升沿,数据才会被采样;这个是根据设备来决定的,也可以有其他方式
- SPI是全双工通信
- SPI常见引脚:SCK、MOSI、MISO、SS/CS
- IIC:
- IIC是半双工通信
- 空闲状态时,数据线和时钟线都处于高电平
- 开始发送数据时:SCL为高电平,SDA由高变低
- 结束发送数据时:SCL为高电平,SDA由低变高
- IIC总线的数据传输速率:标准模式100kbit/s 快速模式400kbit/s 快速+1Mbit/s 高速模式3.4Mbit/s
- SPI和IIC:
- SPI通常用于需要高速数据传输和实时性要求较高的应用,如存储器芯片、传感器、显示屏等。
- I2C通常用于连接低速设备,如传感器、温度探头、EEPROM等。I2C总线可以连接多个从设备,使得系统模块化和扩展性更好。
- 两者都适用于短距离通信
- UART:
- TXD、RXD、GND;需要共地
- 起始位是低电平,停止位是高电平
- 串口通信采用TTL逻辑:高电平最小为2.4V,输出的低电平最大为.04V
- USB:通用串行总线
- 支持热插拔
- 包含四条线:VBUS、GND、D+、D-;VBUS提供5V电源,D+、D-为双向信号线(不同版本不一样)
- CAN:控制器局域网
- 大大减少线束长度
- 逻辑1:高电平;逻辑0:低电平
- 经过CAN收发器后,普通信号会转变成差分信号
- 相差为2V,逻辑0,相差为0,逻辑1
- 传输距离很长,可达1000m
- 1-wire也是串行通信。1-Wire是一种基于单数据线的串行通信协议,它允许多个设备通过共享一个数据线与控制设备进行通信。
- 堆栈是和RAM(内存条)相关的,不受FLASH影响
- 重载函数、内联函数、递归函数、嵌套函数
- 重载函数:重载函数是函数的一种特殊情况,为方便使用,C++(java等)允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个函数完成不同的功能。注意:C 语言不支持函数重载。
- 内联函数:是一种编程语言结构,用于建议编译器对一些特殊函数进行内联扩展,即在编译时将函数体嵌入每个调用处,以避免函数调用的开销,从而提高程序的运行效率。内联函数通过在函数定义前使用
inline
关键字来声明。 - 嵌套调用:一个函数里调用另一个函数。
- 递归调用:可以简单理解成自己调用自己,但是要加以限制,不然很容易导致栈溢出而使程序出错
- 冷启动是指:系统从完全关闭的状态下重新启动。这可能是由于断电、切断电源或者系统初始启动的情况。
- 热启动:热启动是指系统在运行过程中重新启动,但并没有经历完全的断电。系统的电源没有中断,只是重新启动了某些部分。
- C51关键字汇总:
- 基本关键字:
- char double long int
- enum:声明枚举变量
- struct:结构体
- union:联合体
- extern:声明变量是在其他文件正声明
- register:声明积存器变量
- auto:声明自动变量一般不使用
- static:声明静态变量
- sizeof:计算数据类型长度
- typedef:用以给数据类型取别名
- volatile:说明变量在程序执行中可被隐含地改变(防止编译器优化)
- 扩展关键字:
- _at_定义变量的绝对地址
- alien (PL/M-51)函数外部声明
- code:程序代码存储区,放在ROM里
- data:直接寻址片内数据存储区(低128字节)
- bdata:位寻址片内数据存储区(16字节)
- idata:间接寻址片内数据存储区(256字节)
- pdata:分页寻址外部数据存储区(256字节)
- xdata:可寻址片外数据存储区(64KB)
- bit位变量定义
- sfr 用于定义8位特殊功能寄存器
- sfr16 用于定义16位特殊功能寄存器
- sbit 用于定义可位寻址对象
- C51中变量的存储模式选择:
- Small模式用于将所有未指明存储区的变量均保存在data
- compact模式用于将所有未指明存储区的变量均保存在pdata
- Large模式用于将所有未指明存储区的变量均保存在xdata
- far :far存储区是指许多新的8051扩展地址空间。
- interrupt:C51使用"interrupt m"修饰符可将函数转化为中断函数,其中m为中断向量优先级。
- CX51编译器使用_task_和_priority_支持RTX51Full和RTX51 Tiny的实时多任务操作系统。
- reentrant 重入函数修饰符。所谓重入函数就是允许被嵌套调用的函数。
- using定义函数时用来选择函数使用寄存器的分组。
- 基本关键字:
- IIC是多主多从;SPI和RS485都是一主多从;CAN也是多主多从
- 1-Wire协议总线通信中最为重要的一种操作,在每次总线通信之前主机必须首先发送复位信号。
- 标准的浮点数科学记数法表示中,指数部分必须是一个整数。比如:2e3是正确的,但是2e1.2就是错误的。
- keil调试状态可以看到的内容:变量的值、数据寄存器、状态寄存器的值、系统时钟
- C语言中要求运算数必须是整型的运算符:%、~、&、|、^、<<、>>(位运算符)
- ds18b20温度传感器模块的性质:
1. 单总线、新型的、体积小、使用电压宽、与微处理器接口简单的数字化温度传感器。电压范围3.0V ~ 5.5V,寄生电源方式下由数据线供电。
2. 支持多点组网功能。
3. 可编程的分辨率为9 ~ 12位 - ds1302时钟模块的性质:
- 高性能、低功耗、带RAM的实时时钟电路
- 采用串行数据传输
- 可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
- 采用普通32.768kHz晶振。
- 可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能。
- PCF8591:
- 单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。
- 具有4个模拟输入、1个模拟输出和1个串行IIC总线接口。
- 在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
- 74HC573、ULN2003A、SM74HC138
- 74HC573:
- 是拥有八路输出的透明锁存器
- 输出为三态门
- 是一种高性能硅栅CMOS器件。
- ULN2003A:
- 驱动模块
- 7路反向器电路
- SM74HC138
- 译码器
- 可接受三位二进制(A0-A2)输入,提供个互斥的低有效输出(Y0-Y7)
- 74HC573: