1. 流水灯实验
1.1 流水灯(位输出)
#include<reg52.h>
#define uint unsigned int
#define on 0
#define off 1
sbit led1 = P1^0;
sbit led2 = P1^1;
sbit led3 = P1^2;
sbit led4 = P1^3;
sbit led5 = P1^4;
sbit led6 = P1^5;
sbit led7 = P1^6;
sbit led8 = P1^7;
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
while(1)
{
led1 = on;
delay(200);
led1 = off;
led2 = on;
delay(200);
led2 = off;
led3 = on;
delay(200);
led4 = off;
led4 = on;
delay(200);
led4 = off;
led5 = on;
delay(200);
led5 = off;
led6 = on;
delay(200);
led6 = off;
led7 = on;
delay(200);
led7 = off;
led8 = on;
delay(200);
led8 = off;
}
}
1.2 流水灯(循环移位)
#include<reg52.h>
#define uint unsigned int
#include<intrins.h>
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
P1 = 0xfe;
while(1)
{
delay(500);
P1 = _crol_(P1,1);
}
}
1.3 流水灯(移位操作)
#include<reg52.h>
#define uint unsigned int
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
int i=0;
while(1)
{
P1 = 0xfe;
for(i=0;i<8;i++)
{
delay(1000);
P1 <<= 1;
P1 = P1 | 0x01;
}
}
}
2. 蜂鸣器实验
2.1 蜂鸣器
#include<reg52.h>
#define uint unsigned int
#define on 0
#define off 1
sbit fm = P2^3;
void delay(uint xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
while(1)
{
fm = on;
delay(100);
fm = off;
delay(100);
}
}
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define on 0
#define off 1
sbit fm = P2^3;
void delay(uint xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
P1 = 0xfe;
while(1)
{
delay(100);
P1 = _crol_(P1,1);
fm = on;
delay(100);
fm = off;
}
}
3. LED显示器静态显示
#include<reg52.h>
#define duan P0
sbit wei1 = P2^4;
sbit wei2 = P2^5;
sbit wei3 = P2^6;
sbit wei4 = P2^7;
void main()
{
P1 = 0xfe;
wei1 = 1;
wei2 = 0;
wei3 = 0;
wei4 = 0;
duan = 0x7c;
while(1);
}
4. LED显示器动态显示
#include<reg52.h>
#define duan P0
#define uchar unsigned char
sbit wei1 = P2^4;
sbit wei2 = P2^5;
sbit wei3 = P2^6;
sbit wei4 = P2^7;
uchar code sz[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void delay (unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
while(1)
{
duan = sz[4];
wei1 = 0;
wei2 = 0;
wei3 = 0;
wei4 = 1;
delay(1000);
duan = sz[3];
wei1 = 0;
wei2 = 0;
wei3 = 1;
wei4 = 0;
delay(1000);
duan = sz[2];
wei1 = 0;
wei2 = 1;
wei3 = 0;
wei4 = 0;
delay(1000);
duan = sz[1];
wei1 = 1;
wei2 = 0;
wei3 = 0;
wei4 = 0;
delay(1000);
}
}