单片机学习程序Word格式文档下载.docx
- 文档编号:18749502
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:33
- 大小:21.09KB
单片机学习程序Word格式文档下载.docx
《单片机学习程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机学习程序Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
/*******************************************************************************函数名:
main
*函数功能:
主函数
*输入:
无
*输出:
voidmain()
{
while
(1)
{
//--数字前面加0x表示该数是十六进制的数,0x00就是十六进制的00--//
//--P2口一共有8个IO口,即从P2.0到P2.7,而0x00二进制就是00000000--//
//--效果就是P2.0到P2.7都是0,即低电平。
而如果你想给P2.1口赋高电平时--//
//--二进制就是00000001,就是十六进制0x01.--//
P0=0x00;
//置P0口为低电平
Delay10ms(500);
//调用延时程序,修改括号里面的值可以调整延时时间
P0=0xff;
//置P0口为高电平
Delay10ms(50);
//调用延时程序
}
}
*函数名:
Delay10ms
延时函数,延时10ms
voidDelay10ms(unsignedintc)//误差0us
{
unsignedchara,b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for(;
c>
0;
c--)
for(b=38;
b>
b--)
{
for(a=130;
a>
a--);
}
}
/***************************************************************************普中科技
LED二进制加法显示实验
LED灯做二进制加1显示
见接线图
reg52.h>
unsignedcharNum=0x00;
while
(1)
P0=Num;
//延时函数
Num++;
/*******************************************************************************
*
流水灯实验
延时实现LED流水灯效果P2口八个灯作跑马灯。
采用了寄存器存中间数
*******************************************************************************/
//--包含你要使用的头文件
intrins.h>
//延时10ms
main()
unsignedcharLED;
LED=0xfe;
//0xfe=11111110
while
(1)
P0=LED;
LED=LED<
<
1;
//循环右移1位,点亮下一个LED"
"
为左移位
if(P0==0x00)//当它全灭的时候,重新赋值
LED=0xfe;
//0xfe=11111110
}
LED灯做右移跑马灯
voidmain(void)
LED=0xFE;
LED=_crol_(LED,1);
//循环右移1位,点亮下一个LED此函数于库函数
跑马灯实验
LED灯做跑马灯左右移动
//--声明一个全局变量--//
unsignedcharLED;
unsignedchari;
//--首先赋值LED--//
LED=0xFE;
{
//--LED往左闪烁--//
for(i=0;
i<
7;
i++)
{
//--将LED的值赋给P2口--//
P0=LED;
Delay10ms(50);
//延时一下,为了让灯有持续点亮的时间
LED=LED<
//将LED里面的值左移一位,然后重新赋给LED
LED=LED|0x01;
//移位后,前面的位为高电平
//--LED向右显示--//
{
LED=LED>
>
//右移
LED=LED|0x80;
//移位后,后面的位为高电平
独立按键控制LED实验
每个按键控制一个LED
//--定义要使用的IO口--//
#defineGPIO_KEYP1//独立键盘用P1口
#defineGPIO_LEDP0//led使用P0口
unsignedcharKey_Scan();
unsignedcharledValue,keyNum;
ledValue=0x01;
while
(1)
{
keyNum=Key_Scan();
//扫描键盘
switch(keyNum)
case(0xFE):
//返回按键K1的数据
ledValue=0x01;
break;
case(0xFD):
//返回按键K2的数据
ledValue=0x02;
case(0xFB):
//返回按键K3的数据
ledValue=0x04;
case(0xF7):
//返回按键K4的数据
ledValue=0x08;
case(0xEF):
//返回按键K5的数据
ledValue=0x10;
case(0xDF):
//返回按键K6的数据
ledValue=0x20;
case(0xBF):
//返回按键K7的数据
ledValue=0x40;
case(0x7F):
//返回按键K8的数据
ledValue=0x80;
default:
GPIO_LED=ledValue;
//点亮LED灯
}
Key_Scan()
扫描键盘
读取到的键值
unsignedcharKey_Scan()
unsignedcharkeyValue=0,i;
//保存键值
//--检测按键1--//
if(GPIO_KEY!
=0xFF)//检测按键K1是否按下
Delay10ms
(1);
//消除抖动
if(GPIO_KEY!
=0xFF)//再次检测按键是否按下
keyValue=GPIO_KEY;
i=0;
while((i<
50)&
&
(GPIO_KEY!
=0xFF))//检测按键是否松开
{
Delay10ms
(1);
i++;
}
returnkeyValue;
//将读取到键值的值返回
LED显示键值实验
8个LED显示读取的8个按键的值
//--定义全局函数--//
/***********
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 学习 程序