ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:405.81KB ,
资源ID:6827699      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6827699.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理及应用课程设计报告最终版要点.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理及应用课程设计报告最终版要点.docx

1、微机原理及应用课程设计报告最终版要点微机原理及应用课程设计报告题 目LED16*16点阵实验学 院电子信息工程学院专 业电子信息工程组长姓名和学号学生姓名和学号指导教师2015 年 1 月 22 日目录1 选题目的、意义及任务.1 1.1 选题目的.1 1.2 选题意义.1 1.3 设计任务.12 方案设计.2 2.1设计思路. .2 2.2总体设计.3 2.3设计论证.3 2.4硬件连接.33 设计流程.6 3.1程序流程图.64 主程序分析.7 4.1程序分析.7 4.2功能解释.95 调试结果.9 5.1硬件、软件实现.95.2结果图.106 团队构成.107 问题分析.118 心得体会

2、.118 附录.14 1 选题目的、意义及任务 1.1 选题目的 本次微机原理及应用课程设计我们组的选题是LED16*16点阵实验。LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,LED点阵常常被用来做点阵屏。点阵屏是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示系统中各模块的显示方式有静态和动态显示两种,静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反

3、复循环以上操作,就可以显示各种图形或文字信息。对于我们的课程设计主要目的如下: 熟悉8155、8255的功能,了解点阵显示的原理及控制方法; 学会使用LED点阵,通过编程显示不同字符; 1.2选题意义 LED显示屏具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。因此16*16LED点阵实验的课程设计对实际的生产和生活具有非常重要的指导意义。通过LED16*16点阵实验来让我们更好地理解微机工作的原理,并更深层次的了解各大芯片的用法以及功

4、能。 1.3设计任务 设计一个能显示16X16点阵图文LED显示屏,要求能显示文字,文字应稳定、清晰,文字以卷帘形式向上滚动显示“欢迎使用星研实验仪”。2 方案设计 2.1设计思路 1616点阵LED电子显示屏的设计:能依次显示“欢迎使用星研实验仪”几个字符。LED点阵中没有16X16的点阵,可以通过四个8X8的LED点阵对应的行和列分别连接起来构成16X16点阵,此时共需要32根行列控制线,对微机来说明显不够,需要外扩I/O接口。可以选择的芯片有8255、8155等。设计过程中注意LED的驱动电压。 本实验微机扩展采用74LS244N、8255A、8155A。LED采用动态扫描的显示方法。这

5、样扫描驱动电路就可以实现多行的同名列共用一套驱动器。具体就1616的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阴极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其点亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快,由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在微机的存储器中,按8位一个字节的形式顺序排放。显示时要把一

6、行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示

7、的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。 2.2总体设计 图1 总体设计框架2.3设计论证 图文显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然微机没有这么多的端口

8、,如果采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是1616的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。这就是我们此次课程设计在显示字符上使用动态扫描的原因。2.4硬件连接本次设计采用了STAR ES598+实验仪,本实验硬件使用该实验仪,使用实验仪的A2、A3和B4区。具体的连线可按下图连接。表1 连线说明连接区接线位置标号(依次)被连接区被接线位置标号(依次)B4区CS(8255)、A0、A1A

9、3区CS1、A0、A1B4区CS(8152)、IO/MA3区CS2、A8B4区JP56、JP53A2区JP23、JP24(行输出线)B4区JP52、JP76A2区JP33、JP34(列输出线)图2 LED驱动原理图 LED驱动原理图是通过AD软件绘制的,另附有原理图生成的PCB版图。在实际连接线路时需要注意接线的方向,行线跟8255的PA口,PB口要高低位对应,不可接反。而1616点阵LED的两根列线编号跟点阵是相反的,故连线的时候两根列线要与8255的PC口,8155的PA口高低位反接。在该电路中JP23、JP24组成16根行扫描线;JP33、JP34组成16根列扫描线。行扫描线是低电平有效

10、,列扫描线是高电平有效。需要介绍的芯片是可编程接口芯片8155,8255A接口芯片就不再介绍。可编程接口芯片8155:8155采用40脚双列直插式封装,单一5v电源。CE:片选端,8155为低电平有效,8156为高电平有效,当8155上加上一个低电平时,芯片被选中,可以与微机交换信息。AD0AD7:三态地址/数据总线,在ALE 的下降沿把8位地址锁存于内部地址锁存器,地址可代RAM或输入/输出用,由IO/M信号的极性而定,8位数据的流向取决于RD或WR信号的状态。RESET:复位信号线,高电平有效,在该输入端加一脉冲宽度为600ns 的高电平信号,就可使8155可靠复位,复位时三个输入/输出口

11、预置为输入方式。 PA0PA7:输入/输出口A的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。 PB0PB7:输入/输出口B的信号线,通用8位输入/输出口,输入/输出的方向通过对命令/状态寄存器的编程来选择。PC0PC5:输入/输出口C的信号线,6位可编程输入/输出口,也可用作A口和B口的控制信号线,通过对命令/状态寄存器编程来选择。图3 8155硬件图3设计流程 3.1 程序流程图 此次LED16*16点阵实验程序流程图如下: 图4 程序流程图4主程序分析 4.1程序分析: 扫描子程序: DISP1 PROC NEAR PUSH SI PUSH CX MO

12、V CX,16 ;计数器,16列依次被扫描 MOV BL,0FEH ;上边列输出值 MOV BH,0FFH ;下边列输出值 REPEAT: MOV DX,LINE1 MOV AL,BL OUT DX,AL ;上边列输出 MOV DX,LINE2 MOV AL,BH OUT DX,AL ;下边列输出 LODSB CALL ADJUST ;调整AL,将AL中二进制数旋转180度 MOV DX,ROW1 OUT DX,AL ;左边行输出 LODSB CALL ADJUST ;调整AL,将AL中二进制数旋转180度 MOV DX,ROW2 OUT DX,AL ;右边行输出 CALL DL10MS CA

13、LL CLEAR STC RCL BL,1 RCL BH,1 ;循环移位BX,行线扫描输出0 LOOP REPEAT POP CX POP SI RETDISP1 ENDP 初始化程序: INIT_IO PROC NEAR MOV DX,ADDR_8255_C ;8255控制字地址 MOV AL,80H ;设置8255的PA、PB、PC为输出口 OUT DX,AL ;写控制字 MOV DX,ADDR_8155_C ;8155控制字地址 MOV AL,03H ;设置8155的PA口为输出 OUT DX,AL ;写控制字 RETINIT_IO ENDP LED测试子程序: TEST_LED PRO

14、C NEAR ;测试LED子程序,点亮LED并延时1S MOV DX,LINE1 XOR AL,AL OUT DX,AL MOV DX,LINE2 OUT DX,AL MOV AL,0FFH MOV DX,ROW1 OUT DX,AL MOV DX,ROW2 OUT DX,AL CALL DL500ms CALL DL500ms RETTEST_LED ENDP 显示程序: CHS_1: PUSH CX MOV CX,16 CHS_2: CALL DISP_CH INC SI INC SI LOOP CHS_2 POP CX LOOP CHS_1 JMP CHS_SHOW ;显示一个16*16

15、点阵子程序,字型码放在DPTR指出的地址 DISP_CH PROC NEAR PUSH CX MOV CX,8 DISP_CH_1: CALL DISP1 LOOP DISP_CH_1 POP CX RETDISP_CH ENDP ;显示一个16*16点阵子程序,字型码放在显示缓冲区XBUFF 设置滚动字符数: MOV CX,9 LEA SI,HUAN 4.2功能解释: 程序一开始就设置好了循环变量,便于滚动显示多个字符,即从“欢”字一直滚动到“仪”字结束,随后进行重复性的循环显示。 由于我们人为输入的各个汉字的显示位置是从左向右的,而LED扫描时是从右向左的,所以程序中需要将AL中的二进制数

16、旋转180度。 如果你想改变显示内容,先用字模产生字代码,将用这段代码覆盖原来的代码,即可显示你想要的内容。5调试结果 5.1硬件、软件实现 硬件的连接 首先检查实验仪是否能够正常使用。在实验仪断电情况下,严格按照前面硬件设计中的接线说明进行接线。最后连接USB线和电源线。在连接导线时务必不能带电操作,否则有可能会烧坏芯片和试验箱。注意在连接排线时需要对照原理图来正确连接端口。将试验箱通电,由于软件库中含有程序的源代码,我们可以直接从库中调出源程序,通过编译、链接、运行,可以观察试验现象。通过观察试验箱,可以清楚地观察到“欢迎使用星研试验仪”几个滚动的字符,且文字比较清晰。5.2 结果图图5

17、结果图 6 团队构成7 问题分析:这次的课程设计在整个过程中遇到了很多的问题与疑惑,硬件的连接部分就出现了问题。在组员一起进行硬件连接的时候,如果一味的秉着排线不绕连的原则是无法显示出最终结果的,必须要看清原理图上引脚的对应位,通过引脚的标号来连接排线。在连线的时候由于试验书上的排线连接印刷错误,开始我们只能显示一半的结果,最终还是通过检查找出了原因所在。软件程序部分也存在诸多不合理的部分。首先是变量名定义的问题,程序出应该将LINE变量定义为列线,将ROW变量定义为行线。定义比较草率,很难让读者一目了然,要注意代码命名的规范性。在软件仿真中也遇到了麻烦,其中proteus对于加载到8086的

18、masm32或emu8086生成的执行文件仿真时,和结果预计不一致。而其中的8155芯片输出端口总是处于不确定的状态,导致无法有正确的展示。8 心得体会ccc:这次微机原理课程设计历时两个多星期,可以说中间遇到了很多麻烦,但是学到了很多东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上学不到的东西,例如AD软件的制版、流程的分析。课程设计可以说是把课本上的理论知识具体化形象化了,整个学习设计过程也变得更加有趣了。通过这次课程设计我们懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能够从理论中得出结论,并且很好的运用。通过这次的课程设计,让

19、我们对汇编语言的基本知识更加的熟练,同时也明白了团队合作的重要性。aaa:进行了差不多两个星期的微机原理课程设计,虽然时间较短,但是让我感觉到了学习微机原理这门课的乐趣。看见实验箱上清晰地显示几个LED文字,整个人都兴奋了,甚至可以自己通过修改程序来改变LED点阵上显示的文字,一下子感觉到了代码的力量。平时自己做微机原理实验也没太认真去分析代码,现在自己分析代码后知道最后结果是怎么出来的,感觉特别有趣。这次课程设计也学到了很多,甚至许多课本之外的东西,收获特别大。ddd:我负责利用Altium Designer绘制原理图和PCB版图。在绘制过程之中,主要参考微机原理实验教材上的原理图。实验箱上

20、的是双层布线,无法准确查找各个引脚之间连线。实验书上的原理图,利用三排排针代替8255A的三个八位的PA、PB、PC端口,另一排排针代替8155的八位PA端口。然而为了方便理解,自行绘制了8255A的原理图封装和PCB封装,而不是用排针代替,是原理图和PCB图看上去浑然一体。在从原理图转为PCB图时,个别引脚并未同原理图一样连接在一起,后来通过请教同学,找到了原因。室友绘制原理图和PCB封装时,对应的引脚序号不一样导致。通过修改对应的引脚序号,使之相同就解决了问题。同时也查找的74LS240N,74LS244N和16*16LED点阵的资料。74LS244N和74LS240N是八路缓冲器和线路驱

21、动器设计特别是为了改进的性能和三态存储器地址驱动器密度。LED连接原理:将4片8*8点阵连接成为一片16*16点阵,将四个点阵按照同样的方向排列,即有字一面向着同一方向,假设四个点阵的排列方式为: 00 01 10 11 将00与01的行控制线一对一连接,10和11的行控制线一对一连接;00与10的列控制线一对一连接,01和11的列控制线一对一连接。最后,00和01的16根列控制线就是16x16的列控制线;00和10的行控制线就是16x16的行控制线。锻炼了阅读英文文献的能力和了解了驱动器缓冲器的概念。xxx:在这次课程设计中,我主要负责proteus仿真及阅读代码的工作,同时协调组员之间的任

22、务分配协调。其中对于8086在proteus下的仿真着实让我头疼,硬件电路搭建好后,分别使用了emu8086与masm32生成.com和.bin文件,然后加载到proteus的8086中,运行时总是得不到想要的结果,出现了很多问题。比如说在emu8086中,某种情况下对于LOOP $该语句不能正常编译,后来经过换一种形式的代码通过,不过其对PROC ENDP 支持有问题,后经过删除解决编译连接问题,在masm32编译时出现了 missing and unreachable cs的问题,后来发现是assume语句的问题。在这次仿真中,深化了我对proteus的认识,和对微机原理的进一步理解。最终,整个仿真由于个人水平的问题与时间的等问题,未能达到最终的实验效果,感到很遗憾。其中偶然发现proteus对8086的最大工作模式不能正确支持的问题,以后有机会会加以证实。最后,在各位组员的齐心协力下,我们完成了本次课程设计!附录1.PCB图2.proteus仿真原理图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1