ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.13MB ,
资源ID:17821194      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17821194.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(任务21点亮发光二极管讲解Word格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

任务21点亮发光二极管讲解Word格式.docx

1、开关S1闭合,电源上的电流经过限流电阻R1流向地,发光二极管没有电流流过,发光二极管熄灭。在单片机的I/O内部,实际上也存在这样一个开关。图2.1.3(b)是通过单片机I/O口控制发光二极管亮灭的等效电路图。与图(a)不同的地方在于,开关S1不是通过手动控制的,而是通过单片机的I/O控制的。我们通过程序控制P17引脚连接的开关S1闭合,则P17引脚为低电平,发光二极管熄灭,相反通过程序控制开关打开,则P17引脚呈现高电平,发光二极管被点亮。(a)开关控制发光二极管 (b)I/O控制发光二极管 图2.1.3 I/O控制发光二极管亮灭的原理解释 另外需要说明的,对于51单片机而言,如果按照图2.1

2、.3(b)中的接法来驱动发光二极管,并不能点亮发光管,本单元的任务3中会详细解释I/O口高电平驱动不了发光二极管的原因。3、编程语言的选择和C语言的简单介绍 单片机控制发光二极管亮灭是通过编写程序来实现的,那么我们用什么语言来编写程序呢? 单片机编程语言有汇编语言和C语言。相比较来说,汇编语言比较接近单片机的底层,使用汇编语言有助于理解单片机内部结构。简单的程序,用汇编语言,程序效率也可能比较高,但是当程序容量达到几千上万行以后,汇编语言在组织结构、修改维护等方面就会成为你的噩梦了。C语言具有通用性,51单片机用可以用C语言编程,其它单片机(AVR、STM32等)也可以用C语言编程,而汇编则不

3、具备通用性,每一类型的单片机的汇编指令不尽相同,初学者绕不过学习汇编指令的烦扰。另外C语言的可移植性好,用51单片机写的程序只要稍加修改,就可以在别的单片机中使用。所以目前实际开发过程中,大部分工程师都在用 C 语言做单片机开发,只有在很低端的应用中或者是特殊要求的场合,才会用汇编语言开发,所以这里建议大家还是用C语言开发比较好一些。4、特殊功能寄存器(SFR) 学过C语言的人肯定会有这样一个问题:编写单片机程序用C语言,那么在C语言中怎样来描述单片机的资源呢?在单片机内部有一个重要的资源叫特殊功能寄存器,简称SFR。SFR是单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令、状态

4、或数据。举个例子来讲,SFR可以看成是一栋宿舍楼,里面有很多房间,这些房间存放P0、P1、P2、P3这些I/O的控制命令,也存放着定时器、中断、串口等资源的控制命令,房间号对应命令的地址。我们要操控这些资源,只需要向房间号(命令的存放地址)写命令就可以了。表2.1.1是STC89C52单片机的SFR地址表,共有21个特殊功能寄存器。我们可以看到P0口的地址为0x80,我们要操控P0口,只需要对0x80这个地址写数据就可以了。在C51中,相比于普通C语言,多了两个特殊的变量声明,sfr和是sbit。表2.1.1 STC89C52的特殊功能寄存器符号地址功能介绍BF0HB寄存器TH18DH定时/计

5、数器1(高8位)ACCE0H累加器TH08CH定时/计数器0(低8位)PSWD0H程序状态字TL18BHIPB8H中断优先级控制寄存器TL08AHP3B0HP3口锁存器TMOD89H定时/计数器方式控制寄存器IEA8H中断允许控制寄存器TCON88H定时/计数器控制寄存器P2A0HP2口锁存器DPH83H数据地址指针(高8位)SBUF99H串口缓冲器DPL82H数据地址指针(低8位)SCON98H串口控制寄存器SP81H堆栈指针P190HP1口锁存器P080HP0口锁存器PCON87H电源控制寄存器sfr:在声明变量的同时为其指定特殊功能寄存器作为存储地址。例如:sfr P0=0x80,此处声

6、明一个变量P0,并指定其存储地址为特殊功能寄存器P0对应的地址(0x80)。编写应用程序时直接对变量P0赋值就可以了。举例:P0口的8个位分别10101010,则在软件里直接写语句P0=0xAA(0B10101010)就可以了。sbit:同样是声明一个变量,和SFR 使用方法类似,但是sbit是用来声明一个位变量。P0口共有8个位,我们想单独控制第2个位,可以通过这样的定义:sbit P11=P11,这样我们就可以在程序中使用P11表示P1口的第二个位。是不是我们每一次编写程序的时候都需要用sfr和sibt来定义寄存器变量呢?实际上C51编译器已经做好了一个文件,里面已经存放了些定义。这个文件

7、的名字叫做reg52.h(头文件),文件存放的路径是KeilC51INC,在Keil软件的安装文件夹中。我们在编写程序的时候,只需要在程序的开头加上这样一个语句#include,就可以把这些寄存器变量定义加载到当前的程序中直接使用了。2.1.3 任务实施1、KeilC51的安装KeilC51是美国Keil Software公司(ARM公司之一)出品的51系列兼容单片机C语言软件开发系统。下面是Keil C51编译器的安装步骤。(1)双击KeilC51安装文件夹中的 文件,弹出如图2.1.4所示的对话框。图2.1.4 双击安装文件界面(2)点击“Next”按钮,弹出“License Agreem

8、ent”对话框,如图2.1.5所示。文本框中显示的是安装许可协议,需要在“I agree to all the terms of the preceding License Agreement”前面的的小框中打勾。图2.1.5 许可协议界面(3)点击“Next”按钮,弹出“Folder Selection”对话框,如图2.1.6所示。这里可以设置安装路径,默认安装路径在“C:Keil”文件夹下。点击“Browse.”按钮,可以修改安装路径,应用程序尽量不要安装在C盘,建议选用别的盘符,安装路径不能出现中文字符。2.1.6 选择安装路径界面(4)点击“Next”按钮,弹出“Customer In

9、formation”对话框,如图2.1.7所示。输入用户名、公司名称以及 E-mail 地址即可。图2.1.7 输入用户名等信息界面(5)单击“Next”,自动安装软件,进度条一点一点增大,如图2.1.8所示。图 2.1.8 文件安装界面(6)安装完成后,弹出来安装完成对话框,如图2.1.9 所示,有几个打钩的选项,把这些勾都去掉,点击“Finish”按钮,Keil C51安装完成。 图 2.1.9 安装完成后界面2、工程的建立(1)在编写应用程序之前,需先建立一个工程,应用程序和其它文件放在工程中。打开 Keil 软件后,点击:Project-New uVision Project.,如图2

10、.1.10 所示。图 2.1.10 新建一个工程(2)在弹出的窗口中,选择工程保存的位置,并给工程起一个名字,我们给工程起名LED,软件会自动添加扩展名.uvproj。如图2.1.11所示图2.1.11 工程命名(3)点击“保存”按钮后,弹出如图2.1.12的对话框。图2.1.12 选择CPU型号在这个对话中,要为我们的工程选择CPU类型。在Data base列表框中,拖动滚动条,有很多生产厂商的名称,但找不到我们开发板上STC89C52的生产厂商宏晶科技。Keil C51的设计者并没有把STC单片机加入到Keil中。STC89C52和Amel公司的51单片机同属一个系列,在选择CPU时,我们

11、可以选择Atmel公司,单击Atmel前面的+,展开后,有很多Atmel公司的单片机,我们选择AT89C52就可以了。(4)选定CPU型号后,点击”OK”按钮,会弹出一个对话图,让你选择在工程中加入一段启动代码,初学者可以不理会,点击”否”就可以了,工程创建完毕,界面如图2.1.13所示。2.1.13 工程创建后界面(5)工程创建后,下一步的工作就是建立编写代码的文件。点击菜单File-New,新建一个文件,然后点击File-Save,保存文件,弹出如图2.1.14所示的窗口。图2.1.14 新建一个.c文件我们把文件放在LED工程下,同时给文件起个名字:LED.c,(6)建立了工程和C文件之

12、后,两者还是分离的,下一步的工作是把C文件加入到工程中。鼠标右键单击Project栏中的Target 1下的文件夹Source Group 1,弹出一个菜单,选择Add Files to “Source Group 1”.,如图2.1.15所示。 图 2.1.15 C文件加载到工程中点击Add Files to “Source Group 1”.后,弹出如图2.1.16所示的对话框,我们选中刚才建立的LED.c文件,然后点击按钮Add,再点击按钮Close,关闭对话框。图2.1.16 加载LED.c界面把文件加入到工程中后,可以看到在左侧Source Group 1下多了一个新的文件:LED.

13、C,如图2.1.17所示。图2.1.7 加入.c文件后工程界面3、程序的编写#includesbit LED=P10; /LED输出接口定义sbit Input=P11; /外接电平输入接口定义void main(void) while(1) /大循环 if(Input=1) /如果输入电平为高电平,则点亮LED LED=0; /低电平点亮LED else LED=1; /否则,熄灭LED 我们把C文件加入到工程后,就可以编写应用程序了。应用程序的编写在LED.c窗口中,当前行有光标在闪烁,而且当前行的颜色为淡紫色。如果对编程的字体大小不满意,可以点击菜单栏Edit-Configuration

14、,里面有一个选项卡Colors & Fonts,可以修改字体大小和颜色等。程序清单如下:程序解释如下:(1)在介绍特殊功能寄存器SFR时,我们提到过功能寄存器的定义已经被包含在reg52.h这个文件中,#include是预处理命令,在这里是文件包含的意思。就是把中的文件包含到本程序中,成为当前程序的一部分。有了#includeOptions for Target Target1.,或者直接点图2.1.19图中红框内的快捷图标。图2.1.19 点击魔术棒在弹出的对话框中,点击 Output 选项页,勾选其中的“Create HEX File”复选框,然后点 OK,如图2.1.20所示。图2.1.

15、20 勾选复选框设置好以后,点击“Project-rebuild all target files” ,或者鼠标点击图2.1.21中红框内的快捷图标,就可以对程序进行编译了。图2.1.21 点击编译按钮编译完后,Keil界面的下方Build Output窗口出现了如图2.1.22的信息。这些信息告诉我们编译后的情况,data=9.0,指的是我们的程序使用了单片机内部的256字节RAM 资源中的9个字节,code=19的意思是使用了8KFlash资源中的19个字节。“creating hex file from“LED”.说明系统生成了当前程序的烧录文件。最后一行0 Error(s),0 War

16、ning(s)。提示我们的程序没有错误,也没有警告。如果程序程序语法有错误,会出现有几个错误和几个警告,并提示错误的位置,我们可以改根据提示去发现错误。图 2.1.22 编译后的信息5、程序的烧录 USB线的一头连接开发板的USB口,两外一端连接电脑上的USB口,如果硬件没有错误,点击计算机-属性-设备管理器-端口,可以看到在端口下有一个“USB-SERIAL CH340(COM4)”,其中COM4就是我们的开发板当前所使用的COM端口号。如图2.1.23所示。图2.1.23 查看COM口打开STC下载软件STCISP,界面如图2.1.24所示。分5步完成程序的下载(1)选择单片机型号,我们选择STC89C52。(2)点击”打开程序文件”,加载我们编译好的“LED.Hex”文件。(3)选择下载口,之前我们在设备管理器中已经查看过是COM5,选择COM5。(4)其它的都保持默认,(5)STC下载方式是冷启动,需要先关闭开发板电源,再点击“Download /下载”,然后再给开发板上电,程序才能下载。下载的过程当中,下载软件的小窗口会显示当前下载的进度,并提示下载成功与否。图2.1.25 STC-ISP软件的配置

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1