引用
本源程序是每一个MCS-51系列单片机C语言程序的必备内容,包括程序开始处的说明信息、头文件、SFR定义、子函数、主函数和C语言常用的5大语句(if,while,do while,for,switch)模板。可将其模板下载到本地硬盘,在编写新程序的时候复制、粘贴到工程当中,然后根据情况写入具体内容。
注意:使用本模板必须熟悉单片机C语言编程
[程序开始处的程序说明]
/*********************************************************************************************
程序名:
编写人:
编写时间: 年 月 日
硬件支持:
接口说明:
修改日志:
NO.1-
/*********************************************************************************************
说明:
/*********************************************************************************************/
[单片机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; //返回值
}
/**********************************************************************************************/
分享到:
相关推荐
本源程序是每一个MCS-51系列单片机C语言程序的必备内容,包括程序开始处的说明信息、头文件、SFR定义、子函数、主函数和C语言常用的5大语句(if,while,do while,for,switch...注意:使用本模板必须熟悉单片机C语言编程
以上是单片机C语言编程模板中涉及的主要知识点,这些知识是编写51系列单片机程序的基础,并且可以扩展应用于其他8位或更高位的单片机编程中。通过熟练掌握这些概念和技巧,开发者可以更有效地进行单片机应用开发。
在压缩包中的"单片机c语言编程"可能包含了一些实际的代码示例,这些例子可以帮助初学者理解如何在单片机上实现特定的功能。例如,可能有一个点亮LED灯的简单程序,展示了如何控制GPIO;或者一个简单的串口通信程序,...
【C51单片机C语言编程基础】 C51是专为8051系列单片机设计的一种C语言扩展,它允许开发者用高级语言编写单片机程序,简化了硬件操作,提高了代码可读性和可维护性。C51编程的基础包括以下几个方面: 1. **数据类型...
在深入探讨飞思卡尔单片机C语言编程的精髓之前,我们先来了解飞思卡尔半导体公司(Freescale Semiconductor),这是一家全球领先的嵌入式处理解决方案供应商,为汽车、网络、工业以及消费电子市场提供技术先进的处理器...
《PIC单片机C语言编程实例详解》 在嵌入式系统开发中,PIC单片机因其高效能、低功耗、易于编程等特性而广泛应用于各种领域。本章主要探讨了PIC16F877单片机的C语言编程实例,包括其外围功能模块的使用以及MSSP模块...
单片机C语言编程模板是用于编写针对单片机应用的C语言程序的基本框架,它包含了一些标准的头部注释,以及常用的库函数和数据类型的声明。这些模板可以帮助开发者快速地构建程序,确保代码结构清晰,易于理解和维护。...
单片机C语言通用万能编程模板是Microcontroller(微控制器)编程的基础知识点之一。该模板涵盖了单片机编程的各个方面,包括函数头文件、延时函数、定时/计数器初始化函数、PWM初始化函数、UART串口初始化函数等。 ...
3. **单片机C语言编程**:单片机C语言与标准C有所不同,因为它需要直接操作硬件。学习如何用C语言编写汇编代码,如初始化寄存器、读写端口、定时器设置、中断处理等,是这个阶段的重点。 4. **开发环境和工具**:...
1. **C语言基础**:51单片机C语言编程基于标准C,但需理解单片机特有的内存模型、寄存器操作和中断处理。基本语法、数据类型、运算符、流程控制语句(如if-else、for、while)是所有程序的基础。 2. **I/O端口操作*...
通过阅读和分析这些代码,读者可以加深对单片机C语言编程的理解,提升动手能力。 在学习过程中,建议读者搭配实际的开发板进行实验,通过硬件调试来验证代码的正确性,这样既能锻炼编程技能,也能培养问题解决的...
这些模板函数为STC单片机的C语言编程提供了一套基础框架,开发者可以根据实际项目需求对这些模板进行扩展和定制,以实现特定的功能。通过理解和应用这些模板,可以大大提高开发效率,同时保证代码的规范性和可维护性...
##### 2.2 单片机C语言编程基础 C语言在单片机中的应用通常涉及以下几个方面: 1. **基本语法**:熟悉C语言的基本语法,如变量声明、控制结构(if语句、for循环等)、函数定义等。 2. **位操作**:由于单片机经常...
单片机C语言多文件编程技巧 单片机C语言多文件编程是单片机入门知识中的一项重要技巧,通过多文件编程,可以将程序模块化,方便团队合作和重复使用代码。多文件编程的优点是可以增加程序的目录,方便查找和移植别人...
本文档提供了一套8051单片机C语言编程的通用模板,涵盖了一些基本的函数和中断处理,对于初学者或者经验丰富的开发者来说,都是一个很好的参考资料。 1. **函数头文件**: 函数头文件是每个C语言程序的基础,它包含...
单片机C语言应用100例是一本旨在帮助学习者深入理解并熟练掌握单片机C语言编程的书籍,特别适合初学者和有一定基础的工程师。书中通过100个精心设计的实例,涵盖了单片机编程的各个方面,旨在让读者在实际操作中提升...
下面我们将深入探讨这个“完美的8051单片机C语言编程模板”涉及的关键知识点。 首先,单片机SFR(特殊功能寄存器)定义的头文件是非常重要的,它们包含了8051单片机中用于控制I/O端口和其他硬件功能的寄存器。例如...
以上这些模板函数构成了STC51单片机C语言编程的基础框架,开发者可以根据具体应用需求,灵活调整和扩展这些模板,以实现各种复杂的系统功能。理解并掌握这些模板,将大大提升开发效率,同时也为解决实际问题提供了...
以上是STC单片机C语言编程模板中的关键知识点,这些函数和功能构成了单片机应用程序的基础,开发者可以根据具体需求对模板进行修改和扩展,以适应各种实际应用场景。在编写代码时,理解并熟练运用这些知识点能够提高...