单片机基础(四):C51对C语言的扩展

发布者:温暖的拥抱最新更新时间:2022-05-07 来源: eefocus关键字:单片机  C51  C语言  扩展 手机看文章 扫描二维码
随时随地手机看文章

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{

......

}


关键字:单片机  C51  C语言  扩展 引用地址:单片机基础(四):C51对C语言的扩展

上一篇:单片机基础(五):定时/计数器的工作原理及工作方式
下一篇:单片机基础(六):单片机定时/控制器的控制接口

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved