运用软件延时方法控制P1口亮灯实验
2009-06-10 12:07
405 查看
实验二运用软件延时方法控制P1口亮灯实验
如有疑问,请zlj800800@163.com 探讨
一、实验目的
1学习P1口的使用方法
2学习延时子程序的编写
3进一步熟悉51单片机的相应指令和基本编程方法
二、实验内容
P1口作为输出口,接8只发光二极管,编写相应的程序使发光二极管循环点亮。其中每一个发光二极管亮灭的时间间隔可以由人为的延时子程序进行控制。要求0.5S中亮一个。
已知单片机晶振频率为6 .00MHz
三、实验预备知识
1. P1口是准双向口,可以定义为输入,也可以定义为输出
2. 本实验中延时子程序采用指令循环来实现。
3. 延时时间的计算:
延时时间=机器周期×指令所需机器周期数×循环次数
机器周期=2微秒,
其中循环次数可以采用多重循环来实现
四、程序框图
自己尝试
五、实验步骤
1按要求编写相应的程序
Prom1_1:
#include “reg51.h”
sbit P1_0=P1^0;
void main()
{ P1_1=0;
}
Prom1_2:
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit P10=P1^0;
/*延时程序由Delay 参数确定延迟时间*/
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
void main()
{ for(;;)
{ P10=!P10; //取反P1.0 引脚
mDelay(500);
}
}
Prom1_3:
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
/*延时程序
由Delay 参数确定延迟时间
*/
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
void main()
{ unsigned char OutData=0xfe;
for(;;)
{
P1=OutData;
OutData=_crol_(OutData,1); //循环左移
mDelay(500); /*延时500 毫秒*/
}
}
2连接实验电路图
3调试并运行程序,观察结果
六、实验要求
完成实验报告,简要写出相应的实验现象和结果。(如遇到的问题以及解决问题的方法)
本次实验上课验收。
附加:用开关控制二极管亮灭
如有疑问,请zlj800800@163.com 探讨
一、实验目的
1学习P1口的使用方法
2学习延时子程序的编写
3进一步熟悉51单片机的相应指令和基本编程方法
二、实验内容
P1口作为输出口,接8只发光二极管,编写相应的程序使发光二极管循环点亮。其中每一个发光二极管亮灭的时间间隔可以由人为的延时子程序进行控制。要求0.5S中亮一个。
已知单片机晶振频率为6 .00MHz
三、实验预备知识
1. P1口是准双向口,可以定义为输入,也可以定义为输出
2. 本实验中延时子程序采用指令循环来实现。
3. 延时时间的计算:
延时时间=机器周期×指令所需机器周期数×循环次数
机器周期=2微秒,
其中循环次数可以采用多重循环来实现
四、程序框图
自己尝试
五、实验步骤
1按要求编写相应的程序
Prom1_1:
#include “reg51.h”
sbit P1_0=P1^0;
void main()
{ P1_1=0;
}
Prom1_2:
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit P10=P1^0;
/*延时程序由Delay 参数确定延迟时间*/
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
void main()
{ for(;;)
{ P10=!P10; //取反P1.0 引脚
mDelay(500);
}
}
Prom1_3:
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
/*延时程序
由Delay 参数确定延迟时间
*/
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<124;i++)
{;}
}
}
void main()
{ unsigned char OutData=0xfe;
for(;;)
{
P1=OutData;
OutData=_crol_(OutData,1); //循环左移
mDelay(500); /*延时500 毫秒*/
}
}
2连接实验电路图
3调试并运行程序,观察结果
六、实验要求
完成实验报告,简要写出相应的实验现象和结果。(如遇到的问题以及解决问题的方法)
本次实验上课验收。
附加:用开关控制二极管亮灭
相关文章推荐
- 串口通信的IO控制与软件延时实现方法
- 运用定时中断方法控制P1口亮灯实验
- 软件质量的分层控制方法
- UltraVNC远程控制软件相关使用配置方法详解(附图)
- SVN版本控制图标经常延时显示或未显示问题解决方法
- 基于Wolf32F031 自由评估板的Buzzer(PWM控制方式)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- SVN版本控制图标经常延时显示或未显示问题解决方法
- FlashGet远程控制自动下载的软件与方法
- NSIS:延时启动软件的几个方法及探索
- SVN版本控制图标经常延时显示或未显示问题解决方法
- CC2540 IAR 最高优化下软件延时函数严重不准确解决方法
- 在软件开发中,反证方法的典型运用
- 基于Wolf32F031 自由评估板的Buzzer(PWM控制方式)实验硬件原理及软件API使用方法(适用于STM32F030/031)
- 运用RUP 4+1视图方法进行软件架构设计
- 运用RUP4+1视图方法进行软件架构设计
- IAR FOR AVR中精确软件延时方法
- 程序控制的软件复位方法
- 【单片机笔记】51内核软件延时和串口的巧妙使用方法
- 关于实施RUP软件过程控制的方法和标准[只是一个个人总结]
- 运用RUP 4+1视图方法进行软件架构设计