找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1474|回复: 1
收起左侧

单片机点亮一个发光二极管知识点学习 代码详细注释

[复制链接]
ID:815459 发表于 2022-4-24 23:56 | 显示全部楼层 |阅读模式

部分知识点

部分知识点

仿真图

仿真图

附件有工程文件,努力学习吧少年。

注释得非常详细的单片机源程序如下:
  1. /*********************************************************************************************************************************************************************************************                                                            
  2.                           表1.6.1                            *    表1.6.2                                *                 表1.6.2                            *       表1.6.4                         *         表1.6.5                                                   *
  3. 常用数据类型      关键字          所占位数  表示数的范围     *  算数运算符 含义                            *  关系(逻辑)运算符         含义           *  位运算符   含义              *         基础语句        类型                         *
  4. 无符号字符型    unsigned char          8                        0~255                 *                              *       >                   大于           *     &                  逻辑与         *           if          选择语句                         *
  5. 有符号字符型    char               8          -128~127      *     +                   加法                    *      >=                        大于等于           *     |                  逻辑或         *           while           循环语句                         *
  6. 无符号整型      unsigned int       16        0~65535        *     -               减法                    *      <                            小于           *     ^                  异或                 *           for                   循环语句                         *
  7. 有符号整型      int                16        -32768~32767   *     *               乘法                        *      <=                                小于等于   *     ~                  取反                 *         switch/case   多分支选择语句         *
  8. 无符号长整型    unsigned iong       32                      *     /     除法(或求模运算)        *      ==                                测试相等   *         >>                  右移                 *         do-while           循环语句                         *
  9. 无符号长整型    iong                32                      *     ++               自加                        *     !=                                测试不等   *         <<                  左移                 *                                                                         *
  10. 单精度实型      float               32   3.4e-38~3.4e38     *     --               自减                        *     &&                                按位与           *                                                 *                                                                         *
  11. 双精度实型      double              64   17.e-308~1.7e30    *     %            求佘运算                        *     ||                                按位或           *                                                 *                                                                         *
  12. 位类型                      bit                 1      0~1                         *                                          *      !                                 非                   *                                                 *                                                                            *
  13. **********************************************************************************************************************************************************************************************/
  14. #include <REGX52.H>           //头文件                【正式语句】
  15. sbit led1=P1^0;           // 声明单片机P1口()  【正式语句】         在Pro仿真中:LED-YELLOW灯泡脚连接P1.0口
  16. /*********************************************************************************************************************************************************************************************
  17. 知识点:main()主函数的写法
  18. 格式:void main() 注意:后面没有分号。
  19. 特点:无返回值,无参数。
  20. 1、无返回值表示该函数执行完成后不返回任何值,上面main前面的void表示“空”,即不返回值的意思,后面我们会讲到有返回值的函数,到时大家一对比便会更加明白。
  21. 2、无参数表示该函数不带任何参数,即main后面的括号中没有任何参数,我们只写“()”就可以了,也可以在括号里写上void,表示“空”的意思,如void main(void)。
  22. 3、任何一个单片机C程序有且仅有一个main函数,它是整个程序开始执行的入口。大家注意看,在写完main()之后,在下面有两个花括号,这是C语言中函数写法的基本
  23.   要求之一,即在一个函数中,所有的代码都写在这个函数的两个大括号内,每条语句结束后都要加上分号,语句与语言之间可以用空格或回车嗝开。
  24. 例如:
  25. void main()
  26. {
  27. 总程序从这里开始执行;
  28.     其他语句;
  29.         .....
  30.         }

  31. **********************************************************************************************************************************************************************************************/
  32. void main()                   //主函数                【正式语句】
  33. {
  34. led1=0;                  //点亮第一个发光二极管   【正式语句】
  35. /*********************************************************************************************************************************************************************************************
  36. "led1=0;" 语句,也就是该程序中最核心的语句。在数字电路中,电平只有两种状态:高电平- 1;低电平- 0。显然,该语句的意思是,让P1囗的最低位清0,由于沒有操作其他口,
  37. 所以其余口均保持原来状态不变。
  38. **********************************************************************************************************************************************************************************************/                       
  39. while(1);                                                   //【正式语句】

  40. }
  41. /*****************************************************************
  42. 如何让程序停止在某处呢? 我们用while语句就可以实现。
  43. 知识点:while()语句   
  44. 格式:while(表达式)
  45.     {内部语句(内部可为空)}
  46. 特点:先判断表达式,后执行内部语句。
  47. 原则:若表达式不是0,即为真,那么执行语句。否则跳出while语句,执行后面的语句。
  48. 需要注意的三点:
  49. (1)在C语言中我们一般把"0"认为是"假","非0"认为是"真" ,也就是说,只要不是0就是真,所以1、2、3等都是真。
  50. (2)内部语句可为空,就是说while后面的大括号里什么都不写也是可以的,如“while(1){};”中“;” 一定不能少,否则while()会把跟在它后面第一个分号前的语句认为是它的内部语句。
  51. 例如:while(1)
  52.       P1=123;
  53.           P1=121;
  54.           ....
  55.   上面这个例子中,while()会把“P1=123;”当做它的语句,即使这条语句并没有加大括号。既然如此,那么我们以后在写程序时,如果while()内部只有一条语句,我们就可以省去大括号,而直接将这条语句跟在它的后面。
  56.   例如:while(1)
  57.   P1=123;

  58. (3)表达式可以是一个常数、一个运算或一个带返回值的函数。
  59. 有了上面的介绍,我们在程序最后加上“while(1)” 这样一条语句就可以让程序停止。因为该语句表达式值为1,内部语句为空,执行时先判断表达式值,因为为真,所以什么也不执行,然后再判断表达式,仍然为真,又不
  60. 执行,因为只有当表达式值为0时才可跳出while()语句,所以程序将不停地执行这条语句,也就是说单片机点亮发光管后将永远重复执行这条语句。
  61.   单片机是不能停止工作的,只有它有电,有晶振在起振,它就不停止工作,每过一个机器周期,它内部的程序指针就要加1,程序指针就指向下一条要执行的指令。不过我们可以将单片机设置为休眠状态或掉电模式,这样可以最大限度地降低它的功耗。

  62. *****************************************************************/
复制代码
51hei.png
Keil代码与Proteus仿真下载:
自学实例.rar (68.39 KB, 下载次数: 6)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1021434 发表于 2022-4-25 08:58 | 显示全部楼层
刚刚学习点亮一个LED,介绍的很详细,楼主可以详细介绍一下IF ,FOR语句吗?特别是IF。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表