工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->光电电路图->其他光电实用电路图->使用AT89C2051单片机制作一个键控灯的电路

使用AT89C2051单片机制作一个键控灯的电路

作者:dolphin时间:2016-09-26

本文介绍了如何使用AT89C2051单片机制作一个键控灯的电路。具体介绍了如何根据单片机的内外部结构确立方案、如何使用KEIL C51来调试代码以及如何使用TOP851编程器将一个调试成功的程序代码下载到单片机内的程序存储器中脱机运行。

一、确立方案

确立方案就是要以单片机的硬件"结构为基础,根据实验的要求。制定可行的电路图和编程思想。键控灯电路要求4个发光二极管分别由4个按键来控制。接通电源时所有发光二极管都不亮,当按下一个按键时,一个发光二极管发亮,松开按键发光二极管就熄灭。再按下另一个按键,另一个发光二极管发亮,松开按键发光二极管就熄灭,依次类推一个按键控制一个发光二极管。

由A189C2051单片机的外部接口结构想达到此电路的要求必须有四个输出口接发光二极管,四个输入口接按键。AT89C2051有两个8位的并行输入,输出接口,分别为P1口(12脚-19脚)和P3口(2脚-9脚,11脚)。而P3口为一个多功能的输入/输出口,P1口是个通用的静态数据口,输入或输出的数据可以锁存在引脚上。因此只能选择P1口作为数据输入输出口。当要通过P1口输出数据时,只须在程序中对P1口赋值即可,只要程序没改变P1口的值P1口引脚上的电压就不会发生变化。同样的道理,要通过P1口输入数据时,只须读取P1口引脚上的电压值并赋给单片机内的存储器中即可。

根据以上的分析,可绘制图1原理图,将4个发光二极管接分别在P1.4-P1.7口,四个按键分别接在P1.0-P1.3口。具体电路如下图所示。在程序中只需要不停的读取P1.0-P1.3口的值并将此值赋给P1.4-P1.7口就可以达到要求。

电路图中单片机的16~19(P1.4~P1.7)脚分别接4个发光二极管的负极,发光二极管的正极通过一个560Ω的电阻与+5V的电源相连,这样当单片机输出为“1”时二极管熄灭,输出为“0”时二极管发光。

12~15(P1.0~P1.3)脚分别接四个按键,当没键按下时P1.O—P1.3脚通过一个5.6K的电阻与+5V电源相连输入为高电平,当有键按下时P1.O~P1.3脚直接与地相连,输入为低电平。

4,5(XTAL1,XTAL2)两脚为单片机的时钟输入引脚,时钟是时序的基础。单片机是程序控制式计算机,它的运行过程是在程序控制下逐条执行程序指令的过程。由于单片机的内部各个部件是共用一条总线,即同时只能有两个部件在使用总线。因此在执行指令的过程中需要有时序来协调单片机内外部功能部件之间的数据传输,数据运算等操作。

在单片机的内部有一个反相放大器来构成振荡器,产生时钟。可以在XTAL1和XTAL2端外接石英晶体作为定时元件,内部反相放大器自激振荡,产生时钟。其中C1,C2两个电容是作为石英晶体振荡器的频率补偿。

1(RST)脚为单片机复位信号的输入端。对于A189C2051单片机是高电平复位有效。当单片机复位后单片机内部的存储器的值全变为开机时的默认值并且程序又重头开始执行。图中为上电复位电路,也就是说当单片机接通电源后马上复位,以后不再复位。

二、制作硬件

确立了方案画好电路图后,就可以制作印制电路板或者用万能焊接板焊接电路。在焊接的过程中单片机应该用一个20脚的插座代替。这主要是考虑到单片机是一个编程的器件。用户只有在对单片机写入了程序后单片机才能工作,而编程不是一次就能成功的,必须经过反复的调试和修改。因此。在电路板只能用插座代替单片机,方便用户能将单片机从电路板取下来进行反复编程。

三、调试软件

硬件部分制作完成后就开始编写程序,程序是一个单片机系统的灵魂。同一个硬件系统不同的程序可以完成不同的功能。单片机的程序可以用汇编语言或C语言编写,但对于初学者建议用汇编语言编写。

程序的编写一般在一种编译软件下进行,例如KEIL。KEIL的开发工具套件可用于编译C源程序、汇编程序、链接和定位目标文件及库、创建HEX文件及调试目标程序,μVision2就是其中一种。μ Vision2 for Windows是一个集成开发环境。它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中,它支持8051的所有KEIL工具,使用此开发环境来使调试和编译程序更加的简单。具体的步骤是:

(1)启动μ Vision2,创建一个项目文件并从器件数据库中选择一种CPU。

安装好软件后点击程序图标启动软件,点击“Project—New.Project”菜单创建一个新的项目文件,这时会弹出对话框,在对话框内选择目录并键入新项目的名字。建议每个项目建立一个新的空文件夹。当选好目录和项目名后点击“保存”会弹出μ Vision2的器件数据库,在数据库中选 择需要的器件,本实验选择ATMEL目录下的AT89C2051。

(2)创建一个新的源文件,把源文件添加到项目中

点击菜单选项File—New可以创建一个新的源代码。点击后出现一个空的编辑器窗口,可以在其 中输入源代码。如果需要保存源代码,点击菜单“File—Save"弹出对话框,在对话框中用扩展名*.ASM保存文件,保存后μ Vision2将汇编语言中的指令用彩色高亮显示。这里用key.ASM保存程序。创建了源文件后,要将源程序添加到项目中。在Project File页中选择文件组,用鼠标右键打开快捷菜单。用选项Add File打开标准的文件对话框,在其中选择刚刚创建好的文件key.ASM。

(3)设置目标硬件的工具选项 μ Vision2可以为目标硬件设置选项。点击菜单“Project—Options forTarget”弹出设置窗口,在此页中,可以指定目标硬件片内部的相关参数。这里选择12M的时钟频率,使用片内的PROM。

(4)Build项目并生成一个可供PROM编程的HEX文件。

点击“Project—Build Target”编译项目并创建HEX文件。当源代码中出现语法错误时μ Vision2将会在Output—Windows页显示错误和警告。双击信息行,μ Vision2会指出源代码中的出现错误的位置。

编译是出错时的显示内容

具体源程序如下:

ORG 0000H:程序在程序存储器中的首地址

AJMP START:跳转到START执行

ORG 0030H:sTART程序在程序存储器中的首地址

START:

SETB P1.7 :开机时分别将P1_7、P1.6、

P1.5、P1.4四个口置“1”,这样开机时四个发光二极管熄灭

SETB P1.6

SErB P1.5

SETB P1.4

DD:

SETB P1.3:分别将P1.3、P1.2、P1.1、P1.O四个口置“1”,如果要通过单片机的P1口对单片机输入数据,必须在输入数据之前将P1口的值置“1”

SETB P1.2

SETB P1.1

SETB P1.0

MOV A,P1:读入P1口引脚的值并赋给单片机内的一个存储器A

RL A :连续将A内的值左移4次,即将

存储器A的低四位的值移到高四位,也就是

将读入的P1.O—P1.3的值移至P1.4一P1-7

RL A

RL A

RL A

MOV P1.A:将移位后的值赋给P1口,

即将读入的P1.O—P1.3的值赋给P1.

4-P1.7口。由此可达到,由P1.0-P1.3输入

的电压来控制P1.4一P1.7口的发光二极管。

AJMP DD ;续读取P1口的电压值

END

四、固化代码

程序编译好后,就要把编译后的文件通过编程器写入单片机中。具体的方法是:

(1)关闭计算机,将随机电缆线的一头联接至计算机的9针RS232口,另一头连接到TOP851侧面的插座上(电缆线两头不一样,必须区分),将随机所配9伏400毫安直流电源插头插到TOP851侧面电源插座上,电源插头中心为正,千万不能接负。电源指示灯亮,工作指示灯闪动,表示机器正常。

(2)将单片机放在编程器上(在编程器的万能锁紧插座边有简易的芯片图案指示芯片插在万能锁紧插座上的正确方向。

(3)打开计算机,在WINDOWS开始菜单中点击图标,运行TOP51.exe,弹出TOP851软件的主窗口。

TOP851的大部分操作都可以在主菜单中实现。有些经常要用的操作,也可以直接按“快捷”键(图标表示)操作,其效果与菜单操作完全相同。不同的只是更加快速方便。与器件读写等有关的操作,则要在选择型号后,在相应的对话框中操作。

(4)点击快捷键“装载”或点击菜单“文件”一“装载文件”选项,弹出如下对话框,在对话框中选择要装载的文件所在的目录。

(5)选择需要装载的文件。编译后的文件格式有二进制和十六进制格式之分,选择了文件名后,会弹出格式选 择对话框在格式选择对话框中选择对应的文件格式,点击“确定”后文件就成功的加载到TOP851软件的缓冲区。

从装载文件后TOP851软件的缓冲区内可以看出装载文件后缓冲区内的数据发生了变化。

(6)文件成功的装载到TOP851软件的缓冲区后就要将缓冲区中的内容写到单片机中,选择菜单“操作\选择型号”,弹出选择厂家/型号窗口。

(7)在“类别”框中选择存储器或单片机,或者其他类型;在“制造厂家”列表框中选择生产厂家,例如选择“Atmel”;在“器件型号”列表框中选择型号。例如选择“89c51”然后点击确定,弹出读写芯片窗口。在此窗 口中可以选择加密方式,操作方式等。选择完毕之后点击“自动”就可以将软件缓冲区中的数据写入单片机中或者点击“擦除”,“检查空片”,“写器件”,“校对”,“读器件”,“加密”等,分步的完成读写操作。

还有另外更快捷的一种读写单片机的方法就是利用快捷工具栏来选择型号,具体方法是:在工具栏的下拉框中选择“制造厂家”和“器件类型”,例如选择“Atmel”,“单片机”。

然后在左边的型号选择栏中选择“器件型号”如“AT89C51”,双击器件型号就会弹出读写芯片的窗口。跟上一种方法一样选择加密方式和操作方式后点击自动就可以将软件缓冲区中的数据写入单片机中或者点击“擦除”,“检查空片”,“写器件”,“校对”,“读器件”,“加密”等,分步的完成读写操作。这样就完成了代码的固化。

五、脱机运行

代码固化到单片机里面后,就要将单片机放到电路板对应的插座上。打开电源,这时候应该看到P1口上的4个发光二极管不亮。当按下一个按键时,一个发光二极管发亮,松开按键发光二极管就熄灭。再按下另一个按键,另一个发光二极管发亮,松开按键发光二极管就熄灭,一个按键控制一个发光二极管。

这样就完成了基于A189C2051单片机的键控灯电路。通过这个简单的系统电路,可以了解到制作一个单片机系统的基本流程以及每个流程中要用到的软件和工具。并且掌握了AT89C2051单片机的两个并行输入/输出(I/O)接口功能与作用。



评论

技术专区