当前位置:首页 » 编程语言 » 单片机c语言常用语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

单片机c语言常用语句

发布时间: 2022-07-11 05:53:53

㈠ 求一份单片机c语言编程的32个关键字和9种控制语句的主要作用表

auto
:声明自动变量
short
:声明短整型变量或函数
int:
声明整型变量或函数
long
:声明长整型变量或函数
float:声明浮点型变量或函数
double
:声明双精度变量或函数
char
:声明字符型变量或函数
struct:声明结构体变量或函数
union:声明共用数据类型
enum
:声明枚举类型
typedef:用以给数据类型取别名
const
:声明只读变量
unsigned:声明无符号类型变量或函数
signed:声明有符号类型变量或函数
extern:声明变量是在其他文件中声明
register:声明寄存器变量
static
:声明静态变量
volatile:说明变量在程序执行中可被隐含地改变
void
:声明函数无返回值或无参数,声明无类型指针
if:条件语句
else
:条件语句否定分支(与
if
连用)
switch
:用于开关语句
case:开关语句分支
for:一种循环语句
do
:循环语句的循环体
while
:循环语句的循环条件
goto:无条件跳转语句
continue:结束当前循环,开始下一轮循环
break:跳出当前循环
default:开关语句中的“其他”分支
sizeof:计算数据类型长度
return
:子程序返回语句(可以带参数,也可不带参数)循环条件

㈡ 求单片机C语言所有语句

也不知道你具体想要知道哪些C语言语句,下面有些基本知识的。。。希望对你有用,如还有疑问,记得回复下。。。
1. 十六进制表示字节0x5a:二进制为01011010B;0x6E为01101110。
2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。
3. ++var表示对变量var先增一;var—表示对变量后减一。
4. x |= 0x0f;表示为 x = x | 0x0f;
5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示给变量TMOD的低四位赋值0x5,而不改变TMOD的高四位。
6. While( 1 ); 表示无限执行该语句,即死循环。语句后的分号表示空循环体,也就是{;}
在某引脚输出高电平的编程方法:(比如P1.3(PIN4)引脚)
代码
1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P1.3
2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3. {
4. P1_3 = 1; //给P1_3赋值1,引脚P1.3就能输出高电平VCC
5. While( 1 ); //死循环,相当 LOOP: goto LOOP;
6. }

注意:P0的每个引脚要输出高电平时,必须外接上拉电阻(如4K7)至VCC电源。
在某引脚输出低电平的编程方法:(比如P2.7引脚)
代码
1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2.7
2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3. {
4. P2_7 = 0; //给P2_7赋值0,引脚P2.7就能输出低电平GND
5. While( 1 ); //死循环,相当 LOOP: goto LOOP;
6. }
在某引脚输出方波编程方法:(比如P3.1引脚)
代码
1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P3.1
2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3. {
4. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句
5. {
6. P3_1 = 1; //给P3_1赋值1,引脚P3.1就能输出高电平VCC
7. P3_1 = 0; //给P3_1赋值0,引脚P3.1就能输出低电平GND
8. } //由于一直为真,所以不断输出高、低、高、低……,从而形成方波
9. }
将某引脚的输入电平取反后,从另一个引脚输出:( 比如 P0.4 = NOT( P1.1) )
代码
1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P0.4和P1.1
2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3. {
4. P1_1 = 1; //初始化。P1.1作为输入,必须输出高电平
5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句
6. {
7. if( P1_1 == 1 ) //读取P1.1,就是认为P1.1为输入,如果P1.1输入高电平VCC
8. { P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND
9. else //否则P1.1输入为低电平GND
10. //{ P0_4 = 0; } //给P0_4赋值0,引脚P0.4就能输出低电平GND
11. { P0_4 = 1; } //给P0_4赋值1,引脚P0.4就能输出高电平VCC
12. } //由于一直为真,所以不断根据P1.1的输入情况,改变P0.4的输出电平
13. }
将某端口8个引脚输入电平,低四位取反后,从另一个端口8个引脚输出:( 比如 P2 = NOT( P3 ) )
代码
1. #include <AT89x52.h> //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3
2. void main( void ) //void 表示没有输入参数,也没有函数返值,这入单片机运行的复位入口
3. {
4. P3 = 0xff; //初始化。P3作为输入,必须输出高电平,同时给P3口的8个引脚输出高电平
5. While( 1 ) //非零表示真,如果为真则执行下面循环体的语句
6. { //取反的方法是异或1,而不取反的方法则是异或0
7. P2 = P3^0x0f //读取P3,就是认为P3为输入,低四位异或者1,即取反,然后输出
8. } //由于一直为真,所以不断将P3取反输出到P2
9. }

注意:一个字节的8位D7、D6至D0,分别输出到P3.7、P3.6至P3.0,比如P3=0x0f,则P3.7、P3.6、P3.5、P3.4四个引脚都输出低电平,而P3.3、P3.2、P3.1、P3.0四个引脚都输出高电平。同样,输入一个端口P2,即是将P2.7、P2.6至P2.0,读入到一个字节的8位D7、D6至D0。
第一节:单数码管按键显示
单片机最小系统的硬件原理接线图:
1. 接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容0.1uF
2. 接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用12MHz),还有辅助电容30pF
3. 接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析复位工作原理
4. 接配置:EA(PIN31)。说明原因。
发光二极的控制:单片机I/O输出
将一发光二极管LED的正极(阳极)接P1.1,LED的负极(阴极)接地GND。只要P1.1输出高电平VCC,LED就正向导通(导通时LED上的压降大于1V),有电流流过LED,至发LED发亮。实际上由于P1.1高电平输出电阻为10K,起到输出限流的作用,所以流过LED的电流小于(5V-1V)/10K = 0.4mA。只要P1.1输出低电平GND,实际小于0.3V,LED就不能导通,结果LED不亮。
开关双键的输入:输入先输出高
一个按键KEY_ON接在P1.6与GND之间,另一个按键KEY_OFF接P1.7与GND之间,按KEY_ON后LED亮,按KEY_OFF后LED灭。同时按下LED半亮,LED保持后松开键的状态,即ON亮OFF灭。
代码
1. #include <at89x52.h>
2. #define LED P1^1 //用符号LED代替P1_1
3. #define KEY_ON P1^6 //用符号KEY_ON代替P1_6
4. #define KEY_OFF P1^7 //用符号KEY_OFF代替P1_7
5. void main( void ) //单片机复位后的执行入口,void表示空,无输入参数,无返回值
6. {
7. KEY_ON = 1; //作为输入,首先输出高,接下KEY_ON,P1.6则接地为0,否则输入为1
8. KEY_OFF = 1; //作为输入,首先输出高,接下KEY_OFF,P1.7则接地为0,否则输入为1
9. While( 1 ) //永远为真,所以永远循环执行如下括号内所有语句
10. {
11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1输出高,LED亮
12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1输出低,LED灭
13. } //松开键后,都不给LED赋值,所以LED保持最后按键状态。
14. //同时按下时,LED不断亮灭,各占一半时间,交替频率很快,由于人眼惯性,看上去为半亮态
15. }
数码管的接法和驱动原理
一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点。作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h。对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h。
我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号;对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。
如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极。否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极。
以单支共阴数码管为例,可将段极接到某端口Pn,共阴极接GND,则可编写出对应十六进制码的七段码表字节数据

㈢ 单片机C语言:3个条件判断语句、3个循环语句、3个跳转语句和1个开关语句。

条件判断语句:if语句、switch语句、condition ? exp1 : exp2(问号表达式)
循环语句:for语句、while语句、do...while
跳转语句:continue、break、goto
开关语句:switch语句

㈣ 单片机C语言语句

1、bit 位定义2、无返回值 是指函数没有返回值如 void huanshu(void) 有返回值是函数有返回值如:void huanshu(uint a) 3、unsigned long 为无符号长整型 xdata外部扩展RAM数据,LedOut数组名。[8]为数组里有8个元素

㈤ 单片机c语言基本语句dat<<=8是什么

dat<<=8
也就是:
dat=dat<<8=dat<<2^3
也就是将dat的二进制值左移3位,右端用0补充

㈥ 关于单片机C语言中的for语句

延时函数 For(j=110;j>0;j--);中的110不是计算出来的,是经验值,当晶振是11.0592M时为110,位12M时一般应该为120,这是12T模式时的值,如果是6T或者STC的1T模式,该值就不对了。

㈦ 单片机中常用到的C语言是什么,主要用到哪些。

只需要几个最常见的语句:if、for、while。
对于单片机的学习,要多动手实践,多自己琢磨,可以用一个开发板,类似于吴(鉴 鹰)开发板。

㈧ 单片机c语言编程时会用到哪些常用的C语

关键字
用 途
说 明

auto
存储种类说明
用以说明局部变量,缺省值为此

break
程序语句
退出最内层循环

case
程序语句
Switch语句中的选择项

char
数据类型说明
单字节整型数或字符型数据

const
存储类型说明
在程序执行过程中不可更改的常量值

continue
程序语句
转向下一次循环

default
程序语句
Switch语句中的失败选择项

do
程序语句
构成do..while循环结构

double
数据类型说明
双精度浮点数

else
程序语句
构成if..else选择结构

enum
数据类型说明
枚举

extern
存储种类说明
在其他程序模块中说明了的全局变量

flost
数据类型说明
单精度浮点数

for
程序语句
构成for循环结构

goto
程序语句
构成goto转移结构

if
程序语句
构成if..else选择结构

int
数据类型说明
基本整型数

long
数据类型说明
长整型数

register
存储种类说明
使用CPU内部寄存的变量

return
程序语句
函数返回

short
数据类型说明
短整型数

signed
数据类型说明
有符号数,二进制数据的最高位为符号位

sizeof
运算符
计算表达式或数据类型的字节数

static
存储种类说明
静态变量

struct
数据类型说明
结构类型数据

swicth
程序语句
构成switch选择结构

typedef
数据类型说明
重新进行数据类型定义

union
数据类型说明
联合类型数据

unsigned
数据类型说明
无符号数数据

void
数据类型说明
无类型数据

volatile
数据类型说明
该变量在程序执行中可被隐含地改变

while
程序语句
构成while和do..while循环结构

附表1-1 ANSIC标准关键字

关键字
用 途
说 明

bit
位标量声明
声明一个位标量或位类型的函数

sbit
位标量声明
声明一个可位寻址变量

Sfr
特殊功能寄存器声明
声明一个特殊功能寄存器

Sfr16
特殊功能寄存器声明
声明一个16位的特殊功能寄存器

data
存储器类型说明
直接寻址的内部数据存储器

bdata
存储器类型说明
可位寻址的内部数据存储器

idata
存储器类型说明
间接寻址的内部数据存储器

pdata
存储器类型说明
分页寻址的外部数据存储器

xdata
存储器类型说明
外部数据存储器

code
存储器类型说明
程序存储器

interrupt
中断函数说明
定义一个中断函数

reentrant
再入函数说明
定义一个再入函数

using
寄存器组定义
定义芯片的工作寄存器

附表1-2 C51编译器的扩展关键字

附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)
符 号
地 址
注 释

*ACC
E0H
累加器

*B
F0H
乘法寄存器

*PSW
D0H
程序状态字

SP
81H
堆栈指针

DPL
82H
数据存储器指针低8位

DPH
83H
数据存储器指针高8位

*IE
A8H
中断允许控制器

*IP
D8H
中断优先控制器

*P0
80H
端口0

*P1
90H
端口1

*P2
A0H
端口2

*P3
B0H
端口3

PCON
87H
电源控制及波特率选择

*SCON
98H
串行口控制器

SBUF
99H
串行数据缓冲器

*TCON
88H
定时器控制

TMOD
89H
定时器方式选择

TL0
8AH
定时器0低8位

TL1
8BH
定时器1低8位

TH0
8CH
定时器0低8位

TH1
8DH
定时器1高8位

带*号的特殊功能寄存器都是可以位寻址的寄存器