STC89C52RC第一练
  gmSOlhpvc6v8 2023年11月13日 31 0

STC89C52RC单片机

STC89C52RC第一练_#include

硬件连接方式:

USB线连接笔记本U口,单片机USB2(供电及下载)接口。连接之后要开启单片机上的电源按键。且设备管理器串口中出现该设备

STC89C52RC第一练_单片机_02


Keil5 中编写代码

代码目的是:使得单片机中1个LED灯不停得闪烁。

#include<reg52.h>
#include<intrins.h>

sbit led1=P1^0;
void Delay500ms();  //不写该句的话,会出现:missing function-prototype的报错

void main()
{
	while(1)
	{
  	led1=0;
  	Delay500ms();
  	led1=1;
  	Delay500ms();
	}
}

void Delay500ms()	//@11.0592MHz
{
	unsigned char data i, j, k;
	_nop_();
	i = 4;
	j = 129;
	k = 119;
	do
	{
  	do
  	{
  		while (--k);
  	} while (--j);
	} while (--i);
}

代码编辑完成后,将其挂接到工程下,如下图结构所示

STC89C52RC第一练_#include_03

生成目标文件

STC89C52RC第一练_目标文件_04


STC-ISP下载程序

在Keil5中编辑完代码,生成目标文件后。需要使用STC-ISP程序将目标文件下载至单片机中。

STC89C52RC第一练_#include_05

首先选择单片机型号(注意必须与单片机上印刷型号一样),再选择要下载的目标文件,最后点击下载

STC89C52RC第一练_目标文件_06

点击下载后,一值检测。此时要按下单片机开关重启单片机,才能顺利下载。

代码优化后如下:

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char 
#define uint unsigned int

void DelayTime(uint);

void main()
{
	uchar led1Val = 0xfe;
	while(1)
	{
		P1 = led1Val;
		DelayTime(500);
		led1Val = _crol_(led1Val,1);
	}
}

void DelayTime(uint DelayVal)	//@11.0592MHz
{
	uchar data i, j;
	while(DelayVal)
	{
			_nop_();
			i = 2;
			j = 199;
			do
			{
				while (--j);
			} while (--i);
			
		DelayVal--;
	}
}


加油+++++++++++++++++++++



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  QtpjMRSUUfXb   2023年12月08日   48   0   0 引脚#include看门狗
  tprTMCWDkFAR   2023年12月07日   27   0   0 头文件#include初始化
  QtpjMRSUUfXb   2023年12月06日   49   0   0 卷积#includeCUDA
  UYSNSBVoGd8R   2023年12月08日   22   0   0 引脚#include#define
gmSOlhpvc6v8