画出单片机控制8只LED单片机最小系统图图

& & 供电模块
图4.1.1 电源模块电路图
& & 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。
& & 此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。电源电路中接入了电源指示,图中R11为LED的限流。S1 为电源开关。
& & 复位电路
图4.1.2 复位电路图
& & 单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
& & 单片机复位电路原理是在单片机的复位引脚RST上外接和,实现上电复位。当复位持续两个机器以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。
& & 复位电路由按键复位和上电复位两部分组成。
& & (1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个到V,再连接一个到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。
& & (2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
& & 振荡电路
图4.1.3 振荡电路图
& & 单片机系统里都有,在单片机系统里晶振作用非常大,全程叫晶体,他结合单片机内部电路产生单片机所需的时钟,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
& & 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
& & 单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
& & 晶振通常与电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
& & STC89C51使用11.0592M的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670& 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
[精品]跟我学51单片机_一_单片机最小系统组成与I_O输出控制
下载积分:420
内容提示:[精品]跟我学51单片机_一_单片机最小系统组成与I_O输出控制
文档格式:PDF|
浏览次数:5|
上传日期: 04:14:05|
文档星级:
该用户还上传了这些文档
[精品]跟我学51单片机_一_单片机最小系统组成与I_O输出控制.PDF
官方公共微信 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
单片机控制led灯点亮
下载积分:800
内容提示:单片机控制led灯点亮
文档格式:PPT|
浏览次数:170|
上传日期: 20:36:58|
文档星级:
该用户还上传了这些文档
单片机控制led灯点亮
官方公共微信全部资讯 >>
基于AT89S51单片机控制的八路LED显示设计
来源:维库电子
&&& 一、单片机的内部结构
  AT89S51单片机兼容标准8051的指令系统及引脚。下面以AT89S51单片机为例,简要介绍51系列单片机的内部结构。
  通常,单片机片内含CPU、ROM、RAM、并行I/O口、定时器/计数器、中断控制系统、时钟电路、系统总线等。
  1.中央处理器(CPU)
  中央处理器是AT89S51单片机的核心,完成运算和控制功能。其CPU能处理8位二进制数或代码。
  2.程序存储器
  程序存储器用于存放用户编写的程序、原始数据或表格,分为片内程序存储器和片外程序存储器。
  AT89S51采用片内、片外统一编址的64kB(0000H~FFFFH)程序存储器地址空间。片内有4kB Flash Memery.地址范围为0000H~OFFFH.
  既可在线编程(ISP),也可以用传统方法进行编程。
  采用汇编语言或C语言编写的源程序,必须通过编译软件(如Keil C51)把编译生成二进制代码,即机器码。用户编写的程序、原始数据、表格等,都是以二进制的形式存放在程序存储器中的。计算机的工作,就是按照事先编好的程序从0000H地址单元一条条地循序执行的。
  当AT89S51(31) 脚EA接高电平时,从片内ROM 中的0000H地址单元开始执行程序。当AT89S51(31)脚EA接低电平时,片内ROM不起作用,CPU只能从片外ROM 中取指令。
  内部ROM AH共43个单元。被分为六段,作为程序运行的入口地址使用。其中:
  H 为复位后或初始化引导程序地址区;AH 外部中断0中断入口地址区;000BH~001 2H 定时器/计数器0中断入口地址区;001 3H~001 AH 外部中断1中断入口地址区;001 BH~0022H 定时器/计数器1中断入口地址区;0023H ~ 002AH 串行中断入口地址区。
  通常, 我们编写程序时不得占用上述中断程序入口地址单元, 即AH单元。也就是说, 主程序一般不放在该地址空间。编程时, 可以采用起始伪指令ORG,跳过AH单元。
  伪指令,是告诉汇编程序如何进行汇编的一类指令,不会被汇编成机器代码,只能为汇编软件(如Keil C51)所识别。
  单片机复位后,是从0000H单元开始取指令执行程序的。因此,应在O000H~O002H三个单元存放一条无条件转移指令,转到主程序,程序结构如下:
  ORG O00H:用伪指令ORG指示随后的指令代码从0000H地址单元开始存放。
  LJMP START;在O000H~0002H存放一条长跳转指令,执行该指令,程序转到以START为语句标号的地址执行。
  ORG 0030H;伪指令ORG指示随后的指令代码从0030H地址单元开始存放。
  START: ;START是主程序入口地址标号,主程序开始。
  END ;结束伪指令,标志程序代码到此结束。
  通过该程序,保留了各中断入口地址。对各个中断入口地址的使用,我们在学习中断系统时再进行介绍。
  3.数据存储器(RAM )
  单片机的数据存储器有片内和片外之分,AT89S51片内有256字节RAM,其中高128单元被专用寄存器占用,低128字节供用户使用,用于存放可读写的数据。片外数据存储器可扩展6kB存储空间,地址范围为0000H~FFFFH.片内和片外RAM 的地址空间各自独立, 指令MOV用于片内数据存储器之间的传送,指令MOVX用于片外数据存储器和累加器A之间的数据传送。
  AT89S51内部RAM共有256字节,通常分为低128字节(地址00H~7FH)和高128字节(地址80H~FFH)两部分。低128字节,按其用途分为三个区域,如表1所示。
&&& (1)工作寄存器区
  工作寄存器区有四组工作寄存器,每组8个寄存器,用于存放操作数及中间结果等。其地址为内部RAM 的00H~1FH单元地址。在任一时刻,CPU只能使用其中一组寄存器,并把正在使用的那组寄存器称为当前寄存器组,用R0~R7表示。当前使用的到底是哪一组工作寄存器,则由程序状态字寄存器PSW 得RS1、RS0位的状态组合决定,表2为工作寄存器选择。
表2 工作寄存器选择
  RS1和RS0的状态可以通过指令修改,如指令:
  SETB RS1 :置RS1为1
  CLR RS0 ;置RS0为0
  置当前工作寄存器为第2组,R0~R7的物理地址为10H~17H.
  (2)位寻址区。
  内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对各RAM单元的每一位进行位操作,因此,把该区又称为位寻址区。位寻址区有16字节RAM单元,共128位,位地址为00H~7FH.可以用位操作类指令对其进行位操作。如指令:
  CLR 00H ;00H为位地址,而不是字节地址,将位地址00H清零
  SETB 07H ;07H为位地址,不是字节地址,将位地址07H置1
  当位地址为80H~FFH时,所代表的是特殊功能寄存器的位地址。
  如指令:CLR P1.0
  CLR 9OH
  (3)用户RAM 区及堆栈。
  用户RAM区,包括堆栈区和用户标志区等用户自己设定的数据区。其地址在内部RAM低128单元中。如果用户的程序要使用四组工作寄存器,其单元地址为30H ~7FH,共8O个单元,如果用户程序不需要四组工作寄存器,则其中一部分工作寄存器区也可作用户RAM使用。用户RAM区中的堆栈,用来暂存数据和地址,它是按"先进后出"的原则存取数据的。
  堆栈有进栈和出栈两种操作,由栈指针SP管理。分别采用压栈和出栈指令PUSH和POP进行数据的存和取。
  系统复位后,SP的值为07H,此时堆栈是从08H单元开始的。由于08H~1FH单元属于工作寄存器1~3区,如果程序中要用到这些区,最好把SP值改为2FH或更大。堆栈最好在内部RAM的30H~7FH单元中开辟。SP值一经确定,堆栈的位置也就确定下来了。由于SP可通过指令初始化为不同值。因此堆栈的位置是浮动的。如:
  说明:( ):表示某寄存器、存储单元或表达式的内容。(()):表示某寄存器、存储单元或表达式的内容为地址单元的内容。
  4.特殊功能寄存器(SFR)
  内部RAM的高128单元是特殊功能寄存器区其单元地址为80H~FFH.本文只讲解累加器ACC.
  累加器A是最常用的特殊功能寄存器。它既可存放操作数,也可存放运算的中间结果。51系列单片机(AT89S51)中大部分单操作数指令的操作数取自累加器,许多双操作数指令中的一个操作数也取自累加器。
  如:指令MOV A,Rn;把当前工作寄存器的内容送累加器A.指令MOV A,#把立即数data送累加器A.
  5. 定时器/计数器
  51系列单片机(AT89S51)共有2个16位定时器/计数器,用以实现定时或计数功能。并以其定时或计数结果对计算机进行控制。
  6. 并行I/O口
  AT89S51共有四个8位I/O I:1 P0、P1、P2、P3,以实现数据的并行输入输出。在下面的实例中。
  我们便是用P1 1:3连接8只,并通过程序对其进行控制。
  7. 串行口
  AT89S51有一个全双工的串行口,以实现单片机和其他设备之间的串行数据传送。该串行口既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
  8. 中断控制系统
  AT89S51共有5个中断源,即外中断2个、定时/计数中断2个、串行中断1个。
  综上所述,51系列单片机(AT89S51)虽然只是一个芯片,但具有计算机应该具有的基本部件。
  是一个简单的微型计算机系统。
 二、8路花样显示电路设计
  为了实现8路LED间隔显示所设计的八路LED花样显示电路如图1所示。其中,发光二极管可选用3mm 的,晶振为12MHz的,电路可用15~17cm的万能板搭焊,单片机最好加一个40DIP的紧锁lC插座,电源可用装在4.5V电池盒的三节5号电池提供。
图1 8路LED花样显示电路图
  三、制作
  到电子市场上购买以上材料后(正常价格约20元),便可进行电路的焊接了。焊接步骤如下:
  (1)在万能板上依据8路LED花样显示电路设计好PCB电路图,然后以紧锁座为中心焊接其他元件。
  (2)电路焊接顺序为:电源电路一外围电路一振荡电路一复位电路一程序存储器选择电路。
  焊接前,应先对元器件引脚或电路板的焊接部位进行处理,~ 般有"刮/擦"、"镀"、"测"三个步骤:
  刮/擦,就是做好焊接部位的清洁工作。一般是用小刀、细砂纸或橡皮擦,对紧锁座的引脚、万能电路板进行清理,去除其上的污垢。
  镀,就是在刮净的元器件的待焊接部位上镀锡。
  具体做法是:先蘸松香酒精溶液涂在刮净的元器件焊接部位,再将带锡的热烙铁头压在其上,并转动元器件,使之均匀地镀上一层很薄的锡层。
  测,就是用万用表检测所有元器件的质量是否可靠,若质量不可靠或已损坏,则用同规格元器件替换焊接对象不同,电烙铁的工作温度也不相同。用电烙铁碰触松香, 若有"吱吱" 声,说明温度合适;若没有声音,仅能使松香勉强熔化,说明温度太低;若烙铁头一碰上松香就大量冒烟,则说明温度太高。
  焊接过程一般以2~3s为宜。正常情况下,本电路焊接可以在3小时内完成。
  四、程序设计
  ORG O000H;随后的指令代码从O000H单元开始存放LJMP START;转标号START处ORG 0030H;随后的指令代码从0030H单元开始存放。
  START:MOV P1,#B;使得(P1)= 1o路LED间隔发光END;结束伪指令,说明程序到此结束。
  使用Keil C51 uVision2 编辑源程序、编译源代码并生成目标程序代码,再把目标程序代码通过编程器写到单片机中。把单片机芯片插到八路LED花样显示电路的紧锁插座上,并通电观察结果。
  该程序实现了用单片机控制八只LED发光的功能。执行该程序,LEDI、LED3、LED5、LED7点亮,LED2、LED4、LED6、LED8熄灭,如图2所示:
  请读者思考, 如果把指令"START:MOVP1,#1O101010B" 换成"START:MOV P1,# B".LED1~LED8的发光状态将如何?
  如果想要前面四只LED亮,后面4只LED灭,该如何修改程序?
  【中国LED网讯】“想当初,老子的...... 
新闻月排行}

我要回帖

更多关于 at89c51最小系统图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信