郭天祥单片机视频教学习题答案(一)

第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--);
}
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯献给了作业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值