资源描述:
《51-的简单c程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*程序功能:点亮四个发光二极管仿真功能:仿真使用8个共阴极数码管,当给P2的高4位置1;低4位置0时,根据二极管的单向导电性,高4位点亮而低4位不亮*/#includevoidmain(){P2=0xf0;//给P2口的高4位送1}/*程序功能:利用while语句实现4组发光二极管同时亮和灭*/#includevoidmain(){inti=100;while(1){while(i--){P0=0xff;P1=0xff;P2=0xff;P3=0xff;}while(i--){P0
2、=0x00;P1=0x00;P2=0x00;P3=0x00;}}}/*程序功能:让共阴极数码管循环显示从0到F*/#include//头文件#defineucharunsignedcharvoiddelay(unsignedintz)//延时子函数,用于0到F间的变化间隔的调整{unsignedintx,y;for(x=z;x>0;x--)for(y=120;y>0;y--);}voidmain()//主函数{while(1){ucharcodeLED[]={0x3f,0x06,0x5b,0x4f,
3、0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码管,从0到Fintnum=0;for(num=0;num<16;num++)//循环显示0到F{P1=LED[num];delay(300);}}}/*程序功能:共阴极数码管从0~99循环显示*/#include//头文件#defineuintunsignedint#defineucharunsignedcharsbitwela1=P2^0;sbitwela2=P2
4、^1;ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管数组uintge,shi;//定义个位和十位uintx,y;voiddelay(uintz)//延时函数{for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddisplay(uintge,uintshi)//数码管显示函数{wela1=0;P1=table[shi];//显示十位delay(50);wela1=1;wela2=0
5、;P1=table[ge];//显示个位delay(50);wela2=1;}voidmain(){inti;for(i=0;i<=99;i++)//定义变量i,并使其从0开始不断递增1,一直增加到99{ge=i%10;//取出个位数shi=i/10;//取出十位数display(ge,shi);//调用数码管显示函数delay(10);}}#include#defineuintunsignedintvoidmain(){uintkey;P1=0xff;//读P1口之前先将P1置0xffkey=P1
6、;//读取P1口的状态P2=key;}#include#defineuintunsignedint#defineucharunsignedchar#definekeyP2//与if语句中的定义不同,用16进制数表示具体的按键ucharkeynum;//定义全局变量,储存P2口的状态ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极数码管从0到f
7、的数组voiddelay(uintz){uintx,y;for(x=0;x8、/表示P2^0口的按键被按下P1=table[0];break;case(0xfd)://表示P2^1口的按键被按下P1=table[1];break;case(0xfb)://表示P2^2口的按键被按下P1=table[2];break;case(0xf7)://表示P2^3口的按键被按下P1=table[3];break;case(0xef