找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8388|回复: 39
收起左侧

51单片机C语言编程模版

  [复制链接]
ID:51025 发表于 2013-6-18 04:27 | 显示全部楼层 |阅读模式

单片机C语言编程模板(基础模板)


[程序开始处的程序说明]

/*********************************************************************************************
程序名:   
编写人:     
编写时间:  年 月 日
硬件支持:  
接口说明:                                
/*********************************************************************************************
说明:

/*********************************************************************************************/



[单片机SFR定义的头文件]

#include <REG51.h> //通用89C51头文件
#include <REG52.h> //通用89C52头文件
#include <STC11Fxx.H> //STC11Fxx或STC11Lxx系列单片机头文件
#include <STC12C2052AD.H> //STC12Cx052或STC12Cx052AD系列单片机头文件
#include <STC12C5A60S2.H> //STC12C5A60S2系列单片机头文件

[更多库函数头定义]

#include <assert.h>    //设定插入点
#include <ctype.h>     //字符处理
#include <errno.h>     //定义错误码
#include <float.h>     //浮点数处理
#include <fstream.h>    //文件输入/输出
#include <iomanip.h>    //参数化输入/输出
#include <iostream.h>   //数据流输入/输出
#include <limits.h>    //定义各种数据类型最值常量
#include <locale.h>    //定义本地化函数
#include <math.h>     //定义数学函数
#include <stdio.h>     //定义输入/输出函数
#include <stdlib.h>    //定义杂项函数及内存分配函数
#include <string.h>    //字符串处理
#include <strstrea.h>   //基于数组的输入/输出
#include <time.h>     //定义关于时间的函数
#include <wchar.h>     //宽字符处理及输入/输出
#include <wctype.h>    //宽字符分类
#include <intrins.h>    //51基本运算(包括_nop_空函数)



[常用定义声明]

sfr  [自定义名] = [SFR地址] ; //按字节定义SFR中的存储器名。例:sfr P1 = 0x90;
sbit  [自定义名] = [系统位名] ; //按位定义SFR中的存储器名。例:sbit Add_Key = P3 ^ 1;
bit [自定义名] ; //定义一个位(位的值只能是0或1)例:bit LED;
#define [代替名]  [原名]  //用代替名代替原名。例:#define LED P1 / #define TA 0x25

unsigned char [自定义名] ; //定义一个0~255的整数变量。例:unsigned char a;
unsigned int [自定义名] ; //定义一个0~65535的整数变量。例:unsigned int a;



[定义常量和变量的存放位置的关键字]

data    字节寻址片内RAM,片内RAM的128字节(例:data unsigned char a;)
bdata    可位寻址片内RAM,16字节,从0x20到0x2F(例:bdata unsigned char a;)
idata    所有片内RAM,256字节,从0x00到0xFF(例:idata unsigned char a;)
pdata    片外RAM,256字节,从0x00到0xFF(例:pdata unsigned char a;)
xdata    片外RAM,64K字节,从0x00到0xFFFF(例:xdata unsigned char a;)
code    ROM存储器,64K字节,从0x00到0xFFFF(例:code unsigned char a;)




[选择、循环语句]

if(1){

//为真时语句

}else{

//否则时语句

}

--------------------------

while(1){

//为真时内容

}

--------------------------

do{

//先执行内容

}while(1);

--------------------------

switch (a){
    case 0x01:
        //为真时语句
        break;
    case 0x02:
        //为真时语句
        break;
    default:
        //冗余语句
        break;
}

--------------------------

for(;;){

//循环语句

}

--------------------------


[主函数模板]

/*********************************************************************************************
函数名:主函数
调  用:无
参  数:无
返回值:无
结  果:程序开始处,无限循环
备  注:
/**********************************************************************************************/
void main (void){

    //初始程序

    while(1){

        //无限循环程序

    }
}
/**********************************************************************************************/


[中断处理函数模板]
/*********************************************************************************************
函数名:中断处理函数
调  用:无
参  数:无
返回值:无
结  果:
备  注:
/**********************************************************************************************/
void name (void) interrupt 1 using 1{

    //处理内容
}
/**********************************************************************************************/

[中断入口说明]

interrupt 0 外部中断0(ROM入口地址:0x03)
interrupt 1 定时/计数器中断0(ROM入口地址:0x0B)
interrupt 2 外部中断1(ROM入口地址:0x13)
interrupt 3 定时/计数器中断1(ROM入口地址:0x1B)
interrupt 4 UART串口中断(ROM入口地址:0x23)
(更多的中断依单片机型号而定,ROM中断入口均相差8个字节)

using 0 使用寄存器组0
using 1 使用寄存器组1
using 2 使用寄存器组2
using 3 使用寄存器组3




[普通函数框架]

/*********************************************************************************************
函数名:
调  用:
参  数:无
返回值:无
结  果:
备  注:
/**********************************************************************************************/
void name (void){

//函数内容

}
/**********************************************************************************************/



/*********************************************************************************************
函数名:
调  用:
参  数:0~65535 / 0~255
返回值:0~65535 / 0~255
结  果:
备  注:
/**********************************************************************************************/
unsigned int name (unsigned char a,unsigned int b){

//函数内容

return a; //返回值
}
/**********************************************************************************************/

 


评分

参与人数 1黑币 +10 收起 理由
bh4djj + 10 赞一个!

查看全部评分

回复

使用道具 举报

ID:59269 发表于 2014-3-9 10:12 | 显示全部楼层
初学者的好资料
回复

使用道具 举报

ID:36525 发表于 2014-3-9 16:01 | 显示全部楼层
很好,
回复

使用道具 举报

ID:61326 发表于 2014-5-4 08:30 | 显示全部楼层
初学者的好资料
回复

使用道具 举报

ID:61343 发表于 2014-5-26 16:15 | 显示全部楼层
初学者的好资料
回复

使用道具 举报

ID:64616 发表于 2014-8-5 16:24 | 显示全部楼层
好我收下了
回复

使用道具 举报

ID:65234 发表于 2014-8-21 18:33 | 显示全部楼层
杜样的
回复

使用道具 举报

ID:57317 发表于 2014-8-22 08:53 | 显示全部楼层
不错!学习学习了!
回复

使用道具 举报

ID:66338 发表于 2014-9-21 10:11 | 显示全部楼层
不错!学习学习了
回复

使用道具 举报

ID:66464 发表于 2014-9-21 20:32 | 显示全部楼层
不错,学习了
回复

使用道具 举报

ID:62567 发表于 2014-9-25 06:59 | 显示全部楼层
好资料
回复

使用道具 举报

ID:66645 发表于 2014-9-26 01:12 来自手机 | 显示全部楼层
收下了。。。。
回复

使用道具 举报

ID:65837 发表于 2014-9-29 10:03 | 显示全部楼层
很好的东西,谢谢楼主分享!!!
回复

使用道具 举报

ID:55550 发表于 2014-10-27 14:43 | 显示全部楼层
下来用用。谢谢!
回复

使用道具 举报

ID:50881 发表于 2014-11-10 13:38 | 显示全部楼层
好资料!!!!!!!!!
回复

使用道具 举报

ID:69113 发表于 2014-11-24 20:51 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:69420 发表于 2014-11-28 08:24 | 显示全部楼层
对初学者帮助很大谢谢楼主辛苦了
回复

使用道具 举报

ID:47760 发表于 2014-11-29 03:31 | 显示全部楼层
好我收下了
回复

使用道具 举报

ID:67678 发表于 2014-12-3 00:09 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:73583 发表于 2015-2-12 23:37 来自手机 | 显示全部楼层
方便的资料!
回复

使用道具 举报

ID:73869 发表于 2015-2-25 17:16 | 显示全部楼层
不错,初学者的好东西。
回复

使用道具 举报

ID:16408 发表于 2015-3-9 23:48 | 显示全部楼层
收藏了很有用
回复

使用道具 举报

ID:71991 发表于 2015-3-14 23:06 | 显示全部楼层
果断收下,谢了
回复

使用道具 举报

ID:73964 发表于 2015-3-27 06:54 来自手机 | 显示全部楼层
不错不错
回复

使用道具 举报

ID:67336 发表于 2015-3-27 15:40 | 显示全部楼层
学习了。。。。。。。。。。。。
回复

使用道具 举报

ID:74815 发表于 2015-3-28 17:02 | 显示全部楼层
正找这个呢  谢谢啦
回复

使用道具 举报

ID:76408 发表于 2015-4-8 10:15 | 显示全部楼层
初学者的好资料
回复

使用道具 举报

ID:28571 发表于 2015-4-17 22:24 | 显示全部楼层
好东西,学习一下,谢谢!
回复

使用道具 举报

ID:28571 发表于 2015-4-17 22:27 | 显示全部楼层
好东西,学习一下,谢谢!
回复

使用道具 举报

ID:79655 发表于 2015-5-26 09:42 | 显示全部楼层
好东西            
回复

使用道具 举报

ID:82098 发表于 2015-9-23 15:23 | 显示全部楼层

学习!!!!!!!!!
回复

使用道具 举报

ID:92052 发表于 2015-10-14 20:32 | 显示全部楼层
收藏了,谢谢楼主
回复

使用道具 举报

ID:88811 发表于 2015-10-14 23:19 | 显示全部楼层
楼主辛苦了
回复

使用道具 举报

ID:112693 发表于 2016-4-16 21:30 | 显示全部楼层
太好了,正在学习中,实用!!!
回复

使用道具 举报

ID:139504 发表于 2016-9-15 22:49 | 显示全部楼层
辅导活动关节我就
回复

使用道具 举报

ID:353 发表于 2016-9-17 17:54 | 显示全部楼层

不错!学习学习了
回复

使用道具 举报

ID:90140 发表于 2016-9-18 08:56 | 显示全部楼层
初学者的好资料。。
回复

使用道具 举报

ID:57896 发表于 2016-9-18 20:08 来自手机 | 显示全部楼层
不错,编程就是要有良好的习惯
回复

使用道具 举报

ID:171746 发表于 2017-3-30 11:58 | 显示全部楼层
非常好的资料
回复

使用道具 举报

ID:169626 发表于 2017-3-31 12:36 | 显示全部楼层

很好的东西,谢谢楼主分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表