部分知识点
仿真图
附件有工程文件,努力学习吧少年。
注释得非常详细的单片机源程序如下:
- /*********************************************************************************************************************************************************************************************
- 表1.6.1 * 表1.6.2 * 表1.6.2 * 表1.6.4 * 表1.6.5 *
- 常用数据类型 关键字 所占位数 表示数的范围 * 算数运算符 含义 * 关系(逻辑)运算符 含义 * 位运算符 含义 * 基础语句 类型 *
- 无符号字符型 unsigned char 8 0~255 * * > 大于 * & 逻辑与 * if 选择语句 *
- 有符号字符型 char 8 -128~127 * + 加法 * >= 大于等于 * | 逻辑或 * while 循环语句 *
- 无符号整型 unsigned int 16 0~65535 * - 减法 * < 小于 * ^ 异或 * for 循环语句 *
- 有符号整型 int 16 -32768~32767 * * 乘法 * <= 小于等于 * ~ 取反 * switch/case 多分支选择语句 *
- 无符号长整型 unsigned iong 32 * / 除法(或求模运算) * == 测试相等 * >> 右移 * do-while 循环语句 *
- 无符号长整型 iong 32 * ++ 自加 * != 测试不等 * << 左移 * *
- 单精度实型 float 32 3.4e-38~3.4e38 * -- 自减 * && 按位与 * * *
- 双精度实型 double 64 17.e-308~1.7e30 * % 求佘运算 * || 按位或 * * *
- 位类型 bit 1 0~1 * * ! 非 * * *
- **********************************************************************************************************************************************************************************************/
- #include <REGX52.H> //头文件 【正式语句】
- sbit led1=P1^0; // 声明单片机P1口() 【正式语句】 在Pro仿真中:LED-YELLOW灯泡脚连接P1.0口
- /*********************************************************************************************************************************************************************************************
- 知识点:main()主函数的写法
- 格式:void main() 注意:后面没有分号。
- 特点:无返回值,无参数。
- 1、无返回值表示该函数执行完成后不返回任何值,上面main前面的void表示“空”,即不返回值的意思,后面我们会讲到有返回值的函数,到时大家一对比便会更加明白。
- 2、无参数表示该函数不带任何参数,即main后面的括号中没有任何参数,我们只写“()”就可以了,也可以在括号里写上void,表示“空”的意思,如void main(void)。
- 3、任何一个单片机C程序有且仅有一个main函数,它是整个程序开始执行的入口。大家注意看,在写完main()之后,在下面有两个花括号,这是C语言中函数写法的基本
- 要求之一,即在一个函数中,所有的代码都写在这个函数的两个大括号内,每条语句结束后都要加上分号,语句与语言之间可以用空格或回车嗝开。
- 例如:
- void main()
- {
- 总程序从这里开始执行;
- 其他语句;
- .....
- }
- **********************************************************************************************************************************************************************************************/
- void main() //主函数 【正式语句】
- {
- led1=0; //点亮第一个发光二极管 【正式语句】
- /*********************************************************************************************************************************************************************************************
- "led1=0;" 语句,也就是该程序中最核心的语句。在数字电路中,电平只有两种状态:高电平- 1;低电平- 0。显然,该语句的意思是,让P1囗的最低位清0,由于沒有操作其他口,
- 所以其余口均保持原来状态不变。
- **********************************************************************************************************************************************************************************************/
- while(1); //【正式语句】
- }
- /*****************************************************************
- 如何让程序停止在某处呢? 我们用while语句就可以实现。
- 知识点:while()语句
- 格式:while(表达式)
- {内部语句(内部可为空)}
- 特点:先判断表达式,后执行内部语句。
- 原则:若表达式不是0,即为真,那么执行语句。否则跳出while语句,执行后面的语句。
- 需要注意的三点:
- (1)在C语言中我们一般把"0"认为是"假","非0"认为是"真" ,也就是说,只要不是0就是真,所以1、2、3等都是真。
- (2)内部语句可为空,就是说while后面的大括号里什么都不写也是可以的,如“while(1){};”中“;” 一定不能少,否则while()会把跟在它后面第一个分号前的语句认为是它的内部语句。
- 例如:while(1)
- P1=123;
- P1=121;
- ....
- 上面这个例子中,while()会把“P1=123;”当做它的语句,即使这条语句并没有加大括号。既然如此,那么我们以后在写程序时,如果while()内部只有一条语句,我们就可以省去大括号,而直接将这条语句跟在它的后面。
- 例如:while(1)
- P1=123;
- (3)表达式可以是一个常数、一个运算或一个带返回值的函数。
- 有了上面的介绍,我们在程序最后加上“while(1)” 这样一条语句就可以让程序停止。因为该语句表达式值为1,内部语句为空,执行时先判断表达式值,因为为真,所以什么也不执行,然后再判断表达式,仍然为真,又不
- 执行,因为只有当表达式值为0时才可跳出while()语句,所以程序将不停地执行这条语句,也就是说单片机点亮发光管后将永远重复执行这条语句。
- 单片机是不能停止工作的,只有它有电,有晶振在起振,它就不停止工作,每过一个机器周期,它内部的程序指针就要加1,程序指针就指向下一条要执行的指令。不过我们可以将单片机设置为休眠状态或掉电模式,这样可以最大限度地降低它的功耗。
- *****************************************************************/
复制代码
Keil代码与Proteus仿真下载:
自学实例.rar
(68.39 KB, 下载次数: 6)
|