




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机技术课程设计指导教师: 班 级: 计科11205班 姓 名: 学 号: 班内序号: 课设日期:2014年12月22日2015年1月4日 课设题目: 电梯控制系统电路及程序设计一、课设目的1通过本设计,使学生综合运用汇编语言与微型计算机技术、数字电子技术等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。2掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、六缓冲器/驱动器/反相器74LS06、点阵显示器件和七段数码管的使用。3学会用汇编语言编写一个较完整的实用程序。4掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。二、课设内容1电梯程序启动后的初始状态点阵显示器件可以显示的三种状态分别为:“ “”、“-”。含义分别为电梯“向上运行中”、“ 向下运行中”、“停止,乘客上下”。这三种状态的点阵数据需要自己生成或通过点阵软件生成。其初始状态为“-”。当电梯在某层停止时,黄色发光二极管每秒闪烁一次,15秒用于乘客上下(这个时间在调试时为了节省时间可以减少为5秒。也可用“”控制乘客上下时间小于15秒时关门启动,用“”控制乘客上下时间大于15秒时开门等待,选作);15秒后黄色发光二极管灭,触发绿色发光二极管每秒闪烁一次,表示电梯正在运行中;相邻的两层之间运行3秒,绿色发光二极管灭,触发七段数码管显示的楼层数加1或减1。两个发光二极管的初始状态都为“灭”,七段数码管可以显示的楼层为“09”,其初始状态为“0”,表示地下室或地下停车场。2电梯程序运行状态电梯程序启动后,接收来自键盘的数据进入运行状态。来自键盘的合法数据只有“09”、“”、“” 、“”、“”、“空格”和Esc,程序应该检查来自键盘数据的合法性。除Esc是结束程序运行外,来自键盘的数据应为“数字+方向+数字”。来自键盘的数据可以是连续的,也可以是间断的。输入的数据要尽可能测试到各种情况,至少完成电梯一次完整的升降,如“35 57 57 53 13 94 96 Esc”的一种可能的处理过程为035796401390。另一种可能的处理过程为013579640。3结束电梯程序运行状态按下Esc键结束程序。点阵显示器件显示“-”, 两个发光二极管的状态都为“灭”,七段数码管显示的楼层为“0”。三、设计所需器材及工具1一块实验面包板(内含时钟信号1MHz或2MHz)。 2可编程芯片8253、8255、74LS245、74LS06各一片,74LS138两片;发光二极管2个(绿色、黄色各1个);排电阻1个;七段数码管1个;200欧母电阻16个;88点阵显示器件一片。3导线若干。4示波器、万用表、常用工具等共用(从实验室现借现还)。四、设计思路1利用一个74LS138设计地址译码电路,8255端口地址:300H303H,8253端口地址:304H307H。274LS245用于总线和8253、8255之间的双向传输和隔离。3利用面包板上时钟(1MHz或2MHz)和8253设计一个1秒定时电路,将定时信号(1秒方波)接到总线的IRQ2或IRQ10送给8259。48255的PA口控制点阵显示器件行变化,200欧母电阻接在PA口和点阵显示器件之间。PB口通过另一个74LS138控制点阵显示器件列变化,PB口通过还需通过74LS06控制发光二极管的的变化。5PC口控制七段数码管变化,200欧母电阻接在PC口和七段数码管之间。6每个74LS06中包含了6个非门,它的输入来自PB口的某一位,输出接到发光二极管的负极。7每个发光二极管的正极接排电阻的从2到9的一个引脚,排电阻的1脚接VCC(+5V)。五、设计步骤1设计电路原理图,用protues画出电路图如下2用所给器件布线,按照protues里面的仿真图搭建好硬件电路。3选用汇编语言编写电梯运行的主程序以及各芯片调试子程序。4调试并排除括硬件电路设计错误和软件设计错误,使系统达到设计要求。六、设计原理图七、芯片介绍(1) 74LS245数据总线缓冲器 74LS245功能表(2)74LS06(3)74LS138(4)8253定时计数器 (5)8255A (6)七段数码管 (7)发光二极管 (8)排电阻(9)点阵显示器788BS八、电梯流程图初始化等待确认本层与目标层 目标层与本层是否同层 是否目标层楼层检测电梯运行电梯选向停止九、程序设计SSEG SEGMENT STACKDW 200 DUP(?)SSEG ENDS DATA SEGMENT MESG2 DB Please input the direction and the number of the elevator ,0ah,0dh DB as dir (UPorDOWN) + num (0-9),0ah,0dh DB Exit with Esc,0ah,0dh,$NOW_FLOOR DB(1);电梯现在楼层NEXT_FLOOR DB(1);电梯目标楼层STATE DB(0);电梯运行的状态 0表示暂停 1表示向上 2表示向下TIMECOUNTDB(0);时钟计数SIGNDB(1)UP DB 18H,0CH,06H,0FFH,0FFH,06H,0CH,18HDOWN DB 18H,30H,60H,0FFH,0FFH,60H,30H,18HSTOP DB 00H,18H,18H,18H,18H,18H,18H,00HSEVLED DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10HSIGN_BUF DB(0)UP_BUF DB 10 DUP(0)DOWN_BUF DB 10 DUP(0)MESG1 DB THE NUMBER IS ERROR,0DH,0AH,$INTOA_OFF DW(?)INTOA_SEG DW(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV DX,DATAMOV DS,DXMOV DX,SSEGMOV SS,DX MOV AH,09H MOV DX,OFFSET MESG2 INT 21H ;显示提示信息 ;初始化8255MOV DX,303HMOV AL,10000000BOUT DX,ALMOV DX,300HMOV AL,00HOUT DX,ALMOV DX,301HMOV AL,00HOUT DX,ALMOV DX,302HMOV AL,0FFHOUT DX,AL;中断的设置MOV AX,3572HINT 21HMOV INTOA_OFF,BXMOV BX,ESMOV INTOA_SEG,BXCLIMOV AX,2572HMOV DX,SEG LEDLIGHTPUSH DSMOV DS,DXMOV DX,OFFSET LEDLIGHTINT 21HPOP DSSTI;打开IRQ10和IRQ2IN AL,0A1HAND AL,0FBHOUT 0A1H,ALIN AL,21HAND AL,0FBHOUT 21H,AL;8253初始化产生1S的计时MOV DX,307HMOV AL,01110110BOUT DX,ALMOV DX,305HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALMOV DX,307HMOV AL,10110110BOUT DX,ALMOV DX,306HMOV AL,0E8HOUT DX,ALMOV AL,03HOUT DX,ALINPUT:CALL FAR PTR MATRIX_SHOWCALL FAR PTR DIGITRON_SHOW MOV AH,0BHINT 21HCMP AL,00HJZ INPUTMOV AH,00HINT 16HCMP AL,0DHJZ NEXT0;若没有输入为回车,进入运行状态CMP AL,1BHJNZ NEXT;若输入ESC则退出程序JMP EXITNEXT:CMP AH,48HJZ M_UPCMP AH,50HJZ M_DOWNJMP INPUTERRORM_UP:MOV AH,01HINT 21HCMP AL,0JB INPUTERRORCMP AL,9JA INPUTERRORSUB AL,30HMOV AH,00HMOV SI,AXMOV UP_BUFSI,01HJMP INPUTM_DOWN:MOV AH,01HINT 21HCMP AL,0JB INPUTERRORCMP AL,9JA INPUTERRORSUB AL,30HMOV AH,00HMOV SI,AXMOV AX,0009HSUB AX,SIMOV SI,AXMOV DOWN_BUFSI,01HJMP INPUTNEXT0:CALL FAR PTR MATRIX_SHOWCALL FAR PTR DIGITRON_SHOWCMP SIGN_BUF,14HJZ REPEATCMP TIMECOUNT,02HJBE NEXT0MOV TIMECOUNT,00HCALL FAR PTR RUNJMP NEXT0REPEAT:MOV SIGN_BUF,00HMOV AL,NEXT_FLOORMOV NOW_FLOOR,ALMOV STATE,00HJMP INPUTINPUTERROR:MOV AH,09HMOV DX,OFFSET MESG1INT 21HJMP INPUTEXIT:MOV AX,2572HMOV DX,INTOA_SEGPUSH DSMOV DS,DXMOV DX,INTOA_OFFINT 21HPOP DSIN AL,0A1HOR AL,04HOUT 0A1H,ALIN AL,21HOR AL,04HOUT 21H,ALMOV AH,4CHINT 21H;电梯状态与运行程序RUN PROC FARPUSH AXPUSH BXPUSH SIMOV AL,NEXT_FLOORCMP AL,NOW_FLOORJA RUPCMP AL,NOW_FLOORJB RDOWNMOV AL,SIGNMOV STATE,ALMOV AH,00HMOV BX,OFFSET UP_BUFR0:MOV AL,SIGN_BUFMOV SI,AXCMP BYTE PTRBX+SI,01HJZ R1INC SIGN_BUFCMP SIGN_BUF,14HJNZ R0JMP RBACKR1:MOV BYTE PTRBX+SI,00HCMP SIGN_BUF,09HJA R2MOV AL,SIGN_BUFMOV NEXT_FLOOR,ALJMP RBACKR2:MOV STATE,02HMOV AL,SIGN_BUFSUB AL,0AHMOV AH,09HSUB AH,ALMOV NEXT_FLOOR,AHJMP RBACKRUP:ADD NOW_FLOOR,01HMOV STATE,01HMOV SIGN,01HMOV AL,NOW_FLOORCMP AL,NEXT_FLOORJZ R3JMP RBACKRDOWN:SUB NOW_FLOOR,01HMOV STATE,02HMOV SIGN,02HMOV AL,NOW_FLOORCMP AL,NEXT_FLOORJZ R3JMP RBACKR3:MOV STATE,00HJMP RBACKRBACK:POP SIPOP BXPOP AXRETRUN ENDP;点阵显示程序MATRIX_SHOW PROC FARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SICMP STATE,00HJZ MSTOPCMP STATE,02HJZ MDOWNMOV BX,OFFSET UPMOV CL,00001000BJMP MRUNMSTOP:MOV BX,OFFSET STOPMOV CL,00010000BJMP MRUNMDOWN:MOV BX,OFFSET DOWNMOV CL,00001000BMRUN:MOV SI,0000HMLP:MOV DX,300HMOV AL,BX+SIOUT DX,ALMOV DX,301HMOV AL,CLOUT DX,ALINC SIINC CLCALL FAR PTR DELAYCMP SI,0008HJNZ MLPPOP SIPOP DXPOP CXPOP BXPOP AXRETMATRIX_SHOW ENDP;7数码管显示程序DIGITRON_SHOW PROC FARPUSH AXPUSH DXPUSH SIMOV DX,302HMOV AH,0000HMOV AL,NOW_FLOORMOV SI,AXMOV AL,SEVLEDSIOUT DX,ALPOP SIPOP DXPOP AXRET ENDP;延迟程序DELAY PROC FARPUSH CXPUSH BXMOV BX,0FFHDLP2:MOV CX,0FFFHDLP1:LOOP DLP1DEC BXJNZ DLP2POP BXPOP CXRETDELAY ENDP;中断服务程序LEDLIGHT PROC FARPUSH AXPUSH DXCLIADD TIMECOUNT,01HIBACK:;发出EOI命令MOV AL,62HMOV DX,0A0HOUT DX,ALOUT 020H,ALSTIPOP DXPOP AXIRETLEDLIGHT ENDPCODE ENDSEND START十 课设截图十一 课设总结首先刚刚拿到这个课设题目时我一下子懵了,不知道程序怎么写。我的小伙伴桂蓉也是,我们两就在网上搜集了一些资料,然后相互讨论。我主要负责写程序,她主要负责连线。当我们拿到实验箱之后我们就开始积极分工互助合作。连线比较麻烦特别是要仔细,不能出错。很快我们摸清了连线的套路,实验箱上的带有绿线的一竖条是联通的,接地。带有红线的一条是联通,接VCC(+5v)。每一个块的一横条是联通的,芯片跨越在两个横块之间。我们开始布局芯片的位置,布局完了就开始连线。我们两一起对照着每个芯片的引脚图开始连线,经过两个多小时的奋斗,线终于连好了。于是我们开始调试程序,当我们开始测8255时,没有任何反应,于是我们又仔细检查连线,果然reset接口没有接。当我们接好之后再次测量终于成功接好了。关于硬件调试我们弄了好几天,我的小伙伴桂蓉主要负责连线。我主要写程序和调试,说到写程序,开始的时候我纠结了好久,不知道到底用c语言编还是用汇编语言编,毕竟c语言我熟一些,汇编只是刚刚接触。但是毕竟我们学微机原理真门课主要讲的还是汇编,所以我想锻炼一下自己,果断用汇编语言写。当然开始存在很多问题,比如说不知道中断如何使用,不知道如何输出3秒和5秒的时间间隔,另外我也对汇编里面的语法不是很熟,上课老师讲的很清楚,但是现在我忘记了一些。面对如此多的问题,这时候,我翻开书本上的汇编语言程序设计那一章。我看了书上很多例子,我渐渐明白了软中断的各个用法,现在摆在我面前的是如何用这些软中断,以及8253输出的一秒中断怎么使用。大体思路我都懂,就是不知道如何调用这些中断。我又翻开中断那一章以及我们做的实验9(8259),我明白了中断的具体用法,现在我开始我的编程了!,首先有一个数据段,里面要放很多东西,定义一个变量存放当前的楼层,定义一个数组存放输入的楼层,定义一个堆栈保护现场。再我的不懈努力下,终于程序写完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂安全培训知识点
- 2025重庆巫溪县事业单位考核招聘98人备考考试题库附答案解析
- 2025四川泸州交通物流集团有限公司及下属公司招聘10人备考考试题库附答案解析
- 法务专业团队咨询方案
- 2025湖北省省直机关遴选公务员214人备考考试题库附答案解析
- 哲学博士路途
- 工厂安全培训文案课件
- 2025西安经开第九小学实习教师招聘备考考试题库附答案解析
- 2025贵州安顺市中医院引进专业技术人才备考练习试题及答案解析
- 枣庄市台儿庄区2025届公费医学毕业生定岗备考考试题库附答案解析
- 2024版2025秋贵州黔教版综合实践活动五年级上册全册教案教学设计
- 转作风重实干课件
- 村干部饮水安全培训总结课件
- 安全生产治本攻坚三年行动半年工作总结
- 单招备考科学方案
- 医美咨询培训课件
- 海船船员适任 评估规范(2024)轮机专业
- DB50-T 1463.2-2023 牛羊布鲁氏菌病防控技术规范 第2部分:人员防护
- NoSQL数据库应用与实践 课件 第1-6章 认识NoSQL - 增删改查
- 20世纪宋史研究:主要趋势、热点领域与未来展望
- 2025年度餐饮店知识产权保护与合伙人合同
评论
0/150
提交评论