51单片机50个实例代码.docx
- 文档编号:29248775
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:121
- 大小:35.01KB
51单片机50个实例代码.docx
《51单片机50个实例代码.docx》由会员分享,可在线阅读,更多相关《51单片机50个实例代码.docx(121页珍藏版)》请在冰豆网上搜索。
51单片机50个实例代码
51单片机50个例程代码
程序里有中断,串口等驱动,直接复制即可使用
1-IO输出-点亮1个LED灯方法1
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
点亮P1口的一个LED灯
该程序是单片机学习中最简单最基础的,
通过程序了解如何控制端口的高低电平
------------------------------------------------*/
#include
//头文件包含特殊功能寄存器的定义
sbitLED=P1^0;//用sbit关键字定义LED到P1.0端口,
//LED是自己任意定义且容易记忆的符号
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(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
//头文件包含特殊功能寄存器的定义
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
//此方法使用1个字节对单个端口赋值
P1=0xFF;//P1口全部为高电平,对应的LED灯全灭掉,
//ff换算成二进制是11111111
P1=0xfe;//P1口的最低位点亮,可以更改数值是其他的灯点亮
//0xfe是16进制,0x开头表示16进制数,
//fe换算成二进制是11111110
while
(1)//主循环
{
//主循环中添加其他需要一直工作的程序
}
}
3-IO输出-点亮多个LED灯方法1
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
点亮P1口的多个LED灯
该程序是单片机学习中最简单最基础的,
通过程序了解如何控制端口的高低电平
------------------------------------------------*/
#include
//头文件包含特殊功能寄存器的定义
sbitLED0=P1^0;//用sbit关键字定义LED到P1.0端口,
sbitLED1=P1^1;//LED是自己任意定义且容易记忆的符号
sbitLED2=P1^2;
sbitLED3=P1^3;
sbitLED4=P1^4;
sbitLED5=P1^5;
sbitLED6=P1^6;
sbitLED7=P1^7;
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(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
//头文件包含特殊功能寄存器的定义
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
//此方法使用bit位对单个端口赋值
P1=0x55;//换成二进制是01010101
while
(1)//主循环
{
//主循环中添加其他需要一直工作的程序
}
}
5-闪烁1个LED
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
点亮P1口的1个LED灯闪烁
该程序是单片机学习中最简单最基础的,
通过程序了解如何控制端口的高低电平
------------------------------------------------*/
#include
//头文件包含特殊功能寄存器的定义
sbitLED0=P1^0;//用sbit关键字定义LED到P1.0端口,
//LED是自己任意定义且容易记忆的符号
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
//此方法使用bit位对单个端口赋值
while
(1)//主循环
{
LED0=0;//将P1.0口赋值0,对外输出低电平
Delay(10000);//调用延时程序;更改延时数字可以更改延时长度;
//用于改变闪烁频率
LED0=1;//将P1.0口赋值1,对外输出高电平
Delay(10000);
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
6-不同频率闪烁1个LED灯
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
点亮P1口的1个LED灯闪烁
该程序是单片机学习中最简单最基础的,
通过程序了解如何控制端口的高低电平
------------------------------------------------*/
#include
//头文件包含特殊功能寄存器的定义
sbitLED0=P1^0;//用sbit关键字定义LED到P1.0端口,
//LED是自己任意定义且容易记忆的符号
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
//此方法使用bit位对单个端口赋值
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
while
(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);
}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
7-不同频率闪烁多个LED灯
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
点亮P1口的多个LED灯闪烁
该程序是单片机学习中最简单最基础的,
通过程序了解如何控制端口的高低电平
------------------------------------------------*/
#include
sbitLED0=P1^0;//用sbit关键字定义LED到P1.0端口,LED是自己任意定义且容易记忆的符号
sbitLED1=P1^1;
sbitLED2=P1^2;
sbitLED3=P1^3;
sbitLED4=P1^4;
sbitLED5=P1^5;
sbitLED6=P1^6;
sbitLED7=P1^7;
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
//此方法使用bit位对单个端口赋值
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
while
(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);
}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
8-8位LED左移
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
左移,直至LED全部点亮,左移符号<<
------------------------------------------------*/
#include
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
Delay(50000);
P1=0xfe;//赋初始值
for(i=0;i<8;i++)//加入for循环,表明for循环大括号中的程序循环执行8次
{
Delay(50000);
P1<<=1;
}
while
(1)//主循环
{
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
9-8位LED右移
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
右移,直至LED全部点亮,右移符号>>
------------------------------------------------*/
#include
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
Delay(50000);
P1=0x7f;//赋初始值
for(i=0;i<8;i++)//加入for循环,表明for循环大括号中的程序循环执行8次
{
Delay(50000);
P1>>=1;
}
while
(1)//主循环
{
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
10-LED循环左移
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
循环左移,始终一个led点亮,并循环执行流水动作,左移符号<<逻辑或符号|
------------------------------------------------*/
#include
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
Delay(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;//重新赋初始值
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
11-LED循环右移
/*-----------------------------------------------
名称:
IO口高低电平控制
论坛:
编写:
shifang
日期:
2009.5
修改:
无
内容:
循环右移,始终一个led点亮,并循环执行流水动作,右移符号>>逻辑或符号|
------------------------------------------------*/
#include
voidDelay(unsignedintt);//函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
voidmain(void)
{
unsignedchari;//定义一个无符号字符型局部变量i取值范围0~255
Delay(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;//重新赋初始值
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsignedintt,无返回值
unsignedint是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
voidDelay(unsignedintt)
{
while(--t);
}
12-查表显示LED灯
/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 50 实例 代码