单片机控制8x8点阵显示Word格式.docx
《单片机控制8x8点阵显示Word格式.docx》由会员分享,可在线阅读,更多相关《单片机控制8x8点阵显示Word格式.docx(33页珍藏版)》请在冰豆网上搜索。
在电路及仪器中作为指示灯,或者组成文字或数字显示。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
2.1.1发光二极管简介
它是半导体二极管的一种,可以把电能转化成光能;
常简写为LED。
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。
不同的半导体材料中电子和空穴所处的能量状态不同。
当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。
常用的是发红光、绿光或黄光的二极管。
发光二极管的反向击穿电压约5伏。
它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。
2.1.2物理特性
发光二极管的两根引线中较长的一根为正极,应接电源正极。
有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,靠近小舌的引线是正极。
与小白炽灯泡和氖灯相比,发光二极管的特点是:
工作电压很低(有的仅一点几伏);
工作电流很小(有的仅零点几毫安即可发光);
抗冲击和抗震性能好,可靠性高,寿命长;
通过调制通过的电流强弱可以方便地调制发光的强弱。
由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。
把它的管心做成条状,用7条条状的发光管组成7段式半导体数码管,每个数码管可显示0~9十个数目字。
2.1.3发光原理
它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。
发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。
在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。
当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。
2.1.4发光二极管的检测
1普通发光二极管的检测
(1)用万用表检测。
利用具有×
10kΩ挡的指针式万用表可以大致判断发光二极管的好坏。
正常时,二极管正向电阻阻值为几十至200kΩ,反向电阻的值为∝。
如果正向电阻值为0或为∞,反向电阻值很小或为0,则易损坏。
这种检测方法,不能实质地看到发光管的发光情况,因为×
10kΩ挡不能向LED提供较大正向电流。
如果有两块指针万用表(最好同型号)可以较好地检查发光二极管的发光情况。
用一根导线将其中一块万用表的“+”接线柱与另一块表的“-”接线柱连接。
余下的“-”笔接被测发光管的正极(P区),余下的“+”笔接被测发光管的负极(N区)。
两块万用表均置×
10kΩ挡。
正常情况下,接通后就能正常发光。
若亮度很低,甚至不发光,可将两块万用表均拨至×
1mΩ若,若仍很暗,甚至不发光,则说明该发光二极管性能不良或损坏。
应注意,不能一开始测量就将两块万用表置于×
1mΩ,以免电流过大,损坏发光二极管。
(2)外接电源测量。
用3V稳压源或两节串联的干电池及万用表(指针式或数字式皆可)可以较准确测量发光二极管的光、电特性。
为此可按图10所示连接电路即可。
如果测得VF在1.4~3V之间,且发光亮度正常,可以说明发光正常。
如果测得VF=0或VF≈3V,且不发光,说明发光管已坏。
2红外发光二极管的检测
由于红外发光二极管,它发射1~3μm的红外光,眼看不到。
通常单只红外发光二极管发射功率只有数mW,不同型号的红外LED发光强度角分布也不相同。
红外LED的正向压降一般为1.3~2.5V。
正由于其发射的红外光人眼看不见,所以利用上述可见光LED的检测法只能判定其PN结正、反向电学特性是否正常,而无法判定其发光情况正常否。
为此,最好准备一只光敏器件(如2CR、2DR型硅光电池)作接收器。
用万用表测光电池两端电压的变化情况。
来判断红外LED加上适当正向电流后是否发射红外光。
2.2电阻
导体对电流的阻碍作用就叫该导体的电阻。
电阻小的物质称为电导体,简称导体。
电阻大的物质称为电绝缘体,简称绝缘体。
在物理学中,用电阻(resistance)来表示导体对电流阻碍作用的大小。
导体的电阻越大,表示导体对电流的阻碍作用越大。
不同的导体,电阻一般不同,电阻是导体本身的一种性质。
电阻器简称电阻(Resistor,通常用“R”表示)是所有电子电路中使用最多的元件。
电阻的主要物理特征是变电能为热能,也可说它是一个耗能元件,电流经过它就产生内能。
电阻在电路中通常起分压分流的作用,对信号来说,交流与直流信号都可以通过电阻。
电阻的阻值标法通常有色环法,数字法。
色环法在一般的的电阻上比较常见。
由于手机电路中的电阻一般比较小,很少被标上阻值,即使有,一般也采用数字法,即:
10^1——表示10Ω的电阻;
10^2——表示100Ω的电阻;
10^3——表示1KΩ的电阻;
10^4——表示10KΩ的电阻;
10^6——表示1MΩ的电阻;
10^7——表示10MΩ的电阻。
电阻是一个线性元件。
说它是线性元件,是因为通过实验发现,在一定条件下,流经一个电阻的电流与电阻两端的电压成正比——即它是符合欧姆定律:
I=U/R
常见的碳膜电阻或金属膜电阻器在温度恒定,且电压和电流值限制在额定条件之内时,可用线性电阻器来模拟。
如果电压或电流值超过规定值,电阻器将因过热而不遵从欧姆定律,甚至还会被烧毁。
线性电阻的工作电压与电流的关系如图1所示。
电阻的种类很多,通常分为碳膜电阻,金属电阻,线绕电阻等:
它又包含固定电阻与可变电阻,光敏电阻,压敏电阻,热敏电阻等。
通常来说,使用万用表可以很容易判断出电阻的好坏:
将万用表调节在电阻挡的合适挡位,并将万用表的两个表笔放在电阻的两端,就可以从万用表上读出电阻的阻值。
应注意的是,测试电阻时手不能接触到表笔的金属部分。
但在实际电器维修中,很少出现电阻损坏。
着重注意的是电阻是否虚焊,脱焊。
2.2.1电阻的作用
主要职能就是阻碍电流流过,应用于限流、分流、降压、分压、负载与电容配合作滤波器及阻匹配等.数字电路中功能有上拉电阻和下拉电阻。
2.2.2电阻的分类
a.按阻值特性
固定电阻、可调电阻、特种电阻(敏感电阻)。
不能调节的,我们称之为固定电阻,而可以调节的,我们称之为可调电阻,常见的例如收音机音量调节的,主要应用于电压分配的,我们称之为电位器。
b.按制造材料
碳膜电阻、金属膜电阻、线绕电阻,捷比信电阻,薄膜电阻等。
C.按安装方式
插件电阻、贴片电阻。
2.3AT89C51
AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
兼容MCS51指令系统·
8k可反复擦写(>
1000次)FlashROM
·
32个双向I/O口·
256x8bit内部RAM
3个16位可编程定时/计数器中断·
时钟频率0-24MHz
2个串行中断·
可编程UART串行通道
2个外部中断源·
共6个中断源
2个读写中断口线·
3级加密位
低功耗空闲和掉电模式·
软件设置睡眠和唤醒功能
AT89C52P为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
3KEILC51软件简介
3.1KEILC51概述
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者看很多教程都是一头雾水,本站特地制作了一个相对简单的教程。
他能能嵌入汇编语言保留了汇编代码高效,快速的特点。
KEILC51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度。
C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:
编译器,汇编器,实时操作系统,项目管理器,调试器。
uVision2IDE可为它们提供单一而灵活的开发环境。
KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。
3.2KeilC51软件的使用方法:
进入KeilC51后,屏幕如下图所示。
几秒钟后出现编辑界
启动KeilC51时的屏幕
进入KeilC51后的编辑界面
简单程序的调试 学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习KeilC51软件的基本使用方法和基本的调试技巧。
1)建立一个新工程 单击Project菜单,在弹出的下拉菜单中选中NewProject选项
2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51如下图所示,然后点击保存.
3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.
4)完成上一步骤后,屏幕如下图所示
到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项
新建文件后屏幕如下图所示
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);
如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”
按钮。
6)回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单
然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如下图所示
选中Test.c,然后单击“Add
”屏幕好下图所示
注意到“SourceGroup1”文件夹中多了一个子项“Text1.c”了吗?
子项的多少与所增加的源程序的多少相同
7)现在,请输入如下的C语言源程序:
#include<
reg52.h>
//包含文件
stdio.h>
voidmain(void) //主函数 {
SCON=0x52;
TMOD=0x20;
TH1=0xf3;
TR1=1;
//此行及以上3行为PRINTF函数所必须
printf(“HelloIamKEIL.\n”);
//打印程序执行的信息
printf(“Iwillbeyourfriend.\n”);
while
(1);
}
在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keilc51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
程序输入完毕后,如下图所示
8)在上图中,单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5),屏幕如下所示
9)调试程序:
在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“StopRunning”选项(或者使用快捷键Esc);
再单击“View”菜单,再在下拉菜单中单击“SerialWindows#1”选项,就可以看到程序运行后的结果,其结果如下图所示
至此,我们在KeilC51上做了一个完整工程的全过程。
但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?
10)单击“Project”菜单,再在下拉菜单中单击
“
”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,供下载器软件使用。
把程序下载到AT89S51单片机中。
4C语言编程
4.1C语言简介
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它由美国贝尔研究所的D.M.Ritchie于1972年推出。
1978后,C语言已先后被移植到大、中、小及微型机上。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。
具体应用比如单片机以及嵌入式系统开发。
4.2特点
1.C是高级语言。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4.C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX等等;
也适用于多种机型。
C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
4.3仿真概述
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;
有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;
同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
本章介绍ProteusISIS软件的工作环境和一些基本操作。
4.3.1进入ProteusISIS
双击桌面上的ISIS6Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus6Professional”→“ISIS6Professional”,出现如图1-1所示屏幕,表明进入ProteusISIS集成环境。
图5.2-1启动时的屏幕
4.3.2工作界面
ProteusISIS的工作界面是一种标准的Windows界面,如图5.3-1所示。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
图5.3-1ProteusISIS的工作界面
4.3.4四大功能模块
1.智能原理图设计(ISIS)
丰富的器件库:
超过27000种元器件,可方便地创建新元件;
智能的器件搜索:
通过模糊搜索可以快速定位所需要的器件;
智能化的连线功能:
自动连线功能使连接导线简单快捷,大大缩短绘图时间;
支持总线结构:
使用总线器件和总线布线使电路设计简明清晰;
可输出高质量图纸:
通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。
2.完善的电路仿真功能(Prospice)
ProSPICE混合仿真:
基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;
超过27000个仿真器件:
可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;
多样的激励源:
包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;
丰富的虚拟仪器:
13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;
生动的仿真显示:
用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;
高级图形仿真功能(ASF):
基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。
3.独特的单片机协同仿真功能(VSM)
支持主流的CPU类型:
如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;
支持通用外设模型:
如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;
实时仿真:
支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。
※编译及调试:
支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。
4.实用的PCB设计平台
原理图到PCB的快速通道:
原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;
※先进的自动布局/布线功能:
支持器件的自动/人工布局;
支持无网格自动布线或人工布线;
支持引脚交换/门交换功能使PCB设计更为合理;
完整的PCB设计功能:
最多可设计16个铜箔层,2个丝印层,4个机械层(含板边)