- 单片机C语言编程实践
- 程利民 朱晓玲主编
- 587字
- 2020-08-26 15:29:39
2.7 实践2
2.7.1 实践任务
1.学会运行一个C语言程序的方法和步骤。
2.分清C语言的符号、标识符和保留字的区别。
3.掌握C语言的数据类型,会定义整型、实型、字符型变量及对它们的赋值方法。
4.学会使用C的运算符及用这些运算符组成的表达式,特别是自加(++)和自减(--)运算符的使用。
2.7.2 实践设备
装有Keil C51 uvision3集成开发环境的计算机。
2.7.3 实践步骤
1.分析下列C语言程序,说明每一步的作用和执行结果。
#pragma symbols code /* 定义编译环境:产生符号列表、产生汇编程序列表*/ #include<stdio.h> // 包含输入、输出库函数 #include<reg52.h> // 包含硬件定义文件 sfr P4=0xe8; // 定义特殊功能寄存器P4的地址 sbit kg=P4^3; // 定义开关的位地址 #define pi 3.1415934 // 宏定义 void init_rs232(void) // 仿真串口初始化子函数 { T2CON=0x34; // 定时器2作为波特率发生器,自动重装 SCON=0xda; // 方式3,9位数据,单机通信,允许接收,TB8=1 RCAP2H=0xff; } main() // 主函数 { const int code kk=1000; // 定义各种变量 unsigned char bdata aa='\\'; char data bb=-220; unsigned int xdata cc=89100; int code dd=8910; unsigned long idata ee=(kk&200)*1234; long pdata ff=1300.234; float gg=pi; data hh=dd+(aa>bb); bit jj=aa; init_rs232(); // 调用仿真串口初始化子函数 printf("kk=%u\n",kk); // 打印各变量的初始值 printf("aa=%bu\n",aa); printf("bb=%bu\n",bb); printf("cc=%u\n",cc); printf("dd=%u\n",dd); printf("ee=%lu\n",ee); printf("ff=%lu\n",ff); printf("gg=%f\n",gg); printf("hh=%u\n",hh); printf("1---%d\n", (kk*aa+cc-bb%10)/11 ); // 进行算术运算 printf("2---%f\n", gg/2+(int)gg/2); printf("3---%f\n", gg/aa*bb+(float)ff/6); printf("4---%f\t", (float)8/3 ); printf("5---%f\n", (float)(8/3)); printf("6---%d\t", aa+(int)gg); printf("7---%bu\n", (char)hh ); printf("%bd\n",++aa+aa+++bb---bb++); // 进行自加、自减运算 printf("aa=%bu\n",aa); printf("bb=%bu\n",bb); printf("*1---%bu\n",~((aa<<4&bb>>3||0x23)^78)); // 进行逻辑运算和关系运算 printf("*2---%u\n",((kk%4==0)&&(kk%100!=0)||(kk%400==0))+(cc>=aa)+aa); printf("*3---%bu\n",aa<bb?3:bb>4?5:6); printf("*4---%u\n",(aa-=10,bb+=20+aa,cc=(int)aa+bb)); printf("*5---%bu\n",sizeof(gg)); printf("aa=%bu\n",aa); printf("bb=%bu\n",bb); printf("cc=%u\n",cc); for(;;){ } // 无限循环 }
2.说明变量aa、bb、cc、dd、ee、ff、gg、hh、jj、kk的数据类型、占用字节、存放位置、数值范围。
3.在Keil C51环境下建立上述C语言程序,编译通过后进入调试状态,单步运行,验证你的分析结果。
成绩评定