zoukankan      html  css  js  c++  java
  • 单片机基础(四):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{
    	......
    }
    

    2019/2/24

  • 相关阅读:
    C# Net Core 使用 ClientWebSocket 实现 WebSocket 客户端
    C# Net 使用 RSA 加密解密 OpenSSL 生成的密码
    VS 代码提示默认不选中 解决办法
    C# While 超时设置
    C# 比较日期格式中的年月大小
    C#实现QQ邮箱IMAP之邮件处理
    Windwos服务之定时发送邮件(一)
    js基于“合成大西瓜的”碰撞模型(一)
    Windows下,通过运行直接打开软件
    C#爬取国家统计局五级地址
  • 原文地址:https://www.cnblogs.com/kafm/p/12721825.html
Copyright © 2011-2022 走看看