精华内容
下载资源
问答
  • 本文章为FPGA中关于赋值语句的介绍。
  • C语言赋值语句

    2021-02-22 16:15:40
    转自:http://www.pinlue.com/article/2020/06/0213/1810670913359.html
    展开全文
  • 不同的程序设计语言都会有不一样的表达式语句,如VB就是在表达式后面加入回车就构成了VB的表达式语句,而在51单片机的C语言中则是加入分号“;”构成表达式语句。举例如下:b = b * 10;Count++;X = A;Y = B;Page = (a...

    表达式语句是最基本的一种语句。不同的程序设计语言都会有不一样的表达式语句,如VB就是在表达式后面加入回车就构成了VB的表达式语句,而在51单片机的C语言中则是加入分号“;”构成表达式语句。举例如下:

    b = b * 10;

    Count++;

    X = A;Y = B;

    Page = (a+b)/a-1;

    以上的都是合法的表达式语句。在我收到的一些网友的Email中,发现很多初学的朋友往往在编写调试程序时忽略了分号“;”,造成程序不法被正常的编译。我个人的经验是在遇到编译错误时先语法是否有误,这在初学时往往会因在程序中加入了全角符号、运算符打错漏掉或没有在后面加“;”。

    在C语言中有一个特殊的表达式语句,称为空语句,它仅仅是由一个分号“;”组成。有时候为了使语法正确,那么就要求有一个语句,但这个语句又没有实际的运行效果那么这时就要有一个空语句。说起来就像大家在晚自修的时候用书包占位一样,呵呵。

    空语句通常用会以下两种用法。

    (1)while,for构成的循环语句后面加一个分号,形成一个不执行其它操作的空循环体。我会会常常用它来写等待事件发生的程序。大家要注意的是“;”号作为空语句使用时,要与语句中有效组成部分的分号相区分,如 for (;a《50000;a++);第一个分号也应该算是空语句,它会使a赋值为0(但要注意的是如程序前有a值,则a的初值为a的当前值),最后一个分号则使整个语句行成一个空循环。那么for (;a《50000;a++);就相当于for (a=0;a《50000;a++);我个人习惯是写后面的写法,这样能使人更容易读明白。

    (2)在程序中为有关语句提供标号,标记程序执行的位置,使相关语句能跳转到要执行的位置。这会用在goto语句中。

    下面的示例程序是简单说明while空语句的用法。硬件的功能很简单,就是在P3.7上接一个开关,当开关按下时P1上的灯会全亮起来。当然实际应用中按键的功能实现并没有这么的简单,往往还要进行防抖动处理等。

    先在我们的实验板上加一个按键。电路图如图8-1。

    e1a5021040fc5ae3548822be0a0e7482.png

    图8-1 加了按键的实验电路图

    程序如下:

    #include

    void main(void)

    {

    unsigned int a;

    do

    {

    P1 = 0xFF; //关闭P1上的LED

    while(P3_7); //空语句,等待P3_7按下为低电平,低电平时执行下面的语句

    P1 = 0; //点亮LED

    for(;a《60000;a++); //这也是空语句的用法,注意a的初值为当前值

    } //这样第一次按下时会有一延时点亮一段时间,以后按多久就亮多久

    while(1); //点亮一段时间后关闭再次判断P3_7,如此循环

    }

    展开全文
  • 单片机C语言关键语句.doc1. 十六进制表示字节0x5a:二进制;0x6E2. 如果将一个16位二进数赋给一个8位的字节变量,则自动截断为低8位,而丢掉高8位。3. ++var表示对变量var先增一;var—表示对变量后减一。4. x |= 0x...

    单片机C语言关键语句.doc

    1. 十六进制表示字节0x5a:二进制;0x6E

    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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含P2和P3

    2. void main( void ) //

    展开全文
  • 2014-07-13 回答也不知道你具体想要知道哪些c语言语句,下面有些基本知识的。。。希望对你有用,如还有疑问,记得回复下。。。1. 十六进制表示字节0x5a:二进制为01011010b;0x6e为01101110。2. 如果将一个16位二进...

    2014-07-13 回答

    也不知道你具体想要知道哪些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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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 //该头文档中有单片机内部资源的符号化定义,其中包含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

    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,则可编写出对应十六进制码的七段码表字节数据

    展开全文
  • 单片机常用的几种赋值操作

    千次阅读 2019-09-22 14:24:26
    之前使用单片机编程时,通常会使用一些较为不专业的语句,现在和大家一起学习下常见的单片机赋值操作; 一、把变量的某位清零 //定义一个变量 a = 1001 1111 b (二进制数) unsigned char a = 0x9f; //对 bit2 清零...
  • C51的源程序由一系列的语句组成,这些语句可以完成变量声明、赋值、控制和输入输出等操作。一条完整的语句必须以“;”结束。C51语言中的语句包括变量声明语句、表达式语句、复合语句、循环语句、条件语句、开关语句...
  • 其实单片机内的存储器是一维的,即所有数据都是依次顺序存储的,所以无论几维数组都由编译程序抽象出数组到单片机存储的实际的一维数组映射。 #include /* ----------------------------------------------------- ...
  • 单片机C语言编程常用语句.pptC51编程常用语句总结,一、C51定义SFR 定义方法两个关键字sfr和sbit 1.定义特殊功能寄存器用sfr 例如 sfr PSW0 xD0;/*定义程序状态字PSW的地址为D0H*/ sfr TMOD0 x89;/*定义定时器/...
  • 单片机C语言编程常用语句》由会员分享,可在线阅读,更多相关《单片机C语言编程常用语句(22页珍藏版)》请在人人文库网上搜索。1、C51程式设计一般陈述式摘要,1,C51 SFR定义方法:SFR和sbit 1的两个关键字。用于...
  • MCS-51系列单片机MCS-51系列单片机分为两大系列,即51子系列与52子系列。51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、895152子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、...
  • 比较常用的方法是跳转到程序的入口地址,利用汇编LJMP、JMP等跳转语句跳到程序的初始入口。但是现在常用的一些单片机(8051、STM32等)在硬件上都支持软件复位,配置专门的寄存器就可以实现复位功能。例如常用的8051...
  • 关于51单片机的IO接口的地址与赋值大小理解前提了解关于51单片机的IO接口的地址与赋值大小理解其他单片机定义 前提了解 提示:我们需要回顾C语言的类型定义,如int aa=1;代码编译运行的时候计算机运行到int aa=1,...
  • 单片机C语言C51的运算符及表达式

    千次阅读 2020-04-01 19:59:51
    1. 赋值运算符 赋值运算符“=”,在C51中,它的...”就构成了赋值语句,一个赋值语句的格式如下: 变量=表达式; 执行时先计算出右边表达式的值,然后赋给左边的变量。例如: x=8+9; /*将8+9的值赋绐变量x*/...
  • 单片机C语言案例教程习题解答 习题11. 在图1-3中,若MCU的P0.0和P2.0两引脚均为低电平,则四位数码管上有何显示。解:由图1-3可知,P0.0引脚为低电平,将使四位...”,和赋值语句“qw=0;P0=0Xfe”,则将如何影响...
  • 单片机C语言常用语句详解》由会员分享,可在线阅读,更多相关《单片机C语言常用语句详解(22页珍藏版)》请在人人文库网上搜索。1、C51编程中常见语句的总结。首先,C51定义了sfr定义方法:两个关键字:sfr和sbit 1...
  • 单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。⒈ 电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。⒊ 控制线:控制线共有4根,⑴ ALE/PROG:...
  • 在上一篇中《单片机实现跑马灯》中我们完成了一个漂亮的流水灯,里面有一段代码我们来分析一下吧,看看单片机是怎么理解这段代码的。 《单片机实现跑马灯》(点击图片跳转)#include  //此文件中定义了51的一些...
  • (2分)3、如图点亮VD3,VD4,VD5,VD6,其余灯灭掉,其赋值语句为 =0x ;(2分)4、定义指针变量p,其C语言表达为unsigned char ;(1分)5、C51单片机共有5个中断源,按照默认中断优先级分别为();();...
  • 单片机常用名词解释

    2017-08-10 16:42:12
    单片机常用名词解释
  • 本系列文章讲述了基于proteus仿真的51单片机学习,内容全面,不仅讲解电路原理,还讲解了单片机c语言,实例丰富,内容全面。
  • 本节书摘来自华章出版社《迷人的8051单片机》一书中的第3章,第3.2节,作者高显生,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 3.2 语句 C语言用语句来向计算机发出操作指令。一个C语句经编译后,...
  • 51单片机(十二)—— 单片机复位

    千次阅读 2020-02-19 19:50:38
    一、复位介绍 复位为单片机提供了一条从已知初始条件启动处理的途径。复位期间,大部分控制和状态寄存器被迫使用初始值,单片机... 这个图中集成了51单片机和AVR单片机的复位电路,对于51单片机,将J12上的跳线帽...
  •  所以,你在看别人写的程序的时候,会经常看到给单片机寄存器赋值语句。下面就以简单的控制51单片机引脚高低电平来说明一下。(不要总是存在51单片机已经淘汰的想法,51单片机至今任然是出货量的单片机,并且各...
  • 单片机笔记

    千次阅读 2020-02-17 14:52:38
    单片机第一章 第一章 将组成微型计算机的个功能部件:中央处理器(CPU)、存储器(RAM、ROM、EPROM)、定时/计数器、串行口、I/O接口电路集合在一块集成电路芯片中从而构成完整的微型计算机,故称:单晶片微型...
  • 51单片机学习

    千次阅读 多人点赞 2021-01-21 21:01:56
    单片机概述 1.什么是单片机 2.单片机的特点及应用领域 3.单片机的发展趋势 4.学习51单片机需要哪些基础知识 5.如何快速的掌握51单片机 微型计算机的应用形态 将cpu芯片、存储器芯片、I/O接口芯片和简单的I/O设备...
  • 看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求。前文中,小编曾对pic单片机汇编语言进行过部分讲解。本文中,将对pic单片机的清零等指令加以讲解,以帮助大家更好掌握pic...
  • 本系列文章讲述了基于proteus仿真的51单片机学习,内容全面,不仅讲解电路原理,还讲解了单片机c语言,实例丰富,内容全面。
  • 单片机复习

    千次阅读 2018-07-09 16:28:23
    单片机就是在一片硅片上集成了中央处理器、随机存储器、只读存储器、中断系统、定时/计数器和多种I/O口的微型计算机系统,该系统不带外部设备。从组成和功能上看,它已经具备了计算机系统的基本属性,所以也可以称其...
  • c51单片机符号作用.doc

    2020-08-24 13:31:27
    51单片机符号作用 编程中常用符号的意义 一注释符单行...四等于号 = 赋值语句把等号后面的值赋给等号前的变量中 五加号 + 整数或小数则表示值相加字符串则表示前后连接 六加加 ++ 表示把符号前的变量值加 1 例如 i++;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,453
精华内容 1,781
热门标签
关键字:

单片机赋值语句