8051C编程基本模板.docx
- 文档编号:2136568
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:14
- 大小:18.24KB
8051C编程基本模板.docx
《8051C编程基本模板.docx》由会员分享,可在线阅读,更多相关《8051C编程基本模板.docx(14页珍藏版)》请在冰豆网上搜索。
8051C编程基本模板
《8051单片机C语言编程模板》杜洋2009.7
[程序开始处的程序说明]
/*********************************************************************************************
程序名:
编写人:
杜洋
编写时间:
20年月日
硬件支持:
接口说明:
修改日志:
NO.1-
/*********************************************************************************************
说明:
/*********************************************************************************************/
[单片机SFR定义的头文件]
#include
#include
#include
#include
#include
[更多库函数头定义]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
[常用定义声明]
sfr[自定义名]=[SFR地址];//按字节定义SFR中的存储器名。
例:
sfrP1=0x90;
sbit[自定义名]=[系统位名];//按位定义SFR中的存储器名。
例:
sbitAdd_Key=P3^1;
bit[自定义名];//定义一个位(位的值只能是0或1)例:
bitLED;
#define[代替名][原名]//用代替名代替原名。
例:
#defineLEDP1/#defineTA0x25
unsignedchar[自定义名];//定义一个0~255的整数变量。
例:
unsignedchara;
unsignedint[自定义名];//定义一个0~65535的整数变量。
例:
unsignedinta;
[定义常量和变量的存放位置的关键字]
data字节寻址片内RAM,片内RAM的128字节(例:
dataunsignedchara;)
bdata可位寻址片内RAM,16字节,从0x20到0x2F(例:
bdataunsignedchara;)
idata所有片内RAM,256字节,从0x00到0xFF(例:
idataunsignedchara;)
pdata片外RAM,256字节,从0x00到0xFF(例:
pdataunsignedchara;)
xdata片外RAM,64K字节,从0x00到0xFFFF(例:
xdataunsignedchara;)
codeROM存储器,64K字节,从0x00到0xFFFF(例:
codeunsignedchara;)
[选择、循环语句]
if
(1){
//为真时语句
}else{
//否则时语句
}
--------------------------
while
(1){
//为真时内容
}
--------------------------
do{
//先执行内容
}while
(1);
--------------------------
switch(a){
case0x01:
//为真时语句
break;
case0x02:
//为真时语句
break;
default:
//冗余语句
break;
}
--------------------------
for(;;){
//循环语句
}
--------------------------
[主函数模板]
/*********************************************************************************************
函数名:
主函数
调用:
无
参数:
无
返回值:
无
结果:
程序开始处,无限循环
备注:
/**********************************************************************************************/
voidmain(void){
//初始程序
while
(1){
//无限循环程序
}
}
/**********************************************************************************************/
[中断处理函数模板]
/*********************************************************************************************
函数名:
中断处理函数
调用:
无
参数:
无
返回值:
无
结果:
备注:
/**********************************************************************************************/
voidname(void)interrupt1using1{
//处理内容
}
/**********************************************************************************************/
[中断入口说明]
interrupt0外部中断0(ROM入口地址:
0x03)
interrupt1定时/计数器中断0(ROM入口地址:
0x0B)
interrupt2外部中断1(ROM入口地址:
0x13)
interrupt3定时/计数器中断1(ROM入口地址:
0x1B)
interrupt4UART串口中断(ROM入口地址:
0x23)
(更多的中断依单片机型号而定,ROM中断入口均相差8个字节)
using0使用寄存器组0
using1使用寄存器组1
using2使用寄存器组2
using3使用寄存器组3
[普通函数框架]
/*********************************************************************************************
函数名:
调用:
参数:
无
返回值:
无
结果:
备注:
/**********************************************************************************************/
voidname(void){
//函数内容
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:
调用:
参数:
0~65535/0~255
返回值:
0~65535/0~255
结果:
备注:
/**********************************************************************************************/
unsignedintname(unsignedchara,unsignedintb){
//函数内容
returna;//返回值
}
/**********************************************************************************************/
[延时函数]
/*********************************************************************************************
函数名:
毫秒级CPU延时函数
调用:
DELAY_MS(?
);
参数:
1~65535(参数不可为0)
返回值:
无
结果:
占用CPU方式延时与参数数值相同的毫秒时间
备注:
应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
voidDELAY_MS(unsignedinta){
unsignedinti;
while(--a!
=0){
for(i=0;i<600;i++);
}
}
/*********************************************************************************************/
[定时/计数器函数]
-----------------------------------------------------------------------------
M1M0方式说明
00013位T/C,由TL低5位和TH的8位组成13位计数器
01116位T/C,TL和TH共16位计数器
1028位T/C,TL用于计数,当TL溢出时将TH中的值自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8051 编程 基本 模板