写在所有一切之前。 程序是思维的一种表达方式,是一个人思维过程的体现! 程序是用来完成某件事情的,所以最关键的是自己的头脑中要有清晰的解决某件事情的方法,而且这个方法是可以形成文字的,可以用第一步做什么,第二步做什么,第三步做什么。。。。。来表达出来。 而程序的具体实现是借助了不同的符号,所以有汇编语言,有C语言,有C51语言等等。而具体写程序的过程就是把上面的第一步,第二步等等步骤用具体的符号来表达的过程,也就是我们所说的语法。 C51语言的语法相对而言简单明了,现简单归纳,作为一个简明教程供同学们学习!
C51语言简明教程
一、常量 (1)无符号单字节数 (2)带符号单字节数 (3)无符号双字节数 (4)带符号双字节数 (5)浮点数,占用4个字节
二、变量 (1)无符号单字节数:unsigned char (2)带符号单字节数:char (3)无符号双字节数:unsigned int (4)带符号双字节数:int (5)浮点数,占用4个字节:float (6)位变量:sbit (7)数组: Arrary[ ][ ] (8)联合体:union union{ int i_Data; unsigned char b_Data[2]; }u_int; (9)结构体:struct struct Stu_Channel_Info{ unsigned char Device_Info; unsigned int Device_ID; unsigned int Device_Time; }Channel_Info[con_MaxNumber]; (10)指针:在C51语言中,我们尽量避免指针。
三、存储类型 code:指放到程序存储器中,不可变得常数 比如:unsigned char code x data:指内部RAM低128字节空间 00~7FH比如:unsigned char data x idata:指全部内部RAM空间00H~FFH。unsigned char idata x bdata:指放到可位寻址区域20H~2FH中 unsigned char bdata x pdata:指可用Ri寻址的区域,通常固定为外部RAM256字节 unsigend char pdata x xdata:指外部64KBRAM空间 unsiged char xdata x 四、关于运算符号 +:加法运算 -:减法运算 *:乘法运算 /:除法运算 %:取余数 <<:左移 >>:右移 =:等于 &:与操作 |:或操作 ~:取反 &&:逻辑与 ||:逻辑或 五、关于位操作 (1)口线位操作 sbit Left_Red P1^0 表示用Left_Red来表示P1.0位 Left_Red = 0则表示将P1.0清零 Left_Red = 1则表示将P1.0置位
(2)位变量的操作方法 unsigend char bdata Control_Port; // 声明一个可位寻址的字节变量 sbit Output1 = Control_Port^1; // 引用该字节变量的某一位 sbit Output2 = Control_Port^2; sbit Output3 = Control_Port^3; 则我们可以对Control_Port操作,也可以直接对其中定义好的位变量直接操作
六、关于外部端口的操作 #define LED_Address XBYTE[0xC400] 固定LED_Address为0xC400地址 读该端口的方法:x = LED_Address; 写该端口的方法:LED_Address = x; LED_Address = 0x33; LED_Address = Arr[5];
七、外部RAM区的操作 unsigned char xdata Arr[20]; 表示声明了20个字节的外部RAM空间 写方法:Arr[1] = 1; 读方法:x = Arr[1]; unsigned char xdata Arr[20] _at_ 0x0000; 表示这20个外部RAM的起始地址为0x0000
八、普通函数的书写方法: void Delay( void ){ } void Output( unsigned char x ){ }
unsigned char Input( void ){ }
unsigned char Key_Disp( unsigned char *P ){ }
九、中断服务函数的写法: void p_Int0( void ) interrupt 0 using 0{ } 其中interrupt 0 表示第0号中断,即INT0中断 using 0 表示中断服务程序中使用的工作组为0区。
十、常用语句 if ( ){ } else { }
for( ; ; ; ) { }
while( ) { } switch( ){ case : break; case : barek;
default: break; }
十一、书写规范 x = x + 1;
for( i = 1; i < 10; i++ ){ j = Arr[5] + i; }
void Delay_10ms( void ){
unsigned char i; for( i = 0; i < 100; i++ ) { }
}
就总结这么多吧,同学们多从基础练习,编写程序是一件非常快乐的事情,希望同学们多细心体会!
|