单片机C语言编程
来源:互联网 发布:南阳企业网站seo 编辑:程序博客网 时间:2024/05/04 05:08
一、首先我们先了解一下51单片机的头文件#include <REG51.H>
为了能看懂REG51.H头文件,下面需了解Keil C51编译器扩展的关键字:
可位寻址的8051内部数据存储器idata存储器类型说明
间接寻址的8051内部数据存储器pdata存储器类型说明
分页寻址的8051外部数据存储器xdata存储器类型说明
8051外部数据存储器code存储器类型说明
8051程序存储器interrupt中断函数声明定义一个中断函数reetrant再入函数声明定义一个再入函数using寄存器组定义定义8051工作寄存器组
REG51.H文件主要定义了特殊功能寄存器和可位寻址变量:
如sfr P3 = 0XB0;
sbit RXD = 0XB0;
等.
二、多个工程文件连接的基本方法
多个函数在多个C源文件中,可使用文件包含其它C源文件或在本文件中使用extern关键字。
三、数据类型的隐式转换:
bit -> char -> int -> long -> float
signed -> unsigned
四、变量的定义
在C51中对变量定义的格式:[存储种类] 数据类型 [存储器类型] 变量名表;
存储种类包括auto、extern、static和register,其中auto为默认值。其作用:http://zhidao.baidu.com/
data访问速度最快直接访问内部数据存储器(128B)bdata允许位与字节混合访问可位访问内部数据存储器(16B)idata允许访问全部内部地址
间接访问内部数据存储器(256B)pdataMOVX @Ri指令访问分页访问外部数据存储器(256B)xdataMOVX @DPTR指令访问
外部数据存储器(64K)codeMOVC @DPTR指令访问
程序存储器(64K)
若忽略存储器类型,则按编译模式SMALL、COMPACT或LARGE所规定的默认存储器类型确定变量的存储器类型。
1.SMALL时,变量被定义在80C51单片机的内部数据存储器(data区)中。
2.COMPACT时,变量被定义在分页外部数据存储器(pdata区)中。
3.LARGE时,变量被定义在外部数据存储器(xdata区)中。
五、可位寻址对象定义
1.sbit 位变量 = 位地址;
sbit RXD = 0XB0;
2.sbit 位变量 = 特殊功能寄存器名^位位置;
sbit RXD = P3^0;
3.sbit 位变量 = 字节地址^位位置;
sbit RXD = 0XB0^0;
同理,当对象为C51内部数据存储器的可寻址区(bdata)时:
int bdata num = 1234;
sbit num_bit15 = num^15;
位位置取决于数据类型在内存中占用的位数。
- 单片机C语言编程
- 单片机C语言编程
- 单片机C语言编程规范
- 《32位单片机c语言编程》笔记
- 单片机C语言的编程规范
- 迟思堂工作室编程规范:单片机C语言
- 基于单片机C语言编程格式
- 单片机编程C语言 好多for嵌套
- 单片机C语言编程的基础知识
- 51单片机 C 语言编程:单片机定时中断
- 单片机C语言编程-定时器/计数器(查询方式)
- 单片机C语言编程-定时器/计数器(中断方式)
- 单片机C语言编程-定时器/计数器(计数方式)
- 十天学会单片机和C语言编程
- 单片机C语言编程应注意的若干问题
- 基于51系列单片机的简单c语言编程
- 关于单片机的C语言编程基础知识(初学注意)
- 单片机C语言编程定时器的几种表达方式
- ZOJ3811
- Linux下配置Chrome Remote Desktop
- Web自动化框架搭建
- 模板类中操作符重载问题
- UVA11817 - Tunnelling the Earth
- 单片机C语言编程
- 黑马程序员 面向对象及三大特性之封装
- freemarket回顾1
- openwrt目录与编译
- C++ const详解
- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- Leetcode 之Candy 分糖果问题。
- C# dataGridView控件实用属性及事件总结
- 结构体自身字节对齐