微机应用系统设计与综合实践课程设计-正弦波同步触发电路的设计.doc_第1页
微机应用系统设计与综合实践课程设计-正弦波同步触发电路的设计.doc_第2页
微机应用系统设计与综合实践课程设计-正弦波同步触发电路的设计.doc_第3页
微机应用系统设计与综合实践课程设计-正弦波同步触发电路的设计.doc_第4页
微机应用系统设计与综合实践课程设计-正弦波同步触发电路的设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中南大学课程设计报告课程:微机应用系统设计与综合实践学院:信息科学与工程学院班级:自动化0408姓名: 学号:0901040819指导老师日期:2007年1月20日目录(一)利用电路设计与制版软件protel 99 se绘制各种原理和印制版图(正弦波同步触发电路的设计)一protel软件介绍(1)二电路原理图设计(1)三印刷电路板设计(2)四设计心得(3)五参考文献(3)(二)汇编实验一实验要求(3)二实验目的(3)三实验环境(3)四8279键盘及8255芯片(4)五设计思想和实施方案(11)六实验原理电路图及连线(11)七实验程序框图(12)八实验步骤及内容(12)九实验遇到的问题及解决方法(13)十程序调试结果及其工作方式(14)十一实验心得及总结(14)十二 程序清单(15)十三参考资料与附录(18)(一)利用电路设计与制版软件protel 99 se绘制各种原理和印制版图(正弦波同步触发电路的设计)一、protel软件介绍 protel99se就是由早期protel版本发展而业的,是基于windows95/98/2000/xp环境的新一代原理图辅助设计与绘制软件,其功能 主要由两大部分组成:a、原理图设计系统(schematic99)。它主要用于电路原理图的设计,为印制电路板的设计打好基础,附录中原理图就是一个用protel99设计的原理图实例.b、印刷电路板设计系统(pcb 99).它主要用于印制电路板的设计,产生最终的pcb文件,直接联系到印制电路板的生产.附录中pcb图就是用protel 99设计完成的.除此之外,无网格布线器,可编程逻辑器件设计,电路图模拟/仿真等 原理图设计系统和印制电路板设计系统紧密联系,相互影响,用户的大部分工作将在这两个设计系统中完成。二、电路原理图设计电路原理图设计最基本的要求是正确性,其次是布局合理,最后在是正确性和布局合理的前提下力求美观。根据以上所述的电路原理图设计步骤,电平检测器电路原理图设计过程如下:1启动原理图设计服务器进入protel99se,创建一个数据库,执行菜单file/new命令,从框中选择原理图服务器(schematicdocument)图标,双击该图标,建立原理图设计文档。双击文档图标,进入原理图设计服务器界面。2设置原理图设计环境执行菜单design/options和tool/preferences,设置图纸大小、捕捉栅格、电气栅格等。为了便于打印,本次实验设置图纸类型为a。3装入所需的元件库在browse区域中的下拉框中选择library,然后单击add/remove按钮,在弹出的窗口中寻找protel99se子目录,在该目录中选择library/sch路径。根据电平检测器的原理土可知,需要载入miscellaneousdevices和sim元件库。4放置元件根据实际电路的需要,到元件库中找出所需的元件,然后用元件管理器的place按钮将元件放置在工作平面上,再根据元件之间的走线把元件调整好。5原理图布线利用protel99se提供的各种工具、指令进行布线,将工作平面上的器件用具有电气意义的导线、符号连接起来,构成一个完整的电路原理图。6编辑和调整根据电平检测器的原理图对元件的编号,然后进行封装定义。实验中用到了普通电阻,电容等元件等,各自的封装形式如下:普通电阻 res2 axial0.4无极性电容 cap rad0.2有极性电容 electro1 rb.2/.4滑动变阻器 pot2 vr1普通二极管 diode diode0.4普通三极管 2n1983 to-18变压器 10to1 so4电源 接地 插座等由于没有封装形式,只好在pcb图时自己手动引出。c、创建网络表选择design/create netlist. 系统自动生成网络表。三、印刷电路板设计1启动印刷电路板设计服务器在原理图的基础上,执行菜单命令design/create list.,系统自动生成网络表(s),如附录所示;2.在document中单击右键选择new,在出现的选项框中选择wizards/erocard vme bus formut创建pcb1.pcb3装入元件封装库执行菜单命令design/add/removelibrary,在“添加/删除元件库”对话框中选取所有元件所对应的元件封装库,本实验所需库文件:pcbfootprint.lib, generalic.lib, miscellaneous.lib, dc to dc.lib4装入网络表执行菜单design/loadnets命令,然后在弹出的窗口中单击browse按钮,导入已生成的网络表.其中常见的错误原因有:没有没有预先所需的全部正确的元件库,原理图中元件未给出封装形式而造成网络表文件内容不全等等,如没有错误,单击execut.5元器件布局可以用自动布局(autoplacement/autoplacer),在自动布局之后用手工对布局进行调整,为步线提供更合理的布局。6布线执行菜单命令autorouting/all,并在弹出的窗口中单击routeall按钮,程序即对印刷电路板进行自动布线。7调整用手工对步线进行调整,最后注明电平检测器的输入输出口,接地端。印刷电路板图,如附录所示!8、制孔及标注选择placevia在印制版图合适的位置放置,后选择placestring,并根据原理图正确修改string的名称。四、设计心得:这次protel设计原理图与pcb图,可以说在以前从来没有接触过是一个全新的概念。开始在的确有点手足无措,不知道从哪里下手,通过上网查资料,自学protel 99 se,在图书馆也查阅了一定材料,对这个软件也有一定的了解。在实验过程中遇到的困难主要是元件库的查找,元件的封装形式以及布局与布线的调整,但通过老师的帮助,与同学交流,困难被我们一一解决。实验给我最深的体会那便是protel 99强大的自动元件布局和自动布线功能,只需在pcb状态下选择tools/auto placement/auto placer便可实现元件的自动布局,布局虽不十分美观,还可以适当的手工调整,达到我们想要的结果。如果没有protel 99自动布线功能,很难想象每条线都用手工完成的艰辛工作量,在自动布线的帮助下,几秒钟便可完成手工布线的庞大工作量。在实验中在这个过程里将以前所学的知识进行了综合的运用,发现了自己很多不足的地方,理论知识与实际应用之间的距离也充分的体现了出来。当然,更多的是学到了很多的东西,为以后的设计打好基础。五.参考文献:protel 99t入门与提高 老虎工作室 人民邮电出版社 高鹏 安涛 寇怀成 编著 protel 99 se原理图与pcb及仿真清源计算机工作室 编著机械工业出版社(二)汇编实验一实验要求对8279键盘显示接口电路和8255的pa口进行编程,实现8个单色led灯的左,右循环显示,并实现循环的速度可调。二实验目的1:熟悉并掌握系统中扩展8279键盘显示接口的方法。2:掌握8279工作原理和编程的方法。3:学习编制数据输出程序的设计方法。三实验环境:硬件环境 x86系列pc机、8255芯片,8255芯片 发光二极管八只及导线若干等。软件环境 msdos操作环境 编辑程序edit及其它文本编辑器汇编语言 masm.exe 连接程序 link.exe 调试程序 debug.com四8279键盘及8255芯片(一)8279的组成及引脚:8279芯片有40条引脚,由单一+5v电源供电。它主要由以下几部分组成:(1)i/o控制和数据缓冲器;(2)控制和定时寄存器及定时控制部分;(3)扫描计数器;(4)回送缓冲器与键盘去抖动控制电路;(5)fifo(先进先出)寄存器和状态电路;(6)显示器地址寄存器及显示ram。8279的引脚如图4所示,下面对引脚名称作简要说明:db0db7:双向数据总线。a0:命令状态或数据选择线。a0=1,表示从db0db7线上传送的是命令或状态字;a0=0表示为数据。、:读、写信号线。irq:中断请求线。sl0sl3:扫描线。可进行译码扫描(4选1),也可进行编码扫描(16选1),但要使用4-16译码器。若用3-8译码器的话,则扫描线为8选1。rl0rl7:回送线。内部有上拉电阻,从此线上得到键盘的回扫信号。outa0outa3、outb0outb3:显示器刷新寄存器输出,与扫描线同步。编程使8279工作在这样的状态:左边输入,八位显示,键盘外部译码,双键互锁。8279操作命令字较多,需灵活应用。8279的编程命令 a.键盘/显示器方式设置 最高位 最低位 命令代码 0 0 0 d d k k k 其中dd为显示方式,kkk为键盘方式 dd 00 8个8位字符显示-左端传入 01 16个8位字符显示-左端送入 10 8个8位字符显示-右端送入 11 16个8位字符显示-右端送入 所谓左端送入是显示器根据用户送的先后,从左端一位开始,向右逐位排列,到最右端一位之后,下一位再从最左端显示,在这种显示方式中,显示器的每个显示管和8279中的显示ram单元一一对应,ram中的o地址对应最左面的显示字符,而15号单元对应最右端的显示字符, 而右端送入方式是电子计算器中常用的显示方式,第一个送入的数在最右端的显示字符上,而以后每送 入一个新数,显示先左移一位然后把送入的数仍放在最右端显示字符上. k k k 0 0 0 编码扫描键盘-2键连锁 0 0 1 译码扫描键盘-2键连锁 0 1 0 编码扫描键盘-n键巡回 0 1 1 译码扫描键盘-n键巡回 1 0 0 编码扫描传感器阵列 1 0 1 译码扫描传感器阵列 1 1 0 选通输入,编码显示扫描 1 1 1 选通输入,译码显示扫描 其中2键连锁和n键巡回是8279对键盘中被按下键的两种处理方式,编码扫描和译码扫描是 sl0-sl3 对链盘和显示器的两种扫描形式. b.程序时钟 命令代码 0 0 1 p p p p p 此命令确定定时和控制中的前置定标器的分频系数,代码ppppp可形成2-31的数,前置定标器 可对外部时钟分频,以得到内部基频,选基频为100khz,可得到前面规定的扫描和反跳时间, 则分频系数为;外部时钟100khz复位脉冲过后若无代码送入则自动为31. c.读fif0/传感器ram 命令代码:0 1 0 ai x a a a x=任意 此命令用于确定cpu读操作的对象是8279中的fif0/传感器 ram,并确定8个 ram 字节中哪一 个被读,其中 aaa表示cpu要读的行,ai为自动加1特征位,在键盘扫描方式中这两者互不相干, 对随后的每次读取8279都按照数据第一次进入的fif0的同一顺序自动送出数据,所有随后发 生的读,都是读自fifo,直到写入新命令为止. 在传感器阵列方式中,aaa选择传感器ram 8行中的一行若ai=1,则下一次读取便读自传感器 ram中的下一行. d.读显示器ram 命令代码:0 1 1 ai a a a a cpu对8279写此命令,则确定了 cpu 以显示器 ram为数据源进行读操作,其中aaaa为显示器 ram的地址,ai 为自动加1特征位,若ai=1,则每读一行ram之后,行地址自动加1 e.写显示器ram 命令代码: 1 0 0 ai a a a a cpu向8279写此命令,规定了下一步要对8279的显示ram进行写,寻址方式和自动加1功能均与 读显示器ram相同 f.显示器写入禁止/空格 命令代码: 1 0 1 x iw iw bl bl x=任意 a b a b 此命令用于屏蔽a或b端口输出及使显示器显示空格,如果显示器用作双排4位显示,则必须把 其中一个4位屏蔽掉这样cpu送入显示器的信息就不会影响另一半,iw为屏蔽特征位,若对某一 端口设置iw=1,则该端口就被屏蔽,有必要注意的是:b0与d0对应,bl为显示空格标志位,若某 一端口的bl置1,则此端口显示空格.当要使一个单8位输出格式的显示器空格时,则必须使两 个bl标志全都置位,以使显示完全空格. g. 消除 命令代码: 1 1 0 cd cd cd cf ca 此命令用于按一定格式清显示器ram的fif0状态,其中cd规定清除格式: cd cd cd 0 x 全0(x为任意) 1 0 ab =16 进制 1 0 20(0 o 1 0 0 0 0 0) 1 1 全册1 当为1时允许清除显示器(或用ca=1) cf清除fifo状态(包括中断),若cf=1,则清除fif0状态,并对中断线复位自传感器ram的指示器 亦被置于0行ca为总清,其效果相当于cd和cf的合成,当ca=1时,利用cd指示的清除格式清除显 示器ram,并清除fif0状态,c孔也使内部定时重新同步.在显示器ram被清除期间(约16us)不能 写入,同时在此期间fifo的最高有效位被置1当显示ram再度变为可用时即自动复位. h. 中断结束/出错方式设置 命令代码: 1 1 1 e x x x x x=任意 在传感器阵列方式时,此命令使irq线变低,并允许对ram再写(检测到一个传感器位变化时, irq线可能已升高了,因此这样做可阻止在其复位以前把信息再度写入ram).在n键巡回工作方 式,若e位被编程为1,则芯片电路将在特殊出错方式下运行. 在n键巡回方式的特殊出错方式下主要用于检查键的多重按下,若在一个回弹周期中发现两个 键被按下,即可看成同时多重按下,并建立出错标志,阻止任何对fif0的进一步写入,同时设置 中断(如中断尚末设置的话),在此方式中,可用读 fifo 状态字命令读出错误标志,而发cf=1 的清除命令,可使出错标志复位.图4:8279芯片引脚图(二)8255的组成及引脚:8255a可编程并行输入/输出接口芯片是intel公司生产的标准外围接口电路。它采用nmos工艺制造,用单一5v电源供电,具有40条引脚,采用双列直插式封装。它有a、b、c3个端口共24条i/o线,可以通过编程的方法来设定端口的各种i/o功能。由于它功能强,又能方便地与各种微机系统相接,而且在连接外部设备时,通常不需要再附加外部电路,所以得到了广泛的应用。1. 8255a的内部结构:8255a的内部结构如图1所示,由以下几部分组成。1) 数据端口a、b、c8255a有3个8位数据端口,即端口a、端口b和端口c。编程人员可以通过软件将它们分别作为输入端口或输出端口,不过这3个端口在不同的工作方式下有不同的功能及特点,如表1所示。2) a组和b组控制电路这是两组根据cpu的命令字控制8255a工作方式的电路。它们的控制寄存器先接受cpu送出的命令字,然后根据命令字分别决定两组的工作方式,也可根据cpu的命令字对端口c的每1位实现按位“复位”或“置位”。a组控制电路控制端口a和端口c的上半部(pc7pc4)。b组控制电路控制端口b和端口c的下半部(pc3pc0)。表1:8255a端口功能表图1:8255a内部结构图2:8255a的芯片引脚 8255a是一种有40个引脚的双列直插式标准芯片,其引脚排列如图2所示。除电源(5v)和地址以外,其它信号可以分为两组:(1)与外设相连接的有:pa7pa0:a口数据线pb7pb0:b口数据线pc7pc0:c口数据线(2)与cpu相连接的有:d7d0:8255a的数据线,和系统数据总线相连。reset:复位信号,高电平有效。当reset有效时,所有内部寄存器都被清除,同时,3个数据端口被自动设为输入方式。:片选信号,低电平有效。只有当有效时,芯片才被选中,允许8255a与cpu交换信息。:读信号,低电平有效。当有效时,cpu可以从8255a中读取输入数据。:写信号,低电平有效。当有效时,cpu可以往8255a中写入控制字或数据。a1、a0:端口选择信号。8255a内部有3个数据端口和1个控制端口,当a1a0=00时选中端口a;a1a0=01时选中端口b;a1a0=10时选中端口c;a1a0=11时选中控制口。a1、a0和、及组合所实现的各种功能如表1所示。图2:8255芯片引脚图8255a有3种工作方式,即方式0、方式1和方式2,这些工作方式可用软件编程来指定。表2:8255a端口选择表五计思想和实施方案1首先是定义各段寄存器,然后初使化程序。2把8255与8279初使化,把8279中的存储单元清空,然后把212h赋给8279控制字端口,同理也把8255的a口设置成输出。3通过调用dos显示功能,把屏幕的显示界面设计出来(如上),有提示功能。4判断从小键盘是否有键按下,如果有则转zxh或yxh。zxh是实现八个二极管灯的左循环,在其中我们调用了inputs子程序来实现加减速度,同理我们也可以实现右循环的加减速,也可实现调用jmp bg来实现返回主菜单。5我们通过改变cx的什来改变延迟从而得到了不同的速度,开始状态我们设cx为4000h,我们通过按1或2,可以使其速度一直加或减下去。 6退出是通过调用qit(退出dos的功能)。六:实验原理电路图及连线8279的片选端cs79连至210h217h(74ls138译码信号),8255片选端cs55连218h21fh(74ls138译码信号)。8255的pa0pa7连dl1dl8。七、实验程序框图:八实验步骤及内容1在实验设备和计算机断电状态下,按所设计的硬件电路接好全部信号线,仔细检查接线是否正确可靠。2开机(先开aedk8688et实验箱,再开主机)。输入所编制的程序,调试程序看程序是否编绎成功。3进行汇编,连接和运行程序后,记录执行结果。4观察实验结果看是否与实验要求中的一致。如果不一致,检查问题出现在哪里,并且加以改正。如果与理想中的结果一样,看能否增加其功能或改变其性能使得实验效果更加清晰明了。5总结:通过本次实验后自己在哪方面知道有所提高和哪方面的知识不足,在实验中学到什么样的经验,从而为以后的学习作出一定的规划。九实验遇到的问题及解决方法 由于在实验之前我们已经学习完有关本门课程的知识对8255芯片也有了一定的了解,故在这个方面还是比较容易。但由于平时对有关8279芯片的知识很少关注,也不曾了解其工作原理。通过在网上和上图书馆查找资料对8279的工作原理有的大概的了解。在这次实验中遇到的主要困难主要是8279的信息如何转发到8255中,从而控制二极管工作。在开始中遇到了一些小的错误,主要是把程序输入时打错了和定义时出现一定的错误。再我们的调试过程中,已经一一改正。开始我们调用了这样的一个子程序: see: mov dx,212h mov al,40h out dx,al mov dx,210h in al,dx add al,01h cmp al,31h jz yxh cmp al,32h jz zxh cmp al,33h jz gg在编绎和运行中都没有错误,但显示出的结果却是无限循环主菜单。把程序看了几遍后,还是找不出错误的所在之处,结果和开始一样。把课本有关的指令有看了一遍后,检验8279与8255的控制字,就是在读入8279中的信息时,没有检验我们是否有键按下。通过在see后加入 mov dx,212hin al,dxtest al,07hjz see后,程序运行结果与要求相符。十 程序调试结果及其工作方式运行该程序后,到屏幕上得到如下 的界面:右循环-按 1左循环-按退 出-按 3(如果按1,刚出现下面的菜单要实现加速或减速)加速-按 1减速-按 2返回主菜单-按 3在这个界面下,通过从界面上可以看出我们通过选择13可以选择二极管灯的循环方向或退出到dos界面下,如果选择1的话,则是右循环,然后我们通过按1或2来实现它的加减速,当然也可以返回主菜单,加减速是通过改变其延迟来实现的。程序运行完后,我们进入msdos操作环境,运行debug.com:-d:debug用a命令编辑和汇编程序。用u命令反汇编验证源程序。同时我们也可用r命令观察各有关寄存器内容,在程序未执行前,用d命令观察相关存储区间状态。用t命令执行当前工作ip指向的指令,观察相关寄存器内容的变化。用t命令依次执行命令语句,并观察相应的寄存器内容或存储单元内容,一直执行到最后一条指令为止。用d命令观察最终结果,用r命令改变ip,使它回到程序的第一条语句处,用r命令可以观察到当前ip 值,用a命令对存储数据的缓冲区改变位置,用d命令观察程序执行前,存储区的内容。用g命令执行程序,再用d命令观察执行结果十一实验心得及总结 通过查资料和同学的讨论,最终还是把实验调试了出来。总的来说通过本次实验感觉学到了不少的东西,不仅对关于微机这方面地知识有了进一步的了解,同时通过自学也了解有关8279有关方面的知识,从前从没有接触过这个方面的知识。开始有点畏惧,感觉无从下手。但通过在网上和上图书馆查资料的过程当中感觉要对一个新知识的了解也不是那么的难。并且,在学习过程中的发现自己以前犯了一个很严重的错误,那就是没有充分利用学校提供我们的资源,也没有利用好自己手上的资源。书本上的和老师教给我们的知识都是有限的,我们只有通过自学才能不断扩充自己的知识,而图书馆和网上无疑是一个提供这种方便的好地方。同时在这次实验中也多次和同学商量讨论,也在讨论中遇到许多问题也解决了许多问题,每个的思维都不相同。有的问题可能自己一直都想不明白,但在同学的帮助下,一下就通了。团结合作任何时候的缺少不了,就在我们参加的各项学习,组织活动都能体现出来。这也对我们参加以后的知识竞赛和将来工作有一定帮助。当然这个程序只能实现一些基本的功能,我们应该从发展的眼光来看待这个问题,尽可能使其实验的功能越多。在其中我们也可以调用表格的形式来实现选择左右循环与加减速的问题。十二 程序清单 data segment mess1 db 右循环-按 1,0dh,0ah db 左循环-按 2,0dh,0ah db 退 出-按 3,0dh,0ah,$ mess2 db 错误!,0dh,0ah,$ mess3 db 加速-按 1,0dh,0ah db 减速-按 2,0dh,0ah db 返回主菜单-按 3,0dh,0ah,$ data ends sstack segment stack sta dw 512 dup(?) top equ length sta sstack ends code segment main proc far assume cs:code,ds:data,ss:sstack,es:data start: mov ax,sstack 初使化 mov ss,ax mov sp,offset top push ds mov ax,0 push ax mov ax,data mov ds,ax mov dx,212h mov al,0c2h out dx,al waiit: in al,dx 设置8255与8279的工作方式 and al,80h cmp al,80h je waiit mov dx,212h mov al,00h out dx,al mov al,38h out dx,al mov dx,21bh mov al,10000000b out dx,al bg: lea dx,mess1 显示出主菜单 mov ah,09h int 21h see: mov dx,212h 检验是否有键按下 in al,dx test al,07h jz see mov dx,212h读入信息到8279 mov al,40h out dx,al mov dx,210h in al,dx add al,01h 把信息转化成8255中的ascii的形式 cmp al,31h 转入右循环 jz yxh cmp al,32h 转入左循环 jz zxh cmp al,33h jz gg wx: lea dx,mess2 显示mess2中的信息 mov ah,09h int 21h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论