《2022年单片机新手教学教案含流程图及程序 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机新手教学教案含流程图及程序 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习必备欢迎下载/ 赋值实例:用单片机控制第一个灯亮#include / 包含 51单片机寄存器定义的头文件void main(void) P0=0 xfe; /P0=1111 1110B ,即 P1.0输出低电平 / 闪烁实例:用单片机控制一个灯闪烁#include / 包含单片机寄存器的头文件/* 函数功能:延时一段时间*/ void delay(void) / 两个 void意思分别为无需返回值, 没有参数传递 unsigned int i; / 定义无符号整数,最大取值范围65535 for(i=0;i20000;i+) / 做 20000 次空什么也不做,等待一个机器周期 /* 函数
2、功能:主函数(C语言规定必须有也只能有1 个主函数)*/ void main(void) while(1) / 无限循环 P0=0 xfe; /P1=1111 1110B, P1.0输出低电平delay(); / 延时一段时间P0=0 xff; /P1=1111 1111B, P1.0输出高电平delay(); / 延时一段时间 程序开始让第一个灯亮程序开始让第一个灯亮让第一个灯灭延时精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 7 页 - - - - - - - - - - 学习必备欢迎下
3、载/ 流水实例 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=0 xfe; / 第一个灯亮delay(); / 调用延时函数P0=0 xfd; / 第二个灯亮delay(); / 调用延时函数P0=0 xfb; / 第三个灯亮delay(); / 调用延时函数P0=0 xf7; / 第四个灯亮de
4、lay(); / 调用延时函数P0=0 xef; / 第五个灯亮delay(); / 调用延时函数P0=0 xdf; / 第六个灯亮delay(); / 调用延时函数P0=0 xbf; / 第七个灯亮delay(); / 调用延时函数P0=0 x7f; / 第八个灯亮delay(); / 调用延时函数 让第五个灯亮让第四个灯亮让第三个灯亮让第二个灯亮让第一个灯亮让第六个灯亮让第七个灯亮让第八个灯亮程序开始延时精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 7 页 - - - - - - - -
5、 - - 学习必备欢迎下载/ 流水实例 2:用自增运算控制P0 口 8 位 LED 流水花样#include / 包含单片机寄存器的头文件/* 函数功能:延时一段时间*/ void delay(void) unsigned int i; for(i=0;i20000;i+) ; /* 函数功能*/ void main(void) unsigned char i; for(i=0;i255;i+) / 注意 i 的值不能超过 255 P0=i; / 将 i 的值送 P0口delay(); /调用延时函数 / 流水实例 3:用右移运算流水点亮P1 口 8 位 LED #include / 包含单片
6、机寄存器的头文件/* 函数功能:延时一段时间*/ void delay(void) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 7 页 - - - - - - - - - - 学习必备欢迎下载unsigned int n; for(n=0;n30000;n+); /* 函数功能:主函数*/ void main(void) unsigned char i; while(1) P0=0 xff; delay(); for(i=0;i1; / 每次循环 P1的各二进位右移 1 位,高位补 0 d
7、elay(); / 调用延时函数 / 开关实例:用if 语句控制 P0 口 8 位 LED 的点亮效果#include / 包含单片机寄存器的头文件sbit S1=P14; / 将 S1位定义为 P1.4 sbit S2=P15; / 将 S2位定义为 P1.5 /* 函数功能:主函数*/ void main(void) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 7 页 - - - - - - - - - - 学习必备欢迎下载 while(1) if(S1=0) / 如果按键 S1按下P
8、0=0 x0f; /P0 口高四位 LED点亮if(S2=0) / 如果按键 S2按下P0=0 xf0; /P0 口低四位 LED点亮 / 开关实例 3: 用 swtich 语句的控制 P0 口 8 位 LED 的点亮状态#include / 包含单片机寄存器的头文件sbit S1=P14; / 将 S1位定义为 P1.4 /* 函数功能:延时一段时间*/ void delay(void) unsigned int n; for(n=0;n10000;n+); /* 函数功能:主函数*/ 开关 1 按下 ? 开关 2 按下高四位灯亮低四位灯亮程序开始精品资料 - - - 欢迎下载 - - -
9、- - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 7 页 - - - - - - - - - - 学习必备欢迎下载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; switch(i) / 使用多分支选择语句 case 1: P0=0 xfe; / 第一个 LED亮bre
10、ak; case 2: P0=0 xfd; / 第二个 LED亮break; case 3:P0=0 xfb; / 第三个 LED亮break; case 4:P0=0 xf7; / 第四个 LED亮break; case 5:P0=0 xef; / 第五个 LED亮break; case 6:P0=0 xdf; / 第六个 LED亮break; case 7:P0=0 xbf; / 第七个 LED亮break; case 8:P0=0 x7f; / 第八个 LED亮break; default: / 缺省值,关闭所有LED P0=0 xff; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 7 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 7 页 - - - - - - - - - -