1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,实训项目-流水灯控制,学习P2口的使用方法。掌握使用C编程,掌握延时子程序的编写和使用,掌握C语言程序的编译和STC-ISP-V3.1软件的使用。,2.2 任务要求:,P2口做输出口,安装八只发光二极管(其输入端为高电平时发光二极管点亮),编写程序,使发光二极管按一定顺序循环点亮。,2.3 分析,先让这个端口中一个灯亮,再进行移位(用循环移位),再输出,在标准C语言中基本的变量数据类型为 char,int,short,long,float 和 double,而在c51编译器中int 和 short
2、 相同,float 和 double 相同。下面来看看它们的具体定义:,表 21 KEIL uVision2 单片机c语言编译器所支持的数据类型,数据类型,长 度,值 域,unsigned char,无符号字符型,单字节,0255,signed char,有符号字符型,单字节,-128+127,unsigned int,无符号整型,双字节,065535,signed int,整型,双字节,-32768+32767,unsigned long,无符号整型,四字节,04294967295,signed long,有符号整型,四字节,-2147483648+2147483647,Float,实型,四
3、字节,1.175494E-383.402823E+38,*指针型,13 字节,对象的地址,bit位型位,0 或 1,Sfr 访问 SFR的数据类型,单字节0255,sfr16访问16bitSFR的数据类型,双字节065535,sbit位型位0 或 1,尽可能选择unsigned型,使得生成的程序代码比signe型短的多。,程序编译时,C51自动进行类型转换,编译器先将低级数据类型转为较高级的数据类型。51单片机内部数据存储器的可寻址位(20H2FH)定义为bit型,而特殊功能寄存器的可位寻址的各位只能定义为sbit。,2.4 编程,/*,;LED3.c;流水灯程序,*/,#include,#d
4、efine uint unsigned int,#define uchar unsigned char,uchar a;,rotate();,void delay(uint);,void main(),P2=0 xff;,a=0 xfe;,P2=a;,while(1),rotate();,delay(600);,P2=a;,void delay(uint z),uint x,y;,for(x=100;x0;x-),for(y=z;y0;y-);,rotate(),uchar b,c;,b=a7;,c=a1;,a=b|c;,return a;,编译调试,1、建项目,2、建文件,3、编辑,4、调试,用循环移位来让LED流水,分析,编程,作业:,1、让两个发光二极管从两端向里亮,再由里向外亮,2、同时用单片机点亮低四位LED并流水。,