第1讲-学单片机预备知识、如何点亮一个发光管视频习题答案
对照TX-1C单片机学习板原理图写程序
用位操作和总线操作两种方法完成以下题目
1. 熟练建立 KEIL工程
链接: https://wenku.baidu.com/view/e01059f904a1b0717ed5dd06.html
2.点亮第一个发光管
位操作方法
#include<reg52.h>
sbit D1=P1^0;
void main()
{
D1=0;//低电平点亮
}
总线操作方法
#include<reg52.h>
void main()
{
P1=0xfe;
}
3.点亮最后一个发光管
位操作方法
#include<reg52.h>
sbit D8=P1^7;
void main()
{
D8=0;
}
总线操作方法
1~8个灯十六进制表示:0xfe(11111110) 0xfd 0xfb 0xf7 0xef 0xdf 0xbf 0x7f(01111111)
灯灭十六进制表示:0xff
#include<reg52.h>
void main()
{
P1=0x7f;
}
4.点亮1,3,5,7发光管
位操作方法
#include<reg52.h>
sbit D1=P1^0;
sbit D3=P1^2;
sbit D5=P1^4;
sbit D7=P1^6;
void main()
{
D1=0;
D3=0;
D5=0;
D7=0;
}
总线操作方法
0xaa十六进制表示,转化为二进制 10101010
#include<reg52.h>
void main()
{
while(1)
{
P1=0xaa;
}
}
5.点亮2,4,5,6发光管
位操作方法
#include<reg52.h>
sbit D2=P1^1;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
void main()
{
D2=0;
D4=0;
D5=0;
D6=0;
}
总线操作方法
#include<reg52.h>
void main()
{
P1=0xc5;
}
6.尝试让第一个发光管闪烁
位操作方法
#include<reg52.h>
#define uint unsigned int
sbit D1=P1^0;
void delay(uint time);
void main()
{
while(1)
{
D1=0;
delay(1000);
D1=1;
delay(1000);
}
}
void delay(uint time)
{
uint i,j;
for(i=time;i>0;i--)
for(j=114;j>0;j--);
}
总线操作方法
#include<reg52.h>
#define uint unsigned int
void delay(uint time);
void main()
{
while(1)
{
P1=0xfe;
delay(1000);
P1=0xff;
delay(1000);
}
}
void delay(uint time)
{
uint i,j;
for(i=time;i>0;i--)
for(j=114;j>0;j--);
}
7.尝试设计出流水灯的程序
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
uint temp;
void delay(uint time);
void main()
{
temp=0xfe;
while(1)
{
P1=temp;
delay(1000);//间隔1s
temp=_crol_(temp,1);
}
}
void delay(uint time)
{
uint i,j;
for(i=time;i>0;i--)
for(j=114;j>0;j--);
}