文档介绍:单片机实验
实验一发光二极管实验
班级:******** 姓名:*****
学号:*******
指导老师:**** 成绩:******
实验一发光二极管实验
一、实验目的
1、掌握AT89C51 单片机IO 口的输入输出。
2、掌握用查表方式实现AT89C51 单片机IO 口的控制。
3、练习单片机简单延时子程序的编写。
4、熟练运用Proteus 设计、仿真AT89C51 系统。
四、实验内容
1、编写延时子程序,。
void delay()
{
unsigned int i,j;
for(i=0;i<100;i++)
for(j=0;j<125;j++);
}
2、见图一。通过AT89C51 单片机控制8个发光二极管发光,实现亮点以由上到
下循环移动,。
图一
#include<>
#include<>
#define uint unsigned int
#define uchar unsigned char
void delay(int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
void main()
{
P1=0xfe;
while(1)
{
P1=_crol_(P1,1);
delay(100);
}
}
3、见图一。通过AT89C51 单片机控制8 个发光二极管发光,循环实现亮点由上
到下移动1 次(),由下到上移动1 次(),闪烁1
次(,)。
#include<>
#include<>
#define uchar unsigned char
#define uint unsigned int
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<125;j++);
}
void main()
{
while(1)
{
uchar b;
P1=0xfe;
for(b=0;b<7;b++)
{
P1=_crol_(P1,1);
delay(200);
}
for(b=0;b<7;b++)
{
P1=_cror_(P1,1);
delay(200);
}
P1=0x00;
delay(100);
P1=0xff;
delay(100);
}
}
4、见图一。用数组方式实现题3 。
#include<>
#define uchar unsigned char
#define uint unsigned int
uint tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xf7,0xfb,0xfe,0xff};
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)