资源预览内容
第1页 / 共142页
第2页 / 共142页
第3页 / 共142页
第4页 / 共142页
第5页 / 共142页
第6页 / 共142页
第7页 / 共142页
第8页 / 共142页
第9页 / 共142页
第10页 / 共142页
亲,该文档总共142页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精选文档单片机编程实例100例大全单片机编程实例实例1:使用P3口流水滴亮8位LED#include/包括单片机寄存器的头文件/函数功能:延时一段时间voiddelay(void)unsignedchari,j;for(i=0;i250;i+)for(j=0;j250;j+);函数功能:主函数voidmain(void)while(1)P3=0xfe;/第一个灯亮delay();/调用延时函数P3=0xfd;/第二个灯亮delay();/调用延时函数P3=0xfb;/第三个灯亮142delay();/调用延时函数P3=0xf7;/第四个灯亮delay();/调用延时函数P3=0xef;/第五个灯亮delay();/调用延时函数P3=0xdf;/第六个灯亮delay();/调用延时函数P3=0xbf;/第七个灯亮delay();/调用延时函数P3=0x7f;/第八个灯亮delay();/调用延时函数/*实例2:经过对P3口地址的操作流水滴亮8位LED#include/包括单片机寄存器的头文件sfrx=0xb0;/P3口在储存器中的地址是b0H,经过sfr可定义8051内核单片机的所有内部8位特别功能寄存器,对地址x的操作也就是对P1口的操作/函数功能:延时一段时间/voiddelay(void)unsignedchari,j;for(i=0;i250;i+)for(j=0;j250;j+)/利用循环等候若干机器周期,从而延时一段时间/函数功能:主函数/voidmain(void)while(1)x=0xfe;/第一个灯亮delay();/调用延时函数x=0xfd;/第二个灯亮delay();/调用延时函数x=0xfb;/第三个灯亮delay();/调用延时函数x=0xf7;/第四个灯亮delay();/调用延时函数x=0xef;/第五个灯亮delay();/调用延时函数x=0xdf;/第六个灯亮delay();/调用延时函数x=0xbf;/第七个灯亮delay();/调用延时函数x=0x7f;/第八个灯亮delay();/调用延时函数实例3:用不一样数据种类控制灯闪耀时间#include/包括单片机寄存器的头文件/函数功能:用整形数据延时一段时间/voidint_delay(void)/延时一段较长的时间unsignedintm;/定义无符号整形变量,双字节数据,值域为065535for(m=0;m36000;m+)/空操作/函数功能:用字符型数据延时一段时间/voidchar_delay(void)/延时一段较短的时间unsignedchari,j;/定义无符号字符型变量,单字节数据,值域0255for(i=0;i200;i+)for(j=0;j180;j+)/空操作/函数功能:主函数/voidmain(void)unsignedchari;while(1)for(i=0;i3;i+)P1=0xfe;/口的灯点亮int_delay();/延时一段较长的时间P1=0xff;/熄灭int_delay();/延时一段较长的时间for(i=0;i3;i+)P1=0xef;/口的灯点亮char_delay();/延时一段较长的时间P1=0xff;/熄灭char_delay();/延时一段较长的时间实例4:用单片机控制第一个灯亮#include/包括51单片机寄存器定义的头文件voidmain(void)P1=0xfe;/P1=11111110B,即输出低电平实例5:用单片机控制一个灯闪耀:认识单片机的工作频率#include/包括单片机寄存器的头文件/函数功能:延时一段时间/voiddelay(void)/两个void意思分别为无需返回值,没有参数传递unsignedinti;/定义无符号整数,最大取值范围65535for(i=0;i20000;i+)/做20000次空循环/什么也不做,等候一个机器周期/函数功能:主函数(C语言规定一定有也只好有1个主函数)/voidmain(void)while(1)/无穷循环P1=0xfe;/P1=11111110B,输出低电平delay();/延时一段时间P1=0xff;/P1=11111111B,输出高电平delay();/延时一段时间实例6:将P1口状态分别送入P0、P2、P3口:认识I/O口的引脚功能#include/包括单片机寄存器的头文件/函数功能:主函数(C语言规定一定有也只好有1个主函数)/voidmain(void)while(1)/无穷循环P1=0xff;/P1=11111111B,熄灭LEDP0=P1;/将P1口状态送入P0口P2=P1;/将P1口状态送入P2口P3=P1;/将P1口状态送入P3口*实例7:用P0口、P1口分别显示加法和减法运算结果#includevoidmain(void)unsignedcharm,n;m=43;/即十进制数2x16+11=43n=60;/即十进制数3x16+12=60P1=m+n;/P1=103=01100111B,结果、口的灯被点亮P0=n-m;/P0=17=00010001B,结果、的灯被熄灭实例8:用P0、P1口显示乘法运算结果#include/包括单片机寄存器的头文件voidmain(void)unsignedcharm,n;unsignedints;m=64;n=71;s=mn;/s=6471=4544,需要16位二进制数表示,高8位送P1口,低8位送P0口因为4544=17256+192=H3161616+H21616+H116+H0两边同除以256,可得17+192/256=H316+H2+(H116+H0)/256所以,高8位16进制数H316+H2必然等于17,即4544除以256的商低8位16进制数H116+H0必然等于192,即4544除以256的余数P1=s/256;/高8位送P1口,P1=17=11H=00010001B,和口灭,其他亮P0=s%256;/低8位送P0口,P3=192=c0H=11000000B,口灭,其他亮实例9:用P1、P0口显示除法运算结果#include/包括单片机寄存器的头文件voidmain(void)P1=36/5;/求整数P0=(36%5)10)/5;/求小数while(1)/无穷循环防范程序“跑飞”实例10:用自增运算控制P0口8位LED流水花式#include/包括单片机寄存器的头文件/函数功能:延时一段时间/voiddelay(void)unsignedinti;for(i=0;i20000;i+);函数功能?:主函数voidmain(void)unsignedchari;for(i=0;i255;i+)/注意i的值不可以超出255P0=i;/将i的值送P0口delay();/调用延时函数*实例11:用P0口显示逻辑与运算结果#include/包括单片机寄存器的头文件voidmain(void)P0=(40)&(90xab);/将逻辑运算结果送P0口while(1)/设置无穷循环,防范程序“跑飞”实例12:用P0口显示条件运算结果#include/包括单片机寄存器的头文件voidmain(void)P0=(84)?8:4;/将条件运算结果送P0口,P0=8=00001000Bwhile(1)/设置无穷循环,防范程序“跑飞”*实例13:用P0口显示按位异或运算结果#include/包括单片机寄存器的头文件voidmain(void)P0=0xa20x3c;/将条件运算结果送P0口,P0=8=00001000Bwhile(1)/设置无穷循环,防范程序“跑飞”* 实例16:用P0显示左移运算结果#include/包括单片机寄存器的头文件voidmain(void)P0=0x3b2;/将左移运算结果送P0口,P0=11101100B=0xecwhile(1)/无穷循环,防范程序“跑飞”实例17:全能逻辑电路实验#include/包括单片机寄存器的头文件sbitF=P14;/将F位定义为sbitX=P15;/将X位定义为sbitY=P16;/将Y位定义为sbitZ=P17;/voidmain(void)while(1)将Z位定义为F=(X)&Y)|Z;/将逻辑运算结果赋给F;*实例18:用右移运算流水滴亮P1口8位LED#include/包括单片机寄存器的头文件/函数功能:延时一段时间/voiddelay(void)unsignedintn;for(n=0;n30000;n+);/函数功能:主函数/voidmain(void)unsignedchari;while(1)P1=0xff;delay();for(i=0;i1;/每次循环P1的各二进位右移1位,高位补0delay();调用延时函数*实例19:用if语
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号