- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 湖北省宜昌市部分省级示范高中2024-2025学年高一上学期期中联考数学试题含答案.docx VIP
- 考研真题 南京财经大学会计学院813会计学综合(微观经济学、会计学)历年考研真题汇编(含部分答案).docx VIP
- 2025年吉林通用航空职业技术学院单招职业适应性测试题库完美版.docx VIP
- 2025至2030中国航空配餐行业市场发展分析及竞争格局与发展趋势报告.docx
- 霍尼韦尔 教程及应用Honeywell QCS培训材料.pdf
- 2025年吉林通用航空职业技术学院单招职业适应性测试题库1套.docx VIP
- 2019ESCEAS血脂异常管理指南2025重点更新解读PPT课件.pptx VIP
- 湖北省宜昌市部分省级示范高中2024-2025学年高一上学期期中联考化学试题 含答案.docx VIP
- 2024年吉林通用航空职业技术学院单招职业适应性测试题库最新.docx VIP
- 2024新部编人教版小学一年级语文(上册)全册完整教案设计.pdf VIP
原创力文档


文档评论(0)