51STC单片机C语言的差别Word下载.docx
- 文档编号:15059870
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:24
- 大小:22.83KB
51STC单片机C语言的差别Word下载.docx
《51STC单片机C语言的差别Word下载.docx》由会员分享,可在线阅读,更多相关《51STC单片机C语言的差别Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
assert.h>
//设定插入点
ctype.h>
//字符处理
errno.h>
//定义错误码
float.h>
//浮点数处理
fstream.h>
//文件输入/输出
iomanip.h>
//参数化输入/输出
iostream.h>
//数据流输入/输出
limits.h>
//定义各种数据类型最值常量
locale.h>
//定义本地化函数
math.h>
//定义数学函数
stdio.h>
//定义输入/输出函数
stdlib.h>
//定义杂项函数及内存分配函数
string.h>
//字符串处理
strstrea.h>
//基于数组的输入/输出
time.h>
//定义关于时间的函数
wchar.h>
//宽字符处理及输入/输出
wctype.h>
//宽字符分类
intrins.h>
//51基本运算(包括_nop_空函数)
sfr[自定义名]=[SFR地址];
//按字节定义SFR中的存储器名。
例:
sfrP1=0x90;
sbit[自定义名]=[系统位名];
//按位定义SFR中的存储器名。
sbitAdd_Key=P3^1;
bit[自定义名];
//定义一个位(位的值只能是0或1)例:
bitLED;
#define[代替名][原名]//用代替名代替原名。
#defineLEDP1/#defineTA0x25
#defineKEYP1//键盘所连接的I/O接口组定义
sbitSPEAKER=P3^7;
//扬声器连接定义
sbitDQ=P2^5;
//ds18B20
sbitRS=P1^0;
//模式位,为0输入指令,为1输入数据
sbitRW=P1^1;
//读写位,为0读,为1写
sbitE=P1^2;
//使能位
#defineLcd_BusP0//数据总线
unsignedchar[自定义名];
//定义一个0~255的整数变量。
unsignedint[自定义名];
//定义一个0~65535的整数变量。
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;
函数名:
毫秒级CPU延时函数
调用:
DELAY_MS(?
);
参数:
1~65535(参数不可为0)
返回值:
无
结果:
占用CPU方式延时与参数数值相同的毫秒时间
备注:
应用于1T单片机时i<
600,应用于12T单片机时i<
125(在此预为1T单片机数值)
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中的值自动写入TL
113两组8位T/C
定时/计数器初始化函数
T_C_init();
设置SFR中T/C1和(或)T/C0相关参数
本函数控制T/C1和T/C0,不需要使用的部分可用//屏蔽
/**********************************************************************************************/
voidT_C_init(void){
TMOD=0x11;
//高4位控制T/C1[GATE,C/T,M1,M0,GATE,C/T,M1,M0]
EA=1;
//中断总开关
TH1=0xFF;
//16位计数寄存器T1高8位(写入初值)
TL1=0xFF;
//16位计数寄存器T1低8位
ET1=1;
//T/C1中断开关
TR1=1;
//T/C1启动开关
//TH0=0x3C;
//16位计数寄存器T0高8位
//TL0=0xB0;
//16位计数寄存器T0低8位(0x3CB0=50mS延时)
//ET0=1;
//T/C0中断开关
//TR0=1;
//T/C0启动开关
定时/计数器1中断处理函数
[T/C1溢出后中断处理]
重新写入16位计数寄存器初始值,处理用户程序
必须允许中断并启动T/C本函数方可有效,重新写入初值需和T_C_init函数一致
voidT_C1(void)interrupt3using3{//切换寄存器组到3
TH1=0x3C;
//16位计数寄存器T1高8位(重新写入初值)
TL1=0xB0;
//16位计数寄存器T1低8位(0x3CB0=50mS延时)
//函数内容
定时/计数器0中断处理函数
[T/C0溢出后中断处理]
voidT_C0(void)interrupt1using1{//切换寄存器组到1
TH0=0x3C;
//16位计数寄存器T0高8位(重新写入初值)
TL0=0xB0;
PWM初始化函数
PWM_init();
将PCA初始化为PWM模式,初始占空比为0
需要更多路PWM输出直接插入CCAPnH和CCAPnL即可
voidPWM_init(void){
CMOD=0x02;
//设置PCA定时器
CL=0x00;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 STC 单片机 语言 差别