小白必看:51 单片机常用语法基础科普

小白必看:51 单片机常用语法基础科普51 单片机编程通常使用 C 语言 以下为你介绍 51 单片机编程中常见的语法 数据类型 基本数据类型 char 字符型 占用 1 个字节 取值范围 128 到 127 有符号 或 0 到 255 无符号

欢迎大家来到IT世界,在知识的湖畔探索吧!

51单片机编程通常使用C语言,以下为你介绍51单片机编程中常见的语法:

小白必看:51 单片机常用语法基础科普

欢迎大家来到IT世界,在知识的湖畔探索吧!

数据类型

– 基本数据类型

– char:字符型,占用1个字节,取值范围 -128 到 127(有符号)或 0 到 255(无符号)。例如:`char a = -10;` ,`unsigned char b = 200;`。

– int:整型,一般占用2个字节,取值范围 -32768 到 32767(有符号)或 0 到 65535(无符号)。例如:`int num = 1000;`,`unsigned int count = 5000;`。

– long:长整型,占用4个字节,能表示更大的数值范围。例如:`long big_num = ;`。

– float 和 double:浮点型,用于表示小数。`float` 通常占用4个字节,`double` 占用8个字节,不过在51单片机中,由于资源有限,使用浮点型会消耗较多资源,应谨慎使用。例如:`float pi = 3.14;`。

小白必看:51 单片机常用语法基础科普

– 特殊数据类型

– bit:位类型,用于定义一个位变量,只能取值 0 或 1。例如:`bit flag = 1;`。

– sbit:特殊功能位声明,用于访问51单片机特殊功能寄存器中的某一位。例如:`sbit led = P1^0;` ,这里将P1口的第0位定义为 `led`。

– sfr:特殊功能寄存器声明,用于访问51单片机的特殊功能寄存器。例如:`sfr P1 = 0x90;` ,将地址 0x90 定义为 P1 口寄存器。

运算符

– 算术运算符:`+`(加)、`-`(减)、`*`(乘)、`/`(除)、`%`(取模)。例如:`int result = 10 + 5;`,`int remainder = 10 % 3;`。

– 关系运算符:`>`(大于)、`<`(小于)、`>=`(大于等于)、`<=`(小于等于)、`==`(等于)、`!=`(不等于)。常用于条件判断,例如:`if a> b) { … }`。

– 逻辑运算符:`&&`(逻辑与)、`||`(逻辑或)、`!`(逻辑非)。例如:`if ((a > 5) && (b < 10)) { … }`。

– 位运算符:`&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位取反)、`<<`(左移)、`>>`(右移)。在操作寄存器和处理二进制数据时常用,例如:`P1 = P1 & 0xFE;` ,将P1口的最低位清0。

小白必看:51 单片机常用语法基础科普

流程控制语句

– 条件语句

– if – else:根据条件判断执行不同的代码块。例如:

“`c

if (a > 10) {

// 条件成立时执行

P1 = 0xFF;

} else {

// 条件不成立时执行

P1 = 0x00;

}

“`

– switch – case:用于多分支选择。例如:

“`c

switch (key_value) {

case 0:

P1 = 0x01;

break;

case 1:

P1 = 0x02;

break;

default:

P1 = 0xFF;

break;

}

“`

– 循环语句

– for:适用于已知循环次数的情况。例如,让P1口的LED灯循环闪烁5次:

“`c

#include

void delay(unsigned int time);

void main() {

unsigned char i;

for (i = 0; i < 5; i++) {

P1 = 0x00; // 点亮LED

delay(500);

P1 = 0xFF; // 熄灭LED

delay(500);

}

}

void delay(unsigned int time) {

unsigned int i, j;

for (i = 0; i < time; i++)

for (j = 0; j < 125; j++);

}

“`

– while:先判断条件,条件为真时执行循环体。例如:

“`c

while (a < 10) {

a++;

P1 = a;

}

“`

– do – while:先执行一次循环体,再判断条件,条件为真时继续循环。例如:

“`c

do {

a++;

P1 = a;

} while (a < 10);

“`

函数

– 函数定义与调用:函数可以将一段代码封装起来,提高代码的复用性。例如:

“`c

#include

// 函数声明

void led_flash(void);

void main() {

while (1) {

led_flash(); // 调用函数

}

}

// 函数定义

void led_flash(void) {

P1 = 0x00; // 点亮LED

// 延时

unsigned int i, j;

for (i = 0; i < 500; i++)

for (j = 0; j < 125; j++);

P1 = 0xFF; // 熄灭LED

// 延时

for (i = 0; i < 500; i++)

for (j = 0; j < 125; j++);

}

“`

– 中断函数:51单片机有多个中断源,当相应的中断事件发生时,会自动跳转到中断函数执行。例如外部中断0的中断函数:

“`c

#include

void main() {

EA = 1; // 全局中断使能

EX0 = 1; // 外部中断0使能

IT0 = 1; // 设置外部中断0为下降沿触发

while (1) {

// 主程序代码

}

}

// 外部中断0中断函数

void int0_isr() interrupt 0 {

P1 = ~P1; // 翻转P1口状态

}

“`

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/113827.html

(0)
上一篇 2天前
下一篇 2天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信