用位操作和总线操作两种方法完成以下题目
1.熟练建立KEIL工程
2.点亮第一个发光管
总线操作
#include <reg52.h>
#include <intrins.h>
void main()
{
P1=0xFE; //让P1口的最低位为0
}
位操作
#include <reg52.h>
#include <intrins.h>
sbit led = P1^0;
void main()
{
led=0; //让led为0,第一个发光二极管亮
}
3.点亮最后一个发光管
总线操作
#include <reg52.h>
#include <intrins.h>
void main()
{
P1=0x7F; //让P1口的最高位为0
}
位操作
#include <reg52.h>
#include <intrins.h>
sbit led = P1^7;
void main()
{
led=0; //让led为0,最后一个发光二极管亮
}
4.点亮1、3、5、7
总线操作
#include <reg52.h>
#include <intrins.h>
void main()
{
P1=0xAA; //1010 1010
}
位操作
#include <reg52.h>
#include <intrins.h>
sbit led1 = P1^7;
void main()
{
led=0; //让led为0,最后一个发光二极管亮
}
5.点亮二、四、五、六
总线操作
#include <reg52.h>
#include <intrins.h>
void main()
{
P1=0xC5; //1100 0101
}
位操作
#include <reg52.h>
#include <intrins.h>
sbit led1 = P1^0;
sbit led3 = P1^2;
sbit led5 = P1^4;
sbit led7 = P1^6;
void main()
{
led1=0;
led3=0;
led4=0;
led7=0;
}
6.尝试让第一个发光管闪烁
总线操作
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
uint i,j;
void main()
{
while(1){
P1=0xFE;
for(i=200;i>0;i--)
for(j=110;j>0;j--);
P1=0xFF;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
}
位操作
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
sbit led1 = P1^0;
uint i,j;
void main()
{
while(1){
led1=0;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
led1=1;
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
}
7.尝试设计出流水灯程序
电路图
总线操作
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint xms);
void main()
{
uchar data1 = 0xFE;
while(1)
{
data1 = _crol_(data1,1);
P1=data1;
delayms(1000);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
位操作
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led7 = P1^7;
void delayms(uint xms);
void main()
{
while(1)
{
led7=1;
led0=0;
delayms(1000);
led0=1;
led1=0;
delayms(1000);
led1=1;
led2=0;
delayms(1000);
led2=1;
led3=0;
delayms(1000);
led3=1;
led4=0;
delayms(1000);
led4=1;
led5=0;
delayms(1000);
led5=1;
led6=0;
delayms(1000);
led6=1;
led7=0;
delayms(1000);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
网友评论