硬件实验一 P1口输入、输出实验
基本部分:
1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。 程序如下:
#include<reg52.h>
#include<intrins.h>
void delay();
void main()
{
unsigned char LED;
LED=0xfe;
P1=LED;
while(1)
{
delay(); //延迟500ms
LED=_crol_(LED,1); //左移一位,使LED灯循环点亮
P1=LED;
}
}
void delay()
{
unsigned int i,j;
for(i=0;i<500;i++)
{
for(j=0;j<125;j++)
{
_nop_();
}
}
}
扩展部分:
利用P1口控制发光二极管LED灯按照下面方式工作:
1、LED灯从左到右依次点亮;
2、LED灯从右到左依次点亮;
3、按照以上步骤重复运行,其中要求灯亮时间为500ms。 程序如下:
#include<reg52.h>
#include<intrins.h>
void delay();
void main()
{
unsigned char LED;
bit a; //定义变量a来控制左移还是右移
a=1;
LED=0x7f;
P1=LED;
while(1)
{
if(a) //当a为高电平时LED灯从左到右依次点亮 {
delay(); //延迟500ms
LED=_cror_(LED,1);
P1=LED;
if(LED==0xfe)
a=~a;
}
if(~a) //当a为低电平时LED灯从右到左依次点亮 {
delay(); //延迟500ms
LED=_crol_(LED,1);
P1=LED;
if(LED==0x7f)
a=~a;
}
}
}
void delay()
{
unsigned int i,j;
for(i=0;i<500;i++)
{
for(j=0;j<125;j++)
{
_nop_();
}
}
}
第二篇:硬件实验一 报告
硬件实验一 P1口输入、输出实验
一、实验目的
1. 学习P1口的使用方法。
2. 学习延时子程序的编写和使用。
二、实验要求
1、基本部分:
(1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
(2)P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
2、扩展部分:
(1) 利用P1口控制发光二极管LED灯按照下面方式工作:
a) LED灯从左到右依次点亮;
b) LED灯从右到左依次点亮;
c) 按照以上步骤重复运行,其中要求灯亮的时间为500ms。
(2) 利用P1口控制发光二极管LED灯按照下面方式工作:
a)从左到右奇数LED灯依次点亮;
b)从右到左偶数LED灯依次点亮;
c)按照以上步骤重复运行,其中要求灯亮的时间为500ms。
三、实验程序
扩展部分
#include<reg52.h>
#include<intrins.h>
void delay();
void main()
{
unsigned char LED;
bit a; //定义变量a来控制左移还是右移
a=1;
LED=0x7f;
P1=LED;
while(1)
{
if(a) //当a为高电平时LED灯从左到右依次点亮
{
delay(); //延迟500ms
LED=_cror_(LED,1);
P1=LED;
if(LED==0xfe)
a=~a;
} if(~a) //当a为低电平时LED
{
delay(); //延迟500ms
LED=_crol_(LED,1);
P1=LED;
if(LED==0x7f)
a=~a; }
}
} void delay()
{
unsigned int i,j; for(i=0;i<500;i++) { for(j=0;j<125;j++)
{
_nop_();
} }
}
四、实验心得: 扩展部分程序流程图
遇到问题:一开始,编程的实验结果为灯全亮依次灭,让我十分疑惑,后来得知,芯片的LED灯为低电平有效。只要将LED灯的初始值取反(LED=0x01改为LED=0x7f)即可使LED灯由全亮依次灭变成全灭依次亮。并且我们学会了延时程序的编写,只要通过for语句和空操作即可实现。
从一开始的一无所知到收集资料,慢慢了解相关知识并掌握自己修改编程,通过编写的程序来实现硬件控制,单片机实验让我觉得十分有趣。