实验1 KEIL+PROTEUS使用——单灯闪烁.docx
文本预览下载声明
实验1 KEIL+PROTEUS使用——单灯闪烁一、实训要求编程使用AT89S52单片机实现控制一个发光二极管LED亮灭闪烁变化。电路如图1-1所示,单片机P1.0通过510欧的限流电阻接一个红色LED阴极,二极管的阳极接电源VCC。图1-1单灯闪烁电路原理图二、实训目的1.熟练掌握单片机编程(KEIL)和仿真(PROTUES)软件的基本操作。2.掌握单片机控制LED的方法3.掌握C51程序基本结构4.了解软件延时的方法三、实训内容1.任务分析当二极管外加正偏电压时点亮,外加反偏电压时熄灭。本实训电路中二极管阳极恒接电源VCC(高电平),因此,想要使发光二级管D1点亮,只须控制单片机使P1.0输出低电平,想要使发光二极管D1熄灭,只须控制单片机P1.0输出高电平即可。若要亮灭闪烁变化,则需要控制单片机P1.0输出高、低电平循环交替。为看到持续亮灭效果,需要亮后延时一段时间,然后在熄灭LED,之后再延时一段时间,如此重复即可。2.流程图单灯闪烁流程图如图1-2所示。图1-2 单灯闪烁流程图3.参考程序/*********************************************************** *文件名称:main.c*作者:*版本:2012-01-29-V1.0 *说明:单片机P1.0外接LED,实现单灯闪烁*修改记录:无***********************************************************/#include regx52.h //调用头文件void delay( unsigned int );//延时函数声明/*********************************************************** *函数名称:main*函数功能:主函数*入口参数:空*出口参数:空*备注:无***********************************************************/ void main( void ){while( 1 ){//死循环P1_0 = 0;//P1.0接的LED灯亮delay( 500 );//延时一段时间P1_0 = 1;//P1.0接的LED灯灭delay( 500 );//延时一段时间}}/*********************************************************** *函数名称:delay*函数功能:通用延时函数*入口参数:延时时间变量n *出口参数:空*备注:AT89S52单片机,晶振12MHz时,最小延时时间1ms ***********************************************************/ void delay( unsigned int n )//延时函数定义{unsignedint x, y;for( x = 0; x n; x ++ ){for( y = 0; y 121; y ++ ){;}}}四、操作步骤1.前期准备在电脑的硬盘上新建一个“test1”文件夹,用于存放本实训中所用到的工程文件(包括程序及仿真文件)。注意:文件夹名称最好不要含有中文字符。2.程序编写——KEIL软件使用(软件版本为Keil uVision4)※启动KEIL(1)双击桌面图标如图1-3所示,打开keil软件。※新建工程(2)新建工程在“Project”菜单中选择“New uVision Project…”命令。如图1-4所示。图1-4 新建工程(3)弹出新建工程窗口如图1-5所示,在对话窗中创建名为“test1”的工程,单击“保存”按钮。注意:将新建的工程保存在准备工作中新建的“test1”文件夹中。图1-5 新建工程窗口(4)弹出“Select Device for Target ‘Target 1’…”窗口如图1-6,在“Atmel”选项中选择“AT89S52”单片机,单击“确定”按钮。图1-6 选择CPU型号窗口(5)在弹出如图1-7所示的对话框中,选择“否”按钮。图1-7 复制启动代码对话框※新建文件(6)在常用工具栏中单击“新建文件”按钮,在工作区中新建Text2文件。(7)在常用工具栏中单击“保存文件”按钮,弹出如图1-8保存文件对话框。在“文件名”栏目中输入“main.c”,单击保存按钮。注意:在保存文件对话框中输入的文件名必须加文件后缀“.c”。图1-8 另存为对话框※添加文件到工程(8)展开工程(“Project”)窗口中“Target 1”,在“Source Group 1”上单击鼠标右键,在弹出的右键菜单中选择“Add Files to Group ‘Source Gro
显示全部