欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    51单片机50个实例代码.doc

    • 资源ID:4471470       资源大小:538.90KB        全文页数:77页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    51单片机50个实例代码.doc

    ,51单片机50个例程代码 程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义sbit LED=P10;/ 用sbit 关键字 定义 LED到P1.0端口, /LED是自己任意定义且容易记忆的符号/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值LED=1; /将P1.0口赋值 1,对外输出高电平LED=0; /将P1.0口赋值 0,对外输出低电平while (1) /主循环 /主循环中添加其他需要一直工作的程序 2-IO输出-点亮1个LED灯方法2/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义/*- 主函数-*/void main (void) /此方法使用1个字节对单个端口赋值P1 = 0xFF; /P1口全部为高电平,对应的LED灯全灭掉, /ff换算成二进制是 1111 1111P1 = 0xfe; /P1口的最低位点亮,可以更改数值是其他的灯点亮 /0xfe是16进制,0x开头表示16进制数, /fe换算成二进制是 1111 1110 while (1) /主循环 /主循环中添加其他需要一直工作的程序 3-IO输出-点亮多个LED灯方法1/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义sbit LED0=P10;/ 用sbit 关键字 定义 LED到P1.0端口,sbit LED1=P11;/LED是自己任意定义且容易记忆的符号sbit LED2=P12;sbit LED3=P13;sbit LED4=P14;sbit LED5=P15;sbit LED6=P16;sbit LED7=P17;/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值LED0=0; /将P1.0口赋值 0,对外输出低电平LED1=1;LED2=0;LED3=1;LED4=0;LED5=1;LED6=0;LED7=1;while (1) /主循环 /主循环中添加其他需要一直工作的程序 4-IO输出-点亮多个LED灯方法2/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值P1=0x55; /换成二进制是0101 0101 while (1) /主循环 /主循环中添加其他需要一直工作的程序 5-闪烁1个LED/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的1个LED灯闪烁 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动,/头文件包含特殊功能寄存器的定义sbit LED0=P10;/ 用sbit 关键字 定义 LED到P1.0端口,/LED是自己任意定义且容易记忆的符号void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值while (1) /主循环 LED0=0; /将P1.0口赋值 0,对外输出低电平 Delay(10000); /调用延时程序;更改延时数字可以更改延时长度; /用于改变闪烁频率 LED0=1; /将P1.0口赋值 1,对外输出高电平 Delay(10000); /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);6-不同频率闪烁1个LED灯/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的1个LED灯闪烁 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义sbit LED0=P10;/ 用sbit 关键字 定义 LED到P1.0端口, /LED是自己任意定义且容易记忆的符号void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255while (1) /主循环 for(i=0;i<10;i+) /加入 for循环,表明for循环大括号中的程序循环执行10次 LED0=0; /将P1.0口赋值 0,对外输出低电平 Delay(5000); /调用延时程序;更改延时数字可以更改延时长度; /用于改变闪烁频率 LED0=1; /将P1.0口赋值 1,对外输出高电平 Delay(5000); for(i=0;i<10;i+) LED0=0; /将P1.0口赋值 0,对外输出低电平 Delay(60000); /调用延时程序;更改延时数字可以更改延时长度; /用于改变闪烁频率 LED0=1; /将P1.0口赋值 1,对外输出高电平 Delay(60000); /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);7-不同频率闪烁多个LED灯/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯闪烁 该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit LED0=P10;/ 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号sbit LED1=P11;sbit LED2=P12;sbit LED3=P13;sbit LED4=P14;sbit LED5=P15;sbit LED6=P16;sbit LED7=P17;void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) /此方法使用bit位对单个端口赋值unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255while (1) /主循环 for(i=0;i<10;i+) /加入 for循环,表明for循环大括号中 /的程序循环执行10次 LED0=0; /将P1.0口赋值 0,对外输出低电平 LED2=1; LED4=0; Delay(5000); /调用延时程序;更改延时数字可以更改延时长度;/用于改变闪烁频率 LED0=1; /将P1.0口赋值 1,对外输出高电平 LED2=0; LED4=1; Delay(5000); for(i=0;i<10;i+) LED0=0; /将P1.0口赋值 0,对外输出低电平 LED2=1; LED4=0; Delay(60000); /调用延时程序;更改延时数字可以更改延时长度; /用于改变闪烁频率 LED0=1; /将P1.0口赋值 1,对外输出高电平 LED2=0; LED4=1; Delay(60000); /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);8-8位LED左移/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:左移,直至LED全部点亮,左移符号 <<-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255Delay(50000);P1=0xfe; /赋初始值for(i=0;i<8;i+) /加入 for循环,表明for循环大括号中的程序循环执行8次 Delay(50000); P1<<=1; while (1) /主循环 /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);9-8位LED右移/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:右移,直至LED全部点亮,右移符号 >>-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255Delay(50000);P1=0x7f; /赋初始值for(i=0;i<8;i+) /加入 for循环,表明for循环大括号中的程序循环执行8次 Delay(50000); P1>>=1; while (1) /主循环 /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);10-LED循环左移/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:循环左移,始终一个led点亮,并循环执行流水动作,左移符号 << 逻辑或符号 |-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255Delay(50000);P1=0xfe; /赋初始值while (1) /主循环 for(i=0;i<8;i+) /加入 for循环,表明for循环大括号中的程序循环执行8次 Delay(50000); P1<<=1; P1=P1|0x01; /左移后,最右端自动赋值0,所以需要该语句赋值1 P1=0xfe; /重新赋初始值 /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);11-LED循环右移/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:循环右移,始终一个led点亮,并循环执行流水动作,右移符号 >> 逻辑或符号 |-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255Delay(50000);P1=0x7f; /赋初始值while (1) , /主循环 for(i=0;i<8;i+) /加入 for循环,表明for循环大括号中的程序循环执行8次 Delay(50000); P1>>=1; P1=P1|0x80; /右移后,最左端自动赋值0,所以需要该语句赋值1 P1=0x7f; /重新赋初始值 /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);12-查表显示LED灯/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:通过查表获得1个字节的值然后赋值给P1端口,ROM允许情况可以设置更多表格-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义/*- 查表表格-*/unsigned char code table=0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0x00,0x55,0x55,0xaa,0xaa;/rom允许情况可以无限添加/*- 函数声明-*/void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i 取值范围 0255while (1) /主循环 for(i=0;i<16;i+) /加入 for循环,表明for循环大括号中的程序循环 /执行16次,表明表格中有16个元素 P1=tablei; Delay(30000); /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);13-双灯左移右移闪烁/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:2个led灯先左移,然后右移,然后同时闪烁-*/#include<reg52.h> /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义void Delay(unsigned int t); /函数声明/*- 主函数-*/void main (void) unsigned char i; /定义一个无符号字符型局部变量 i /取值范围 0255unsigned char temp;/定义临时变量用于转换while (1) /主循环 temp=0xfc; P1=temp; for(i=0;i<7;i+) /加入 for循环,表明for循环大括号 /中的程序循环执行7次 Delay(50000); /调用延时程序;更改延时数字可 /以更改延时长度;用于改变闪烁频率 temp<<=1; temp=temp|0x01; /也可以直接把temp换成P1 P1=temp; /之所以加入temp做中间变量,转换 /完成后直接赋值到端口,防止直接 /操作端口造成的短暂闪烁 temp=0x3f; P1=temp; for(i=0;i<7;i+) /加入 for循环,表明for循环大括号 /中的程序循环执行7次 Delay(50000); /调用延时程序;更改延时数字可以 /更改延时长度;用于改变闪烁频率 temp>>=1; temp|=0x80; /等效于 temp=temp|0x80 P1=temp; for(i=0;i<3;i+) /加入 for循环,表明for循环大括号 /中的程序循环执行3次 P1=0xff; Delay(50000); P1=0x00; Delay(50000); /主循环中添加其他需要一直工作的程序 /*- 延时函数,含有输入参数 unsigned int t,无返回值 unsigned int 是定义无符号整形变量,其值的范围是 065535-*/void Delay(unsigned int t) while(-t);14-花样灯/*- 名称:IO口高低电平控制 论坛: 编写:shifang 日期:2009.5 修改:无 内容:花样灯一般有两种方法实现: 1、程序循环执行 2、查表法 这里我们两种都使用一下-*/#include<reg52.h> /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义/*- 花样表格

    注意事项

    本文(51单片机50个实例代码.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开