【用PROTEUS仿真点亮LED项目】

设计要求:在本项目中,将设计微控制器的基本电路,其中包括晶体振荡器等。将单片机任何I / O引脚上连接一个小LED,然后使其闪烁。
实现过程:
1、在PROTEUS中绘制系统原理图
首先在PROTEUS ISIS 中找到相关组件,绘制原理图如下:
【用PROTEUS仿真点亮LED项目】_第1张图片
现在可以在上图中看到,系统使用了16MHz的晶体振荡器,该晶体振荡器用于向8051微控制器提供频率。复位引脚的路径中放置了10k的电阻。LED连接到端口1的第一个引脚P1.0。接着设计LED闪烁项目的C语言代码,用到的编译器是Keil vision。在keil编译器中创建一个新项目,并将以下代码粘贴到您的c文件中,编译生成十六进制文件。将生成的十六进制文件加载到PROTEUS。

#include

sbit LED = P1^0;          

void cct_init(void);
void delay(int a);

int main(void)
{
   cct_init();             
 
   while(1)
   {
       LED = 0;             
       delay(30000);      
       LED = 1;            
       delay(30000);       
   }
}

void cct_init(void)
{  
    P1 = 0x00;    
}

void delay(int a)
{
   int i;
   for(i=0;i<a;i++); 
}

现在稍微解释一下代码。首先,将pin1.0声明为LED,以便将来在代码中轻松使用它。之后,声明了两个函数。 其中之一是延迟功能,它只是增加了延迟,而第二个功能是将端口1初始化为输出端口。在Main()功能中,使用了LED闪烁代码,其中LED依次点亮,然后连续熄灭,从而使其闪烁。现在,将代码添加到Keil软件中后,对其进行编译并获取hex文件。
将此十六进制文件上传到您使用的8051单片机中,我使用的是AT89C52,然后单击“运行”按钮,将会看到原理图中的LED正在闪烁。
作业题:
1、修改原理图及代码,用p2.0引脚控制LED闪烁,

#include

sbit LED = P1^1; 

void cct_init(void);
void delay(int a);

int main(void)
{
	cct_init();

	while(1)
	{
		LED = 0; 
		delay(30000); 
		LED = 1;
		delay(30000);
	}
}

void cct_init(void)
{ 
    P2 = 0x00;
}

void delay(int a)
{
	int i;
	for(i=0;i<a;i++); 
}

修改后原理图:
【用PROTEUS仿真点亮LED项目】_第2张图片

你可能感兴趣的:(生产实习,proteus,单片机,嵌入式硬件)