《单片机新手教学教案-含流程图及程序.doc》由会员分享,可在线阅读,更多相关《单片机新手教学教案-含流程图及程序.doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date单片机新手教学教案-含流程图及程序单片机新手教学教案-含流程图及程序/赋值实例:用单片机控制第一个灯亮#include /包含51单片机寄存器定义的头文件void main(void)程序开始让第一个灯亮 P0=0xfe; /P0=1111 1110B,即P1.0输出低电平 /闪烁实例:用单片机控制一个灯闪烁#include /包含单片机寄存器的头文件/*函数功能:延
2、时一段时间*/void delay(void) /两个void意思分别为无需返回值,没有参数传递 unsigned int i; /定义无符号整数,最大取值范围65535 for(i=0;i20000;i+) /做20000次空什么也不做,等待一个机器周期/*程序开始让第一个灯亮让第一个灯灭延时函数功能:主函数 (C语言规定必须有也只能有1个主函数)*/void main(void) while(1) /无限循环 P0=0xfe; /P1=1111 1110B, P1.0输出低电平 delay(); /延时一段时间 P0=0xff; /P1=1111 1111B, P1.0输出高电平 dela
3、y(); /延时一段时间 /流水实例1:使用P0口流水点亮8位LED #include /包含单片机寄存器的头文件/*函数功能:延时一段时间*/让第五个灯亮让第四个灯亮让第三个灯亮让第二个灯亮让第一个灯亮让第六个灯亮让第七个灯亮让第八个灯亮程序开始延时void delay(void) unsigned char i,j; for(i=0;i250;i+) for(j=0;j250;j+); /*函数功能:主函数 *void main(void) while(1) P0=0xfe; /第一个灯亮 delay(); /调用延时函数 P0=0xfd; /第二个灯亮 delay(); /调用延时函数P
4、0=0xfb; /第三个灯亮 delay(); /调用延时函数P0=0xf7; /第四个灯亮 delay(); /调用延时函数P0=0xef; /第五个灯亮 delay(); /调用延时函数P0=0xdf; /第六个灯亮 delay(); /调用延时函数P0=0xbf; /第七个灯亮 delay(); /调用延时函数 P0=0x7f; /第八个灯亮 delay(); /调用延时函数 /流水实例2:用自增运算控制P0口8位LED流水花样#include /包含单片机寄存器的头文件/*函数功能:延时一段时间*/void delay(void) unsigned int i; for(i=0;i20
5、000;i+) ;/*函数功能:主函数*/void main(void) unsigned char i; for(i=0;i255;i+) /注意i的值不能超过255 P0=i; /将i的值送P0口 delay(); /调用延时函数/流水实例3:用右移运算流水点亮P1口8位LED#include /包含单片机寄存器的头文件/*函数功能:延时一段时间*/void delay(void) unsigned int n; for(n=0;n30000;n+);/*函数功能:主函数*/void main(void) unsigned char i; while(1) P0=0xff;delay();
6、for(i=0;i1; /每次循环P1的各二进位右移1位,高位补0delay(); /调用延时函数 /开关实例:用if语句控制P0口8位LED的点亮效果#include /包含单片机寄存器的头文件sbit S1=P14; /将S1位定义为P1.4sbit S2=P15; /将S2位定义为P1.5/*函数功能:主函数*/void main(void) while(1) if(S1=0) /如果按键S1按下 P0=0x0f; /P0口高四位LED点亮 if(S2=0) /如果按键S2按下 P0=0xf0; /P0口低四位LED点亮 程序开始低四位灯亮高四位灯亮开关2按下开关1按下? /开关实例3:
7、用swtich语句的控制P0口8位LED的点亮状态#include /包含单片机寄存器的头文件sbit S1=P14; /将S1位定义为P1.4/*函数功能:延时一段时间*/void delay(void) unsigned int n; for(n=0;n10000;n+); /*函数功能:主函数*/void main(void) unsigned char i; i=0; /将i初始化为0 while(1)if(S1=0) /如果S1键按下delay(); /延时一段时间 if(S1=0) /如果再次检测到S1键按下 i+; /i自增1 if(i=9) /如果i=9,重新将其置为1 i=1
8、; switch(i) /使用多分支选择语句 case 1: P0=0xfe; /第一个LED亮break;case 2: P0=0xfd; /第二个LED亮 break;case 3:P0=0xfb; /第三个LED亮 break;case 4:P0=0xf7; /第四个LED亮 break;case 5:P0=0xef; /第五个LED亮 break;case 6:P0=0xdf; /第六个LED亮 break;case 7:P0=0xbf; /第七个LED亮 break;case 8:P0=0x7f; /第八个LED亮 break;default: /缺省值,关闭所有LED P0=0xff; -