当前位置: 首页 > news >正文

网页设计制作网站首页建筑网建设通网站作用是什么

网页设计制作网站首页,建筑网建设通网站作用是什么,装饰设计甲级资质,做网站赔钱了系列文章目录 文章目录系列文章目录前言1 存储类型差异2 位操作扩展3 中断服务函数4 存储器模式5 指针差异6 数据类型限制7 特殊功能寄存器 (SFR)8 预处理差异9 库函数差异总结前言 C51 是专为 8051 单片机设计的 C 语言扩展,与标准 C 语法有一些区别,本…

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 1 存储类型差异
  • 2 位操作扩展
  • 3 中断服务函数
  • 4 存储器模式
  • 5 指针差异
  • 6 数据类型限制
  • 7 特殊功能寄存器 (SFR)
  • 8 预处理差异
  • 9 库函数差异
  • 总结


前言

C51 是专为 8051 单片机设计的 C 语言扩展,与标准 C 语法有一些区别,本节对于这些区别展开介绍。


1 存储类型差异

标准 C 通常只关注内存访问,而 C51 必须明确指定变量存储位置:

// C51 特有存储类型关键字
data    // 直接访问内部数据存储器(128B)
bdata   // 可位寻址内部数据存储器
idata   // 间接访问内部数据存储器(256B)
pdata   // 分页访问外部数据存储器(256B)
xdata   // 外部数据存储器(64KB)
code    // 程序存储器(64KB)// 示例:将变量放在不同存储区
unsigned char data var1;    // 内部RAM
unsigned int xdata var2;    // 外部RAM
const unsigned char code table[] = {0,1,2}; // 程序存储器(ROM)

2 位操作扩展

C51 支持直接位寻址和位变量:

// 位变量定义
bit flag;           // 声明位变量
sbit LED = P1^0;    // 定义P1.0为LED控制位
sfr P1 = 0x90;      // 声明特殊功能寄存器P1// 位操作
flag = 1;           // 置位标志
if(LED == 0) {...}  // 检测引脚状态

3 中断服务函数

C51 使用 interrupt 关键字定义中断处理函数:

// 定时器0中断服务函数
void timer0_isr() interrupt 1 {// 中断处理代码TH0 = 0xFC;     // 重新加载初值TL0 = 0x66;
}

4 存储器模式

C51 编译时需指定默认存储模式:

// 三种存储器模式
#pragma small       // 所有变量默认位于data区(内部RAM)
#pragma compact     // 所有变量默认位于pdata区(分页外部RAM)
#pragma large       // 所有变量默认位于xdata区(外部RAM)

5 指针差异

C51 指针需明确指向的存储区:

// 不同类型指针
char *data ptr1;        // 指向内部数据的指针
char xdata *ptr2;       // 指向外部数据的指针
char code *const ptr3;  // 指向程序存储器的常量指针

6 数据类型限制

C51 通常没有 long long、float(需软件库支持)等复杂类型,更依赖 int、char 等基础类型。


7 特殊功能寄存器 (SFR)

C51 通过 sfr 和 sfr16 声明单片机特有的寄存器:

sfr P0 = 0x80;      // 声明P0口寄存器(地址0x80)
sfr16 TMR0 = 0x8A;  // 声明16位定时器0寄存器(TH0:TL0)

8 预处理差异

C51 编译器通常支持 Keil 特有的预处理指令:

#pragma NOAREGS     // 禁止使用寄存器组
#pragma OPTIMIZE(8) // 设置优化级别

9 库函数差异

C51 提供专用库函数(如 reg51.h),标准 C 库部分功能缺失(如文件操作):

#include <reg51.h>  // C51专用头文件,定义SFR
#include <intrins.h> // 包含_nop_()等内部函数

总结

C51 是标准 C 的嵌入式定制版本,通过扩展语法直接支持 8051 硬件特性(如位操作、中断、特殊寄存器),但牺牲了部分标准 C 的通用性。开发时需特别注意存储器分配和硬件资源的直接操作。

http://www.dtcms.com/a/488453.html

相关文章:

  • 猎头可以做单的网站做网站的图片大小是多少
  • 盘州市网站建设调用别人网站的数据库
  • 国外设计网站素材网站打开显示站点目录
  • 网址制作网站云南网官网入口
  • 雄安智能网站建设公司郑州的网站建设
  • 大庆网站建设公司台州网站建设网站
  • 建设网站西安万网做网站多少钱
  • 红星美凯龙建设事业中心网站大数据精准营销论文
  • 备案号链接工信部网站3d设计房子的软件
  • rhce第一次作业
  • 【Shell编程学习】Shell基础知识
  • 征婚网站开发呼市网站制作
  • 扬州西区网站建设安康手机网站建设
  • html5自适应网站模版打鱼网站怎么做
  • 新乡高端网站建设app定制开发深圳
  • [Qlib] 回测执行 | `backtest_daily`日频回测
  • 简洁商城网站模板网站终端制作
  • P11215 【MX-J8-T3】水星湖
  • 温湿度传感器技术深度解析:从测量原理到工程落地
  • 将 localhost 代理配置镜像到 WSL
  • 企业展示网站如何建wordpress 打开慢 google
  • 餐饮网站欣赏wordpress 归档页面地址
  • 网站优化目标旅游营销型网站
  • 防钓鱼网站宣传深圳网站建设与制作公司
  • 淘宝小网站怎么做的怎么把asp网站做的好看
  • 外贸网站 备案昆明网站建设案例
  • 新建网站求友链平台河南建设工程信息网查询
  • 视觉设计网站推荐中山市做网站专业的
  • 集团网站群建设方案法治建设网站模块名称
  • 聊城网站制作价格企业网站源码利于优化