C51对C语言的扩展
C51与标准C语言在数据结构、I/O处理、函数等方面与标准C语言存在差别
数据结构
sfr、sfr16 特殊功能寄存器型变量
特殊功能寄存器(SFR,Special Function Register)在单片机中有很重要的作用,常见的SFR是8位,所以sfr16用于表示16位的SFR
定义方式为 变量类型 变量名 = 地址
如 sfr P1 = 0x90
所有的sfr、sfr16型变量都已定义在"reg51.h"、"reg52.h"中
bit 、sbit 位变量
bit 、sbit 型变量在内存中都只占一个二进制位
bit 用于定义一般可处理位的变量,sbit 用于定义特殊功能寄存器中的可位寻址的变量
sbit 可用绝对位地址、相对位地址、相对sfr变量位位置定义
sbit CY = 0xD7 sbit CY = 0xD0^7 sbit CY = PSW^7
可定义存储器类型
可指明定义的变量分配到哪一个存储器中
完整定义格式为
存储种类 数据类型 存储器类型 变量名 = 初值
I/O处理
中断函数
中断是单片机的重要特性,C51在C语言函数的基础上补充了中断函数的概念
中断函数的定义
interrupt m修饰符,表明某个函数为中断响应函数,编译时将该函数将该函数转化为中断响应函数,根据 m 的取值将函数地址存放在程序存储器的中断对应的位置
中断函数不能传递参数,不能有返回值
中断函数不能被其他函数调用
若中断函数调用其他函数,所调用的函数使用的寄存器必须与中断函数相同
单片机基础(五):中断
定义形式如下
void main(){
......
}
void Int0_isr interrupt 0{
......
}
设计资源 培训 开发板 精华推荐
- Sg3526单端配置的典型应用
- LTC2404、4/8 通道、24 位 Delta-Sigma ADC 的典型应用
- ADR5040B 2.048 Vout 负精密基准配置的典型应用
- GXNU定时呼叫机+梁洪林
- NIS6452MT1GEVB:NIS6452MT1GEVB:3.3 至 5.0 V eFuse 评估板、热锁存、6.5 V 输出电压钳位
- LT1120IN8 电池后备稳压器的典型应用电路
- STEVAL-IDS001V5,基于 SPIRIT1 的演示板 低成本、低数据速率、915-MHz 频段的短距离 USB 加密狗收发器
- LTC1435A 恒定频率、高效率转换器
- BGA3018 - 1GHz、18dB 增益宽带放大器 MMIC
- 可充电LED阅读灯