第一天,根据郭天祥老师留下的作业,分别用位操作和总线操作两种方法完成以下题目:
1.熟练建立KEIL工程;
2点亮第一个发光管
3.点亮最后一个发光管
4.点亮1,3,5,7
5.点2,4,5,6
6.尝试让第一个发光管闪烁
7.尝试设计出流水灯的程序
对于6,7我采用延时灯灭亮,不然看不到灯闪烁,因为太快了
位操作程序如下:
//the bit operation
#include<reg52.h>
sbit D0=P1^0;
sbit D1=P1^1;
sbit D2=P1^2;
sbit D3=P1^3;
sbit D4=P1^4;
sbit D5=P1^5;
sbit D6=P1^6;
sbit D7=P1^7;
void main()
{
/*
D0=0; //bright the first light;
*/
/*
D7=0; //bright the last light
*/
/*
D0=0;D2=0;D4=0;D6=0;
*/
/*
D1=0;D3=0;D4=0;D5=0;
*/
//the D0 could light every 500ms
/*
unsigned int i,j,k;
while(1)
{
D0=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D0=1;
}
*/
//turnover the light
unsigned char i,j,k;
while(1)
{
D0=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D0=1;
D1=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D1=1;
D2=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D2=1;
D3=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D3=1;
D4=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D4=1;
D5=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D5=1;
D6=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D6=1;
D7=0;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
D7=1;
}
}
//还不会调函数
总线操作:
#include<reg52.h>
void main()
{
/*
P1=0XFE;//bright the first light;
*/
/*
P1=0X7F;//brignt the last light;
*/
/*
P1=0XAA;//bright the 1,3,5,7
*/
/*
P1=0XC5;//bright the 2,4,5,6
*/
unsigned char i,j,k;
/*while(1){
P1=0XFE;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
*/
while(1)
{
P1=0XFE;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XFD;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XFB;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XF7;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XEF;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XDF;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0XBF;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
P1=0X7F;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--)
P1=0XFF;
}
}
花了一点时间,加!