




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 号: 课 程 设 计题 目基于proteus的跑马灯系统设计及仿真学 院自动化学院专 业自动化班 级姓 名指导教师2012年1月12日任务书目 录引 言11总体方案论证21.1功能分析21.2系统连接图设计21.2.1锁存控制电路51.2.2可编程并行通信接口芯片8255a62程序流程图设计及其说明93关键程序段落说明113.1数据段定义113.2程序初始化113.3芯片初始化123.4初始led亮灭状态123.5检测按键开关子程序123.6延时程序片段143.7灯光变换控制154程序调试说明165结果记录及分析17心得体会19参考文献20武汉理工大学微机原理与接口技术课程设计说明书引 言微型计算机简称微机,由于具备人脑某些功能,所有又叫做微机。是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础,配以内存储器及输入输出接口电路和相应的辅助电路构成的裸机。把微型计算机集成在一个芯片上即构成单片微型计算机。学习微机原理与接口技术,主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言、设计以及微型计算机各个组成部分,而其中很大一块就是汇编语言的学习。汇编语言是面向机器的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。用汇编语言编写的程序由于目标程序占用内存少,运行速度快,它有着高级语言不可替代的用途。因此,学习汇编语言是很必要的,通过学习汇编语言可以体会它的作用。通过本次课程设计让我们进一步深入汇编语言的学习,掌握简单的接口设计技术,将理论知识联系实际,进一步学习微机原理与接口技术的相关知识,为以后深入学习打下良好的基础。1总体方案论证1.1功能分析此次课程设计的要求为,设计微型计算机最小系统,实现跑马灯的模拟显示功能。具体要求为:(1)、输入设备三个启动按钮、一个停止按钮,输出设备为八个跑马灯;(2)、三个启动按钮对应三种跑马灯显示效果,按下任意一个启动按钮,跑马灯显示对应的效果,按下停止按钮则跑马灯全部熄灭。由上分析可知,我们的硬件的电路需要另行搭建,电路中需包含四个按钮和八个跑马灯以及相关芯片,既有输入设备又有输出设备,经过分析可以使用芯片8255a来实现输入与输出,再加上锁存地址芯片74ls273、译码芯片74ls154以及相关门电路即可构成本设计的硬件电路基础。进一步分析最终决定用8255a的a口作为输出去控制跑马灯,b口作为按钮信号输入,cpu通过接收输入信号从而发出对应命令去控制8255a芯片a口输出,从而a口输出相应电平控制跑马灯有规律的亮灭。连接好硬件电路后的主要任务就是编写相应程序,通过程序去控制和调度硬件电路的输入与输出。1.2系统连接图设计8255a是一种通过可编程并行i/o接口芯片。广泛用于几乎所有系列的微机系统中,8255a具有三个带锁存或缓冲的数据端口,可与外设并行进行数据交换,8255a有多种操作方式,通用性较强,可为cpu与外设之间提供输入/输出通道。8255a和各端口内具有中断控制逻辑,在外设与cpu之间可用中断方式进行信息交换,使用条件传输方式时可用“联络”线进行控制。在本次课程设计中,我们运用8255a为cpu与外设之间提供输入输出输出通道来实现对跑马灯花样变换的控制。8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生;8086cpu的地址数据总线ad15-ad0和地址状态总线a16/s3-a19/s6是复用的,必须通过地址锁存器把地址总线和数据总线分离。跑马灯硬件电路如图1所示。电路包括8个led彩灯、三片74ls273、一片74ls154、一片8086cpu、一片8255a以及若干导线和电阻。用led可以观测在不同按键输入下,跑马灯花样的变化效果。如图1所示我们利用启动按钮作为输入信号,通过8255a端口扩展芯片,调节输出端口的电平变化,来控制共阳极的led灯的亮与灭,实现跑马灯不同的花样变化。图1 跑马灯硬件电路图1.2.1锁存控制电路锁存控制电路电路如图2所示,在微控制器单元(mcu)中,寄存器是十分重要的资源。寄存器的主要作用是快速寄存算术逻辑运算单元(alu)运算过程中的数据,其锁存功能利用74ls273来实现,74ls273是一种带清除功能的8d触发器, 1d8d为数据输入端,1q8q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。d0d7:输入,q0q7:输出;第一脚wr:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);cp(clk):触发端,上升沿触发,即当cp从低到高电平时,d0d7的数据通过芯片,为0时将数据锁存,d0d7的数据不变。cpu向外部发出地址锁存允许信号,从而使74ls273锁存地址信号,在通过译码芯片74ls154控制接口芯片8255a,在此系统中充当一个桥梁的作用。这部分电路将相应信号传送给8255a的a0、a1和cs片选,进而cpu开始控制8255a从而驱动发光二极管显示不同的样式。图2 锁存控制电路1.2.2可编程并行通信接口芯片8255a芯片8255a有三种工作方式,他们分别是方式0、方式1、方式2,电路如图3所示。方式0为简单i/o,查询方式,端口a、端口b、端口c均可使用;方式1为选通i/o,中断方式,端口a、端口b可以使用,选通的输入/输出方式;方式2为双向i/o,中断方式,只有端口a可以使用,双向的传输方式。方式0也叫基本输入/输出方式。一种方式,不需要应答联络信号,端口a、端口b和端口c的高4位及低4位都可以作为输入或输出端口。方式0的应用场合有无条件传送和查询传送2种; 故根据我们系统设计的要求,综上可知,选择8255a为工作方式0,a口作为输出、b口作为输入。8255a的3种基本工作方式由方式控制字来决定,d71(特征位)表明是设定方式选择控制字;d7=0,则表示是端口c按位置位/复位控制字。端口c分成高4位(pc7pc4)和低4位(pc3pc0),可分别设置成输入端口或输出端口;端口c的高4位与端口a配合组成a组,端口c的低4位与端口b配合组成b组。综上可得此系统需要满足a端口为输出,输出数据给到8个led彩灯;端口b为输入,需要检测按键的输入情况。图3 芯片8255a接口电路1.3算法说明本程序涉及芯片8255a的初始化,因此首先需要确定端口地址,cpu向8255a送出方式控制字,进而8255a的a口作为输出、b口作为输入;定义控制led灯的相应数据段,由于需要led亮后持续一段时间这就需要一个相应的延时程序片段,需要确定b口那个按钮开关按下,这就需要一个扫描b口开关按下的子程序,从而cpu发出相应控制等操作给a口送出相应电平,led显示相应的亮灭。因此,主要要点就是找对端口地址,这个是程序能够运行的必需品,通过分析硬件线路可以正确找到a口、b口以及控制口的地址。2程序流程图设计及其说明主程序流程图如图4所示:初始化程序开始送控制字通过a口输出使灯全灭调用ledflash子程序图4 主程序流程图检测按键延时控制led子程序流程图如图5所示:开始检测b口信号输入是否为按键1是否为按键2是否为按键3将1型走马灯的偏移地址送给si将2型走马灯的偏移地址送给si将3型走马灯的偏移地址送给si是否终止开关num是否为0延时yyyyynnnnn结束图5 子程序流程图3关键程序段落说明3.1数据段定义dseg segmentnum dw 0 data1 db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh data2 db 7fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh,0feh data3 db 7eh,0bdh,0dbh,0e7h,0e7h,0dbh,0bdh,7eh dseg ends三种灯光变幻组合为:第一种为l1l2l3l4l5l6l7l8;第二种为l8l7l6l5l4l3l2l1;第三种为l1l8l2l7l3l6l4l5l3l6l2l7l1l8。dw为灯光循环的控制次数。3.2程序初始化cseg segment para public code assume ss:sseg,cs:cseg,ds:dseg start: mov ax,dseg mov ds,ax初始化程序。3.3芯片初始化mov dx,0206h ;取8255a的控制端口的地址mov al,82h ;初始化8255a的a口为输出模式,b口为输入模式 out dx,al 82h即为10000010b,也就是说将a口定义在方式0下并且作为输出,b口定义在方式0下并且作为输入,因此这个方式控制字不是唯一的,其通用形式为1000x01x,c口没有定义故可以为任意二进制数。mov dx,0200h ;取8255的端口a的地址mov al,0ffh ;使8255的pa0-pa7全为1out dx,al 上边这个程序段是往外送数据置led亮灭的。mov dx,0202h ;取8255的端口b的地址 in al,dx ;检测b口输入信号这个是将b口开关闭合信息读回来的,从而发出相应控制命令。3.4初始led亮灭状态mov dx,0200h ;取8255的端口a的地址mov al,0ffh ;使8255的pa0-pa7全为1out dx,al ;使所有的灯led全灭电路上电工作后首先要使所有的led灯全灭,防止对后面的显示造成影响。3.5检测按键开关子程序ledflash proc ;检测开关闭合,以便确定哪种闪烁方式mov dx,0202h ;取8255a的端口b的地址 in al,dx ;检测b口输入信号choice1: cmp al,0feh jne choice2 mov si,offset data1 ;置第一种灯光变幻组合 jmp herechoice2: cmp al,0fdh jne choice3 mov si,offset data2 ;置第二种灯光变幻组合 jmp herechoice3: cmp al,0fbh jne choice4 mov si,offset data3 ;置第三种灯光变幻组合 jmp here choice4: ;每盏灯亮完检测开关,如果停止开关没有按下跳到choice5,如果停止开关按下灯全灭 cmp al,0f7h jne choice5 jmp exutchoice5: cmp num,0h;检测num是否为0,若为0扫描开关,若不为0继续执行 jne here jmp ledflash here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口a的地址 out dx,al ;输出加电数据到端口a inc num ;改变数字变量的值 cmp num,09h je exit mov cx,005fh dl4: mov bx,00ffhdl3: dec bx jnz dl3 dec cx jnz dl4 jmp ledflashexit: mov num,0 retledflash endp检测到开关闭合置相应灯光变换。3.6延时程序片段 mov cx,04c9h dl4: mov bx,04c9hdl3: dec bx jnz dl3 dec cx jnz dl4通过双层循环从而实现软件延时,延时计算公式为(cx)*(bx)/f,f为cpu的频率,cpu频率为1500khz,可以计算得到程序大致延时为1s。3.7灯光变换控制here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口a的地址 out dx,al ;输出加电数据到端口a inc num ;改变数字变量的值 cmp num,09h je exit通过指针移动,逐个选中相应的数据置相应的灯光变换,共八种即一轮led显示完成。4程序调试说明(1)、内存空间分配,汇编语言的重要特点之一是能够直接利用机器指令或者伪指令为数据或者代码程序分配内存空间,86系列(如8086微处理器)的存储器结构是分段的,有代码段,数据段,堆栈段或附加段,在程序设计时要充分考虑分段结构,要执行的程序段应设在当前段(活动段)中;分配内存空间:直接在proteus里面将8086cpu的internal memory size设置成一个足够用的空间大小,如0x1000,默认的空间大小是0x00000,如不改则仿真不成功。程序在运行时所需要的工作单元应尽可能的设在cpu寄存器中,这样存取速度快,而且操作方便;在此系统源程序中都采用8086cpu的全部通用寄存器:累加器ax,基数寄存器bx,基数寄存器cx,数据寄存器dx;和堆栈指针寄存器si。(2)、unknow 1-byte opcode at b900:7056! 61spiceerror-too many iterations without convergence在仿真过程中,出现以上两行的错误,太多的迭代没有收敛性,和某个汇编语言在编码过程中的地址不正确,经过排查程序去除无用代码,proteus不再报错。(3)、8255a隐藏引脚问题,需要设置芯片hidden pins里的gnd改为vss,vcc改为vdd。(4)、程序一开始是将延时环节作为一个独立子程序,运行过程中由于部分情况下不满足题设,故将延时子程序改为程序段落写到检测按键的子程序中问题得以解决。5结果记录及分析第一种灯光变换效果:l1l2l3l4l5l6l7l8,如图6所示。图6 led第一种变换效果第二种灯光变换效果:l8l7l6l5l4l3l2l1;第一种变换效果反向即为第二种效果。第三种灯光变换效果:l1l8l2l7l3l6l4l5l3l6l2l7l1l8,如图7所示。图7 led第三种变换效果心得体会通过本次课程设计,学到了很多使用的东西,使我受益匪浅,将课堂上所学的知识运用到实际,体会到了理论与实际联系的重要性,同时进一步学习了proteus这款软件。第一,在做这次课程设计的一开始可以说是难度重重,接口电路设计出了问题,一开始由于电路没有加入锁存器,导致地址和数据冲突,从而电路不能正常工作,最后在电路里加入了锁存器74ls273和译码器74ls154后解决了地址和数据冲突的问题。第二,由于对软件proteus运用不是很熟练,导致一些问题,比如说分配内存空间:直接在proteus里面将8086cpu的internal memory size设置成一个足够用的空间大小,如0x1000,默认的空间大小是0x00000,如不改则仿真不能成功。还有在运行期间proteus仿真报错,由于不太懂报错信息就一步加大了设计的难度,还有一些其他小细节上的问题,可以说是细节决定成败。第三,由于汇编语言运用的不太熟练,对程序反复进行修改,发现汇编语言由于语句在程序中放置的位置不同也会是不同的效果,对汇编语言有了进一步的认识。综上所述,这次微机原理与接口技术的课程设计让我学到了很多东西,不是课堂上能够学到的东西,通过仿真可以实实在在的看到成果,从而提高了对电子设计的兴趣,我想这是一个很好的锻炼机会,通过这样的锻炼不仅巩固了课堂上学习的相关知识,而且学到了一些课外知识,比如说在网络上怎样去搜索你想要的信息等等,这些东西将使我终身获益。参考文献1 彭虎等编著微机原理与接口技术(第二版)北京:电子工业出版社,2008 2 顾晖等编著微机原理与接口技术基于8086和proteus仿真北京:电子工业出版社,2011 3 沈美明,温东禅ibm-pc汇编语句程序设计(第2版)北京:清华大学出版社,2001 4 任向明,卢惠林汇编语言程序设计实用教程北京:清华大学出版社,2009 5 马力妮80x86汇编语言程序设计北京:机械工业出版社,200420附 录程序清单sseg segment dw 200 dup (?)sseg endsdseg segmentnum dw 0 ;初始化数字变量为0;3种不同的灯光变幻组合 data1 db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh data2 db 7fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh,0feh data3 db 7eh,0bdh,0dbh,0e7h,0e7h,0dbh,0bdh,7eh dseg endscseg segment para public code assume ss:sseg,cs:cseg,ds:dseg start: mov ax,dseg mov ds,ax mov dx,0206h ;取8255的控制端口的地址 mov al,82h ;初始化8255的a口为输出模式,b口为输入模式 out dx,al exut: mov num,0h mov dx,0200h ;取8255的端口a的地址 mov al,0ffh ;使8255的pa0-pa7全为1 out dx,al ;使所有的灯led全灭 begin: call ledflash ;调用灯光变幻过程 jmp exut ledflash proc ;检测开关闭合,以便确定哪种闪烁方式 mov dx,0202h ;取8255的端口b的地址 in al,dx ;检测b口输入信号choice1: cmp al,0feh jne choice2 mov si,offset data1 ;置第一种灯光变幻组合 jmp herechoice2: cmp al,0fdh jne choice3 mov si,offset data2 ;置第二种灯光变幻组合 jmp herechoice3: cmp al,0fbh jne choice4 mov si,offset data3 ;置第三种灯光变幻组合 jmp here choice4: ;每盏灯亮完检测开关,如果停止开关没有按下跳到choice5,如果停止开关按下灯全灭 cmp al,0f7h jne choice5 jmp exutchoice5: ;检测num是否为0,若为0扫描开关,若不为0继续执行 cmp num,0h jne here jmp ledflash here: mov bx,num mov al,si+bx mov dx,0200h ;取8255的端口a的地址 out dx,al ;输出加电数据到端口a inc num ;改变数字变量的值 cmp num,09h je exit mov cx,04c9h dl4: mov bx,04c9hdl3: dec bx jnz dl3 dec cx jnz dl4 jmp ledflashexit: mov num,0 retledflash endpcseg ends end start本科生课程设计成绩评定表姓 名性 别男
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专利代理人资格考试前瞻性题目与答案
- 图书管理员考试相关法律法规试题及答案
- 工程概预算试题及答案
- 了解考试大纲的2024年专利代理人试题及答案
- 消防安全试题培训及答案
- 母猪健康评价标准与实践应用试题及答案
- 2025年公共卫生医师考试的重点领域试题及答案
- 2024年文化产业管理证书预测题
- 专利标的与权利范围的确定方法试题及答案
- 2024年卫生管理证书申请流程试题及答案
- PDCA降低I类切口感染发生率
- 幼儿园《开关门要小心》
- 《运营管理》第2版题库与参考答案
- 基于PLC的自动配料系统毕业设计论文
- 企业事业单位突发环境事件应急预案备案表范本
- 烟花爆竹工程设计安全规范
- 回旋加速器的五个有关问题
- 四川省中学生学籍卡片
- 夕阳箫鼓-钢琴谱(共11页)
- 地面沉降监测技术要求
- 基本建设项目建设成本管理规定解读
评论
0/150
提交评论