单片机应用技术实训指导手册.docVIP

  • 41
  • 0
  • 约2.49万字
  • 约 43页
  • 2018-06-08 发布于河南
  • 举报
单片机应用技术实训指导手册

《微机原理应用技术》实训指导手册 §1 Keil C开发环境的简单使用 1.一个C51程序实例 单片机通常用在控制领域,最简单的应用就是通过某些口线的输入去控制另外一些口线的输出。本实例就是通过一根端口线的输入去控制另外4根端口线的输出,具体功能如下:在端口线P0.0上接一个按键,单片机计算按键闭合的次数,将这个数字通过P2.3-P2.0这4根口线所驱动的发光二极管显示出来,其中P2.3是最高位,P2.0是最低位,指示灯亮表示该位为1,否则表示该位为0。显然,由于只有4个指示灯,只能表现16种状态,因此能表现的计数只能在0~15之间。例如,4只指示灯全灭表示0,即二进制的0000;4只指示灯全亮表示15,即二进制的1111,依此类推。电路图如图1.7所示。电路中有几点需要说明: (1)使用的单片机是89S51,这是51系列单片机的一种,引脚功能和指令集等完全与8051兼容。 (2)按键的检测问题,当键没有被按下时,P0.0端口通过上拉电阻接Vcc,此时为高电平(在程序中用1表示);键按下时,P0.0通过按键接地,为低电平(在程序中用0表示),因此可以通过检测P0.0端口的电平来判断当前钮是否被按下。 图1.1 通过按键控制发光二极管的电路原理图 图1.2 通过按键控制发光二极管的程序流程图 (3)发光二极管的驱动问题,由于单片机的引脚和端口驱动能力都有限,因此外接了一个反相器以提供发光二极管所需要的电流。当某个引脚输出为高电平时,经过反相器反相变为低电平,从而电流从VCC通过发光二极管和电阻流入反相器,发光二极管发光。 在程序中,首先检测当前键是否被按下。但是仅仅检测到键被按下并不意味看就应该改变显示的数字,因为可能这次按键己经被检测到了一次,被处理过了,因此必须还要判断此次检测到按键是否是第一次检测到。 C语言程序如下: #includereg51.h sbit key=P0^0; //将变量key定义为P0.0,表示按键,为1表示按键没有按下 bit processed; //定义一个位变量表示对按键是否处理过 void main(void) { unsigned char counter; //定义一个变量counter用来计数 while(1) //无限循环,让单片机一直工作 { if(key==1) //如果没有键接下,执行大括号里的语句 { processed=0; //设置为“未处理” continue; } if(processed==0) //如果有键按下且尚未处理,执行大括号里的语句 { counter+=1; //计数加1 P2=counter0x0f; //在P2端口显示数据 processed = 1; //设置为“已处理” } } } 2.C51程序在Keil C51下的调试步骤 学习和使用单片机,除了灵活应用Protel等绘制原理图和PCB图以外,Keil C51 软件应该要掌握,我们要通过它来编写和调试单片机程序。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编、PLM 语言和 C 语言的程序设计,界面友好,易学易用。 要使用Keil软件,首先要正确安装Keil软件,该软件的Eval版本可以直接去http://www. 下载(在学院的《单片机应用技术》精品课程网站中也有下载),其步骤与一般Windows程序安装类似,这里就不再赘述了。Keil软件的详细说明见本讲义的第9章,这里仅作简要说明,以便于读者在后面的章节中实际动手调试、仿真程序。 (1)建立工作项目文件 启动Keil μVison2,如果打开后就有打开的文件,单击“Project-Close Project”菜单将其关闭。单击“File-New... ,打开一个新的文件输入窗口,在这个窗口里输入上述源程序。输入完毕之后,选择“File--Save,给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.c”为扩展名(一定要加扩展名,否则后面添加文件就找不到该文件,这是初学者很容易忘记的),这里将其命名为mytest.c。 单击“Project-New Project...,出现对话框,要求给将要建立的工程起一个名字,这里起名为test,不需要输入扩展名。单击“保存”按钮,出现第二个对话框,如图1.3所示: 图1.3 CPU选择窗口 这个对话框要求选择工程中所用的单片机型号,这里选择Atmel公司的89S51芯片。单击ATM

文档评论(0)

1亿VIP精品文档

相关文档