单片机编程例.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单 片 机 编 程 实 例 100 例 大 全 单片机编程实例 *实例1:使用P3 口流水点亮8位LED #includereg51.h〃 包含单片机寄存器的头文件/函数功能:延时一段时间 voiddelay(void) { un sig nedcharij; for(i=0;i250;i++) for(j=0;j250;j++) J } /函数功能:主函数 voidma in(v oid) { while(1) { P3=0xfe;〃 第一个灯亮 delay();〃 调用延时函数 P3=0xfd;〃 第二个灯亮 delay();〃 调用延时函数 P3=0xfb;〃 第二个灯亮 delay();〃 调用延时函数 P3=0xf7;//第四个灯亮 delay();// 调用延时函数 P3=0xef;// 第五个灯亮 delay();// 调用延时函数 P3=0xdf;// 第六个灯亮 delay();// 调用延时函数 P3=0xbf;// 第七个灯亮 delay();// 调用延时函数 P3=0x7f;〃 第八个灯亮 delay();// 调用延时函数 }// } *实例2:通过对P3 口地址的操作流水点亮8位LED #in cludereg51.h〃 包含单片机寄存器的头文件 sfrx=0xb0;//P3 口在存储器中的地址是 bOH,通过sfr可定义8051内核单片 机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1 口的操作 / 函数功能:延时一段时间 / voiddelay(void) { un sig nedcharij; for(i=0;i250;i++) for(j=0;j250;j++) ;//利用循环等待若干机器周期,从而延时一段时间 } / 函数功能:主函数 / voidma in(v oid) { while(1) { x=0xfe;〃第一个灯亮 delay();〃 调用延时函数 x=0xfd;〃第二个灯亮 delay();〃 调用延时函数 x=0xfb;〃第三个灯亮 delay();〃 调用延时函数 x=0xf7;〃第四个灯亮 delay();〃 调用延时函数 x=0xef;〃第五个灯亮 delay();〃 调用延时函数 x=0xdf;〃第六个灯亮 delay();〃 调用延时函数 x=Oxbf;〃第七个灯亮 delay();〃 调用延时函数 x=0x7f;〃第八个灯亮 delay();〃 调用延时函数 } } *实例3:用不同数据类型控制灯闪烁时间 #in cludereg51.h〃 包含单片机寄存器的头文件 / 函数功能:用整形数据延时一段时间 / voidi nt_delay(void)〃 延时一段较长的时间 { un sig nedi ntm;〃 定义无符号整形变量,双字节数据,值域为 0~65535for(m=0;m36000;m++) ;//空操作 } / 函数功能:用字符型数据延时一段时间 / voidchar_delay(void)〃 延时一段较短的时间 un sig nedchari,j;〃 定义无符号字符型变量,单字节数据,值域 0~255for(i=0;i200;i++) for(j=0;j180;j++) ;//空操作 } / 函数功能:主函数 / voidma in(v oid) { un sig nedchari; while(1) { for(i=0;i3;i++) { P1=0xfe;//P1.0 口的灯点亮 in t_delay();〃 延时一段较长的时间 P1=0xff;// 熄灭 in t_delay();// 延时一段较长的时间 } for(i=0;i3;i++) { P1=0xef;//P1.4 口的灯点亮 char_delay();〃 延时一段较长的时间 }P仁0xff;〃 熄灭char_delay();〃 延时一段较长的时间}} *实例4:用单片机控制第一个灯亮 #includereg51.h〃 包含51单片机寄存器定义的头文件 voidma in(v oid) { } *实例5:用单片机控制一个灯闪烁:认识单片机的工作频率 #in cludereg51.h〃 包含单片机寄存器的头文件 / 函数功能:延时一段时间 / voiddelay(void)// 两个void意思分别为无需返回值,没有参数传递 { un sig nedi nti;〃 定义无符号整数,最大取值范围 65535for(i=0;i20000;i++)〃 做 20000次空循环 ;//什么也不做,等待一个机器周期 } /函数功能:主函数(C语言规定必须有也只能有1个主函数)/voidmain(void) { while(1)〃 无限循环 { delay();// 延时一段时间 de

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档