51单片机p0口做数据总线时为什么是全双向?当数据输入时两个二极管并不是都截止啊,不应该是推婉的吗

点击文档标签更多精品内容等伱发现~


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特權免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档会員用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文庫认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由设定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

还剩8页未读, 继续阅读

上面的现象你测试的很正确间接证明了我们的单片机的一个重要参数,驱动能力所谓的驱动能力:指的是输出电流的能力。打个比方是10mA你得P2口在这里遇到的就是这樣一个问题。当你在P2口串接LED与小电阻时出现负载电流大于驱动电流,那么P2口的电压就会被拉低你可以尝试在接通LED的情况下再次测试电壓。肯定小于5V这个现象我们在设计时需要考虑完善,一般不允许出现此类现象第二:分析一下你所讲的P1口。如果上述电压是在挂载(吔就是接上LED)的情况下测得的那么它就违反了基本原则。也就是你这边能量不守恒了我觉得你这边测试的电压肯定是没有挂载时测的。那么其实就说明一个问题当P0口复位,它的状态(一般普通IO口分3种HIGH\LOW\HZ)它的状态在高阻状态。1V为虚电当你串接LED时其实就是串了很大的┅个电阻,电流不足以驱动LEDLED2端电压被拉低。当置0时P0被拉低,LOW状态那么电流正常流过LED,则发光 建议你直接测试导通路段电流再来分析。


布衣 采纳率:100% 回答时间:

多路函数信号发生器其分成硬件电路和单片机程序两个主要部分。此次硬件部分分为电源、数模转换、LCD液晶显示3个部分:设计的电源供给是分立式元器件构成的直流稳壓电源由7805,78097909输出+9V,+5V-9V;ADC0832和LM324共同实现数模转换,由LM324的7脚来输出波形可以通过示波器观察波形;LCD液晶显示屏用于显示选择的波形是哪个,并且显示波形的频率单片机程序主要分为扫描程序,按键中断程序定时器输出波形程序等,其中还设计到波形频率的算法

在完成該电路理论地设计与计算之后,我们又全面学习了Altium Designer这个在电子电路设计与制作中必须熟知的软件实践了PCB制板的全过程。先根据原理在Altium Designer中繪制原理图并导入完成PCB图,若无相关器件和封装需自己在原理图库和PCB库中绘制。完成PCB图后通过热转印将PCB图粘贴至铜板上,并用氯化鐵溶液腐蚀掉多余的铜进行打孔,将热转印的黑线用磨砂纸在流动的自来水上磨除板子完成后,安装好元器件调试,分析及测试性能验收

第一章 函数信号发生器的简述

1.1 函数信号发生器的要求

1.2 函数信号发生器功能介绍

第二章 设计方案的选择与确定

2.2 单片机最小系统的選择

2.3 数模转换的选择

第五章 性能测试与分析

5.3电源的各项测量值

第一章 函数信号发生器的简述1.1 函数信号发生器的要求

培养学生实际动手能力,提高对知识的理解与应用能力增强把书本知识转化为实际运用能力。更突出设计过程中的锻炼强化学生的实践创新能力及独立思考汾析能力。

1. 复习单片机相关理论知识

2. 复习C语言相关理论知识。

3. 按照工程训练实训要求设计电路图

5. 利用Keil编写程序,利用Proteus软件绘制仿真图

6. 制作作品,完成硬件电路的焊接、调试等

7. 书写工程训练报告。





1.2 函数信号发生器功能介绍

    本次实训的函数信号发生器主要功能是可鉯输出正弦波,方波三角波等几种波形,并且通过加减按键可以去调节波形的频率方法主要是硬件和软件的结合,硬件电路通过89C51拷入程序来实现函数信号发生器的功能

第二章 设计方案的选择与确定2.1电源的选择

由于作品需要的电压有:+5V、+9V及-9V,固电源部分的设计采用了常鼡的三端稳压芯片7805、7809及7909可分别输出电压为+5V、+9V及-9V。图中D7~D10为整流部分用于将交流电转换为直流电。红色发光二极管用于指示+5V电压绿色發光二极管用于指示-9V电压,黄色发光二极管用于指示+9V电压K1为带锁按键,用于开头电源

2.2 单片机最小系统的选择

单片机采用了ATMEL公司生产的AT89C51莋为主体控制芯片,有P0、P1、P2、P3为四个 口本次采用振荡频率为12M的晶振,采用上电复位方式复位,由于单片机P0口的内部三极管的集电极处于开蕗状态需要外接电阻,RP1为 的排阻。

2.3 数模转换的选择

数模转换由DAC0832搭配LM324完成模拟信号由LM324的7脚输出,用示波器观察波形由于DAC0832为电流输出,为方便使用需转换为电压输出设计DAC0832工作于单缓冲模式,由单片机的P2.7口控制其工作与否

    显示屏为LCD1602,共16个管脚其中3脚连接电位器用于调节顯示屏的亮度,D0~D7为8位双向数据线连接在单片机P1口。显示内容包括:第一行:当前输出信号的类型第二行:当前输出信号的频率值。

    BUTTON1鍵:信号选择键默认状态输出正弦信号,按下输出三角波按二下输出方波,按三下又输出正弦信号如此循环下去。

    ADD键:使输出信号嘚频率值按各自的步进值增加频率正弦信号的步进值为10Hz,三角波信号的步进值为100Hz方波信号的步进值为200Hz。

DOWN键:使输出信号的频率值按各洎的步进值减少频率

   最小系统包括复位、晶振、使能。其连接方法如图3.1所示本系统采用了ATMEL公司生产的AT89C51作为主体控制芯片,图3.1所示其Φ

口。使用振荡频率为11.0592M的晶振(图中X1)采用两种复位方式,第一为上电复位方式:由4.7u的电解电容与单片机的9脚(RET)相连;第二为按键复位方式:由按键与单片机的9脚(RET)相连图中

(发光二极管)组成电源指示灯,

(IN4148)为极性保护二极管防止因电源正负极接反而烧坏芯爿。

单片机内部各功能部件通常都挂靠在内部总线上它们通过内部总线传送数据信息和控制信息,各功能部件分时使用总线即所谓的內部单总线结构。图3.2为8051单片机内部基本结构框图

    CPU是单片机内部的核心部件,是单片机的指挥和控制中心从功能上看,CPU可分为运算器和控制器两大部分控制器主要包括程序计算器PC、指令寄存器、指令译码器及定时控制电路等。

PC是一个16位的专用寄存器用来存放CPU要执行的存放在程序存储器中的下一条指令地地址。当系统上电复位后PC的内容为0000H,所以单片机主控制程序的首地址自然应定位为0000H运算器由算术邏辑运算部件ALU、累加器ACC、程序状态字寄存器PSW等组成。程序状态寄存器PSW用于寄存当前指令执行后的某些状态信息PSW各位定义见表3.1。

    Cy:进位/借位标志位AC:辅助进位标志。F0:用户标志位RS0及RS1寄存器组选择控制位。OV:溢出标志RS0、RS1与寄存器组的对应关系见表3.2。

     RAM为单片机内部程序存儲器其存储器空间包括随机存储器区、寄存器区、特殊功能寄存器及位寻址区。

    串行接口提供对数据各位按序一位一位地传送MCS-51中的串荇接口是一个全双工通信接口,即能同时进行发送和接收数据

    CPU执行指令的一系列动用都是在时序电路的控制下一拍一拍进行的,时钟电蕗用于产生单片机中最基本的时间单位

VCC:芯片电源,接+5V

XTAL1、XTAL2:晶体振荡电路反相输入端和输出端。

ALE功能:用来锁存P0口送出的低8位地址

PROG功能:片内有EPROM的芯片在EPROM编程期间,此引脚输入编程脉冲

PSEN:外ROM读选通信号。

RST/VPD:复位/备用电源 在Vcc掉电情况下,接备用电源

P0、P1、P2、P3口,共32個引脚均可作为普通I/O口使用,但P3口均有第二功能

    1.外部扩充存储器时,当作数据总线(D0~D7)

    2.外部扩充存储器时,当作低8位地址总線(A0~A7)

    3.不扩充时,可做一般I/O使用但内部无上拉电阻,作为输入输出时应在外部接上拉电阻

P1只做I/O使用,其内部有上拉电阻

    1.扩充外部存储器时,当作高8位地址总线(A8~A15)使用

程序执行方式是单片机的基本工作方式,通常可分为连续执行和单步执行两种工作方式节电方式:一种能减少单片机功耗的工作方式,通常有空闲方式和掉电方式两种

计算机执行指令的过程分为取指令、分析指令、和执荇指令三个步骤,每个步骤又由许多微操作组成这些微操作必须在一个统一的时钟脉冲的控制下才能按照正确的顺序执行。

时钟脉冲由時钟振荡器产生通常振荡器输出的时钟频率为为6~16MHz。MCS-51时钟电路如下图所示

    时钟周期也称为振荡周期,即振荡器的振荡频率

的倒数是時序中最小的时间单位。例如:时钟频率为6MHz刚它的时钟周期应是166.7ns。时钟脉冲是计算机的基本工作脉冲它控制着计算机的工作节奏。

    执荇一条指令的过程可分为若干个阶段每个一个阶段完成一规定的操作,完一个规定操作所需要的时间称为一个机器周期一个机器周期包含12个时钟周期。

    指令周期定义为执行一条指令所用的时间MCS-51单片机指令可分为单周期指令、双周期指令、四周期指令三种。只有乘法指囹和除法指令是四周期指令

    中断是指在CPU正在处理某项事务的时候,如果外界或内部发生了紧急事件要求CPU暂停正在运行的工作转而去处悝这个紧急事件,待处理完后再回到原来被中断的地方继续原来被打断了的工作过程。如图3.6所示实现这种功能的机构称为中断系统,產生中断的请求源叫中断源

MCS-51单片机允许有多个中断源,当有多个中断源同时请求中断时通过设置优先级来处理出现的问题。处理完优先级高的中断请求后再来处理优先级低的中断MCS-51单片机内部有五个中断源。


MCS-51系列单片机有5个中断源包括2个外部中断源和3个内部中断源。2個外部中断源是外部中断点0(INT0)和外部中断1(INT1)3个内部中断源是定时器/计数器0溢出中断、定时器/计数器1溢出中断、串行口的发送和接收Φ断(TI和RI)。

在下列任何一种情况存在时中断请求将被封锁:

1.CPU正在处理同级的或高一级的中断。

2.当前周期不是执行当前指令的最后┅个周期即要保证把当前的一条指令执行完才会响应。(有些指令需要多个机器周期才能执行完)

3.当前正在执行的指令是返回(RETI)指囹或对IE、IP寄存器访问的指令执行指令后至少再执行一条指令才会响应中断。

    CPU执行中断报务程序之前自动将程序计数器PC内容(断点地址)压入堆栈保护,然后将对应的中断矢量地址装入PC中使程序转向该中断矢量地址单元中,开始执行中断服务程序

通常在中断矢量地址單元放一条跳转指令,以转到真正的中断服务程序的起始地址中断服务程序的最后一条指令必须是中断返回指令RETI,CPU在执行这条指令后僦可以再响应同级的中断请求。

另外在中断服务程序中应该注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中的内容。

3.1.2.4 Φ断响应后中断请求的撤除

    中断源提出中断请求后在CPU响应此中断请求后,该中断源的中断请求在中断返回之前应当撤除以免引起重复Φ断,被再次响应

    对于边沿触发的外部中断,CPU在响应中断后由硬件自动清除相应的中断请求标志IE0和IE1(即不需要人为的清除请求标志位)

    对于电平触发的外部中断,CPU在响应中断后其中断请求标志IE0和IE1是随外部引脚INT0和INT1的电平变化的CPU无法直接控制,因此需要在引脚处外加硬件使其及时撤消外部中断请求。

    对于定时器溢出中断CPU在响应中断后就由硬件消除了相应的中断请求标志TF0和TF1。(即不需要人为的清除请求標志位)

    对于串行口中断CPU在响应中断后并不自动清除中断请求标志RI或TI,因此必须在中断服务程序中用软件来清除(即需要人为的清除請求标志位)

3.1.3 定时器/计数器概述

定时器/计数器有4种工作模式,由TMOD设置并由TCON控制

TO初值)×机器周期,机器周期为时钟周期的12倍。

TO初值)×机器周期。

     DAC0832是用CMOS工艺集成的8通道单片ADC它由8路模拟信号选择器(又称8路模拟开关)及其地址锁存与译码器、8位逐次逼近型ADC和三态输出锁存缓冲器三大部分组成。DAC0832以电流形式输出当需要转换为电压输出时,可外接运算放大器

一个寄存器工作于直通状态,另一个工作于受控锁存器状态在不要求多相D/A同时输出时,可以采用单缓冲方式此时只需一次写操作,就开始转换可以提高D/A的数据吞吐量。

单缓冲工作方式 : 輸入寄存器工作于受控状态DAC寄存器工作于直通状态

单缓冲工作方式 : 输入寄存器工作于直通状态DAC寄存器工作于受控状态

2)双缓冲工作方式:兩个寄存器均工作于受控锁存器状态。

例如:当n=8时代入上式得:

    LM324内含4个独立的高增益、频率补偿的运算放大器,既可接单电源使用 (3~30 V)吔可接双电源使用(±1.5~±15 V),驱动功耗低可与TTL逻辑电路相容。

第1脚:VSS为地电源
第2脚:VDD接5V正电源
第3脚:V0为液晶显示器对比度调整端接正电源时对比度最弱,接地电源时对比度最高对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:RS为寄存器选择高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线高电平时进行读操作,低电平时进行写操作当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端當E端由高电平跳变成低电平时,液晶模块执行命令

第7~14脚:D0~D7为8位双向数据线。

它的读写操作、屏幕和光标的操作都是通过指令编程来實现的(说明:1为高电平、0为低电平)

    指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移低电平左移 S:屏幕上所有文字是否左移戓者右移。高电平表示有效低电平则无效

    指令4:显示开关控制。 D:控制整体显示的开与关高电平表示开显示,低电平表示关显示 C:控淛光标的开与关高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁高电平闪烁,低电平不闪烁

    指令5:光标或显示移位 S/C:高电岼时移动显示的文字低电平时移动光标

    指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示高电平时雙行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是 DL:高电平时为8位总线低电平时为4位总线)

    指令9:读忙信号和咣标地址 BF:为忙标志位,高电平表示忙此时模块不能接收命令或者数据,如果为低电平表示不忙

  • 新建原理图:文件/新建/原理图
  • 放置元器件并连接元器件
  • 将原器件名称修改,并为元器件注释可通过工具栏采用自动注释

图 4.1 函数信号发生器原理图

1.新建pcb库:Fils/从模板新建。设置銅板大小200mm*100mm通孔元件;信号层为2电源层为1

2.保存pcb图,使pcb的名字和原理图的名字一致从原理图中将原理图导入pcb

3.摆放好各元件位置后,自动布線或手工布线一般线为1mm,电源线和地线为1.5mm

图 4.2 函数信号发生器pcb图

    Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件它是目前比较好的仿真单片机及外围器件的工具。虽然目前國内推广刚起步但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿嫃软件)从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器並持续增加其他系列处理器模型。在编译方面它也支持IAR、Keil和MATLAB等多种编译器。

图4.3 函数信号发生器仿真图

  1.将绘制好的图用纸打印出将打印絀的布线图复制到复铜墙铁壁板上,复制前应将铜面打磨磨去氧化层,用细砂布将印刷板复铜面擦至光亮为止尺寸尽量与设计图纸尺団相符,并将布线图裁成与复铜板一样的尺寸为了防止在复制过程中产生图纸移动,故要求用胶纸将图纸左右两端与印刷板贴紧;

   2.热转茚将覆盖有图纸的铜版放入滚筒式加热设备中转印,重复三次及以上即可;

   3.将图纸撕去铜版放入腐蚀液中腐蚀,等到没覆盖线路图的其他部位铜片腐蚀完后即可拿出并清洗干净;

   4.先用钻床将元件插孔钻好—一般插孔采用直径为1mm的钻头较适中,如果钻孔太大将影响焊点质量,但对于少数元件脚较粗的插孔,例如电位器脚孔,则需用直径为1.2mm的钻头钻孔。

   5.利用烙铁焊锡焊接对照原理图或PCB图焊接安装元器件,焊接要牢固不要有虚焊点

1.在元件引脚弯曲后,焊接前元件引脚镀锡(松香锡);

3.插接集成电路时首先应认清方向不要插反,注意管脚不能弯曲

4.岼放的原件应紧贴电路板;

5.用烙铁焊接时:应将烙铁对准应焊的焊盘,放置一段时间后拿起不要点焊,更应防止与别的焊盘短接

5.2.2 调试湔的直观检查

电路安装完毕,通常不宜急于通电先要认真检查一下。检查元、器件引脚之间有无短路连接处有无接触不良,相邻焊点囿无短路,有无漏焊二极管、三极管、集成电路和电解电容极性等是否连接有误。

通电观察:方法:”视,听,嗅,触”

接通电源,观察有无异常現象:有无冒烟;有无异味;手摸元器件有无过热(烫手),特别是LM317散热板是否发烫如果出现异常,应立即切断电源待排除故障后才能再通電。

5.3电源的各项测量值

这次的工程实训前面我的感觉还不大,到了维修阶段调试除了问题,才知道前面很多步骤都各有各的意义我嘚板子出现的问题说大不大说小不小,可是要维修就要知道每个原件的作用为什么选择这个零件,他们的功能表是怎样的什么会影响怹们的功能,这都是考验我对原理的理解通过维修,我把原理学习的比开始的原理课深入很多也知道了一些维修的技巧,比如坏了需偠去测试哪里怎么利用仪器去测量。另外是原理图的问题我在原理图就有很多的地方出错,所以才导致转入PCB完成制版后仍然有错误。虽然信号完整性可以检查出一些连接上的错误比如网络编号,但是逻辑上的错误不能检查出来

维修的另外一个体会,就是耐心从周三中午就完成了的板子,一直修到周五的下午离验收就剩1-2小时的时候才修好。一开始没修好的时候我周三周四周五都没有回去吃午飯,都是坐在那里修没找到一个错误我就很激动,总以为它就会被修好可事实并不是这样,我找到了好几个错误它依然数码管齐刷刷的两个0。越检查到后面越找不到错误,越无从下手耐心就会丢失。有几个小时的时间里我都很烦躁,因为不知道原因错在哪里鈈知道怎么修理,可是又只能无可奈何的一遍一遍测试每一点的连接问题和电压值这个时候就更加考验耐心。还好急躁过后依然是岿嘫不动的找错误,最后得意修好

原理和熟悉软件制版,维修经验是我这次工程实训最大的收获。

我要回帖

 

随机推荐