文档详情

银行卡存取操作

lis****211
实名认证
店铺
DOCX
192.95KB
约23页
文档ID:177534073
银行卡存取操作_第1页
1/23

沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:模拟银行卡存取操作院(系):计算机学院专业:计算机科学与技术班级:7401103学号:200704011069姓名:桂 明指导教师:毛艳娥完成日期:2010年7月16日目录第 1 章 总体设计方案 11.1 设计需求 11.2 设计原理 11.2.1 提出方案 11.2.2 方案论证 21.3 设计环境 3第 2 章 详细设计方案 42.1 硬件设计 42.2 软件设计 42.2.1 饮料装配线主程序 52.2.2 软件延时程序 62.2.3 满瓶数量改变程序 72.2.3 空瓶数量改变程序 72.2.4 装配过程显示程序 8第 3 章 结果测试及分析 93.1 结果测试 93.2 结果分析 10参考文献 11附 录(程序清单) 12第 1 章 总体设计方案1.1 设计需求设计一个银行卡存取操作具体内容如下:1. 银行卡卡号为 8 位,设置取款密码(6位),当输入的代码同设置的相应 卡号的密码相同时,给出正确状态,否则给出报警信号,重新输入密码;2. 选择查询操作可以查询余额,数码管上显示现有金额;选择存、取操作 时(初始状态显示当余额),输入要存或取的金额,操作结束,显示操作 后现有的金额;3. 限制每次取款的上限和每天总共可取得金额,若违规则给出相应的提示。

1.2 设计原理应用可编程键盘/显示接口芯片8279与可编程并行接口芯片8255A通过使 用 8279,在数码管上显示预设置的容量,在键盘上输入要求的饮料瓶数量,当点 击完后,程序开始运行1L的和500ml的容量瓶可以输入不同的装瓶数量在装 瓶的过程中,数码管显示位开始从1加到8,同步进行的是通过使用8255A的8 个发光二极管依次变亮,当装满后,发光二极管全亮,数码管右侧的圆点变亮, 相应调用延时程序容量分别为1L和500ml的饮料瓶顺序进行装瓶,首先进行是1L的,全部装 完后,在从键盘上输入500ml的装瓶数量,最后显示的是空瓶和满瓶的数量再将数码管及发光二极管初始化,循环进行装配工作,最终达到工作需求1.2.1 提出方案可编程键盘/显示接口芯片8279控制数码管的亮灭,数码管的低四位用于表 示容量为1L的装配过程,低四位中的最高位数码管代表容量,标示为1;第二位 代表容量1L的空瓶数量,初始化标示为5瓶;第三位代表满瓶的数量,初始化 为 0 瓶,需要操作者在键盘上输入要求输入的装瓶数量,此时还没开始进行装配最低位代表的是每一瓶饮料的装瓶过程,首先初始化为灭,当开始装配时, 数码管从1开始依次变化到8。

通过使用可编程并行接口芯片8255A的PC 口输 出,接到发光二极管上在每次变化的过程中,都需要发光二极管依次置亮当 装满一瓶时,进行提示装满,效果是发光二极管都置亮,数码管演示装瓶过程位 的右侧圆点亮,证明装满一瓶;在装完一瓶后,要将发光二极管都置灭,同时数码管装瓶过程位右侧的圆点 置灭,这是为下一瓶饮料的装配做准备每次装完一瓶,满瓶数量要进行加 1 操作,空瓶数量要减 1 操作,同时检查 是否装完,没装完则继续进行装配过程,装完则停止1.2.2 方案论证程序并结合芯片进行论证程序开始部分,首先是对芯片的初始化,输入命令控制字简单介绍可编程 键盘/显示接口芯片8279;8279是可编程键盘/显示接口芯片它的功能主要包括 键盘输入和显示控制它的功能主要包括键盘输入和显示控制部分,其中键盘部 分提供扫描功能显示部分则是提供扫描方式的显示接口,可与八段数码管连接 构成初始化代码:其中 Z8279 是控制端口MOV DX,Z8279MOV AL,00 ;左边输入,八位显示外部译码八位显示OUT DX,ALMOV AL,38H ;扫描频率OUT DX,AL这里简单介绍可编程并行接口芯片8255A: 8255A是可编程并行输入输出接口芯片,具有三个 8 位并行端口,用于输出给定信号。

初始化命令字:MOV DX,Z8255MOV AL,80HOUT DX,AL ;初始化 8255其中Z8255是控制端口,80H是命令字,PA、PB、PC 口都是输出,这里我 们只用PC 口作为输出,连接8个发光二极管然后调用数码管的子程序BEGIN_,初始化容量为1L的空瓶数量为5瓶, 满瓶数量为0瓶(需要键盘动态输入),容量标示为1L初始化容量为500ml的 空瓶数量为5瓶,满瓶数量为0瓶(需要键盘动态输入),容量标示为500ml用 寄存器AH来存储当前的满瓶数量,寄存器CX来存储当前的空瓶数量在装配过程中,装配显示位数码管从1 变化到8,相应的发光二极管从第一 个依次单独亮到第 8 个,但装满一瓶后,发光二极管全亮,数码管装配位右侧的 圆点置亮,证明已经装完一瓶此时改变空瓶和满瓶的数量,满瓶数量加1,调用ADD_子程序;空瓶数量 减1,调用DEC—子程序判断装配是否完成,如果没有完成,则继续装配,否则 装配结束在数码管和发光二极管显示时,都需要调用延时子程序 DELAY 经过认真仔细论证,证明所提出的方案切实可行1.3 设计环境硬件环境:AEDK实验箱软件环境:LCT88EA应用软件、Win2000、PC机第 2 章 详细设计方案2.1 硬件设计本设计中用到的硬件有AEDK实验箱,8279芯片、8255A芯片、小键盘、 8 个八段数码管和 8 个发光二极管。

8279芯片的片选CS79连至译码处210-217H8279芯片的控制端口接到译码处212H处,数据端口接到译码处210H8255A芯片的片选CS55连至译码处200-207H,控制端口接到译码处203H, 因为这里没有用到PA 口和PB 口,所以不需要连接8255A的PC 口接到译码处 202H,用于连接发光二极管2.2软件设计首先对芯片进行初始化,对8279和8255A的命令字和端口译码处进行初始化然后将8279的FIFO寄存器置零,判断是否按键,此时键入的是满瓶的数量,则程序开始运行2.2.1 饮料装配线主程序主程序首先对 8279 和 8255A 进行初始化调用数码管初始化子程序BEGIN_,置空FIFO寄存器循环检测键盘是否有键入,空则等待,表示装配工作未启动键入容量为1L的装瓶数量,工作开始开始装瓶,调用装配过程子程 序LED8255,装满一瓶后,满瓶位加1,调用子程序ADD_,空瓶位减1,调用子程 序DEC_,然后判断装配工作是否结束,没有则继续装配,否则工作结束在装配过程中,数码管和发光二极管要相应的变亮,此时要调用延时子程序DELAY,使能更好演示装瓶过程当1L的装完后,在键入容量为500ml的装瓶数量,同上述效果运行程序。

饮料装配线主程序如图 2.2:图 2.2 饮料装配线主程序流程图2.2.2 软件延时程序用寄存器CX来存储用来循环的值(十六进制)OFFFFH,因为在此之前, 在寄存器 CX 中已经送入了用来存储当前饮料瓶的空瓶数量,所以需要对此加以 存储保护,即将寄存器CX压入栈中执行DEC CX语句,然后判断CX是否为0,如果不为0,则继续减,直 到为 0因为在运行的过程中发现延时的时间比较短,不方便检查,达不到好的 效果,所以在执行上述的语句后,接着执行几条NOP空指令语句,起到了延时的 作用完成延时以后,要把栈中存储的当前空瓶数量值释放出来,执行POP CX 语句软件延时程序流程图如图 2.3 所示N◎小的值为前是否送入寄存器CX循环的值OFFFFH将当前寄存器CXK入栈中将栈川存储的CX的值释放CX减1操作执行空指令图 2.3 软件延时程序流程图2.2.3 满瓶数量改变程序当装完一瓶饮料后,要将当前满瓶的数量加1满瓶数量改变程序流程图如图 2.4 所示图 2.4 满瓶数量改变程序流程图2.2.3 空瓶数量改变程序当装完一瓶饮料后,要将当前空瓶的数量减 1空瓶数量改变程序流程图如图 2.5 所示。

图 2.5 空瓶数量改变程序流程图2.2.4装配过程显示程序在装瓶的过程中,数码管从 1 依次显示到 8,相依的发光二极管在数码管 每变化一次后置亮,当变化完后,发光二极管全部置亮,数码管右侧的圆点置亮, 证明已经装完一瓶显示程序如下:LED8255:;装瓶过程MOVMOV LEAXLATOUTMOVMOVOUTDX,D8279AL,1BX,LEDDX,ALDX,C8255AL,0FEHDX,AL以上只是演示数码管显示 1,发光二极管第一个灯亮CALL DELAY当到 8时,发光二极管全为亮,程序如下:MOV MOV OUT CALL RETDX,C8255AL,00HDX,ALDELAY第3 章 结果测试及分析3.1 结果测试程序编译连接完成之后,对课程设计要求的各项内容进行测试,按饮料瓶装配线连线图连接好电路以后,把程序下载到机器中运行测试过程如下:操作显示装瓶过程备注数码管初始化标示容量和满瓶数量按键输入数码管显示输入的值此值标示要求装瓶数量数码管显示“1”发光二极 管第二个灯亮数码管显示“2”发光二极 管第三个灯亮数码管显示“3”发光二极 管第四个灯亮数码管显示“4”发光二极管第五个灯亮数码管显示“5”发光二极 管第六个灯亮数码管显示“6”发光二极 管第七个灯亮数码管显示“7”发光二极 管第八个灯亮数码管显示“8”发光二极 管第八个灯亮发光二极管8个灯全亮数码管右侧圆点置亮此时装完一瓶数码管满瓶位显示加1满瓶数量加1数码管空瓶位显示减1空瓶数量减1发光二极管全都置灭数码管当前亮的圆点置灭进行下一瓶的装配3.2 结果分析按照课程设计的要求,装配线的各项功能基本得以实现。

本设计中软件设计起到了主导作用,逻辑的清晰与否决定了设计的成败硬件设计部分,8279A可编 程键盘/显示器接口芯片尤为重要参考文献[1] 龚尚福•微机原理与接口技术[M].西安:西安电子科技大学出版社,2003[2] 王忠民•微型计算机原理[M].西安:西安电子科技大学出版社,2003⑶ 沈美明,温冬婵.IBM-PC汇编语言程序设计[M].北京:清华大学出版社,2001[4]郑初华•汇编语言、微机原理及接口技术[M].北京:电子工业出版社,2006⑸ 陆鑫.微机原理及接口技术[M].北京:机械工业出版社,2005⑹ 王晓军等.微机原理与接口技术[M].北京:北京邮电大学出版社,2001附 录(程序清单)Z8279 EQU 212HD8279 EQU 210HZ8255 EQU 203HC8255 EQU 202HCODE SEGMENT;8279 控制端口 ;8279 数据端口;8255 控制端口;8255 C 数据端口ASSUME CS:CODE,DS:CODESTART:MOVAX,CSMOVDS,AXMOVDX,Z8279MOVAL,00h;左边输入,八位显示外部译码八位显示OUTDX,ALMOVAL,38H;扫描频率OUTDX,ALMOVDX,Z8255MOVAL,80HOUTDX,AL;初始化 8255CALLBEGIN_;调用初始化子程序;以上为初始化 550,150NOPMOVDX,Z8279;置空 FIFO 寄存器MOVAL,0C2HOUTDX,ALWAIIT:NOPMOVAX,0INAL,DXMOVBL,ALANDAL,80HCMPAL,80HJEWAIIT;FIFO 正在清除期间则跳转等待MOVAL,BLANDAL,0FHCMPAL,00HJEWAIIT;无键按下则等待MOVDX,Z8279MOVAL,82H;置读FIFO RAM命令字OUTDX,ALMOVDX,D8279;读入FIFO RAM内容IN AL,DX MOV CL,AL CMP CL,0JZ T1 LEA BX,LED XLATOUT DX,AL MOV AH,0MOV DX,Z8279MOV AL,0C2H OUT DX,ALT2:NOPMOV DX,Z8279MOV AL,80H OUT DX,AL CALL LED8255MOV DX,D8279MOV AL,80H OUT DX,AL CALL DELAYMOV DX,C8255MOV AL,0FFHOUT DX,ALMOV DX,D8279 MOV AL,00H OUT DX,ALMOV DX,Z8279MOV AL,81HOUT DX,ALCALL ADD_MOV DX,Z8279MOV AL,82HOUT DX,ALCALL DEC_ CALL DELAY MOV AL,CLCMP AL,0JNZ T2;调入发光二极管显示过程;将圆点变亮;发光二极管重新置灭;圆点灭;调用子程序,改变满瓶位;调用子程序,改变空瓶位;判断是否装完NOPMOVDX,Z8279MOVAL,0C2HOUTDX,ALWAIITT:NOPMOVAX,0INAL,DXMOVBL,ALANDAL,80HCMPAL,80HJEWAIITTMOVAL,BLANDAL,0FHCMPAL,00HJEWAIITTMOVDX,Z8279MOVAL,86HOUTDX,ALMOVDX,D8279INAL,DXMOVCL,ALCMPCL,0JZT4LEABX,LEDXLATOUTDX,ALMOVAH,0MOVDX,Z8279MOVAL,0C2HOUTDX,ALT1:;置空 FIFO 寄存器;FIFO 正在清除期间则跳转等待;无键按下则等待;置读FIFO RAM命令字;读入FIFO RAM内容T3:NOPMOV DX,Z8279MOV AL,84H OUT DX,AL CALL LED8255MOV DX,D8279MOV AL,80H OUT DX,AL;圆点亮CALLMOV MOVOUTDELAYDX,C8255AL,0FFHDX,AL;重新将发光二极管置灭MOVDX,D8279MOVAL,00HOUTDX,AL;圆点灭,等待下一瓶的装入MOVDX,Z8279MOVAL,85HOUTDX,AL;写入控制位,满瓶加1CALLADD_MOVDX,Z8279;写入控制位,空瓶减 1MOVAL,86HOUTDX,ALCALLDEC_CALLDELAYMOVAL,CLCMPAL,0;判断是否装完JNZT3T4:CALL MOV MOV OUT MOV MOV OUT MOV MOV OUT MOV MOV OUTDELAY DX,Z8279 AL,81H DX,AL DX,D8279AL,3FHDX,ALDX,Z8279AL,82HDX,AL DX,D8279 AL,00H DX,ALMOV DX,Z8279MOV AL,85HOUT DX,ALMOV DX,D8279MOV AL,3FH OUT DX,ALMOV DX,Z8279MOV AL,86HOUTMOV MOV OUT MOV MOV OUT JMP HLTBEGIN_:MOV MOV OUT MOV MOV OUT MOV MOV OUT MOV MOV OUT MOV MOV OUTMOV MOV OUT MOV MOV OUT MOV MOV OUT RETADD_:INC MOV LEA XLAT MOVDX,ALDX,D8279AL,00HDX,ALDX,Z8279AL,0C2HDX,AL WAIITDX,D8279AL,00HDX,AL ;显示1L装瓶位,初始化为灭DX,D8279AL,3FHDX,ALDX,D8279AL,00HDX,ALDX,D8279AL,06HDX,ALDX,D8279AL,00HDX,AL ;显示 500ml 装瓶位,初始化为灭DX,D8279AL,3FHDX,AL;500ml满瓶位,初始化为0个DX,D8279AL,00HDX,AL;500ml空瓶数量位,初始化为5个DX,D8279AL,6DHDX,AL; 容量标示 500ml;满瓶加 1 子程序AHAL,AHDX,D8279BX,LEDOUT DX,AL;空瓶减 1子程序RETDEC_:DEC CL MOV AL,CL LEA BX,LED XLATMOV DX,D8279 OUT DX,AL RETLED8255:MOVMOVLEAXLATOUTMOVMOVOUTCALLDX,D8279AL,1BX,LEDDX,ALDX,C8255AL,0FEHDX,ALDELAY;装瓶过程MOV DX,D8279MOV AL,2LEA BX,LED XLATOUT DX,ALMOV DX,C8255 MOV AL,0FDH OUT DX,AL CALL DELAYMOV DX,D8279MOV AL,3LEA BX,LED XLATOUT DX,ALMOV DX,C8255 MOV AL,0FBH OUT DX,AL CALL DELAYMOV DX,D8279MOV LEA XLAT OUT MOV MOV OUT CALLAL,4BX,LEDDX,ALDX,C8255AL,0F7HDX,AL DELAYMOV MOV LEA XLAT OUT MOV MOV OUTCALLDX,D8279AL,5BX,LEDDX,ALDX,C8255AL,0EFHDX,ALDELAYMOV MOV LEA XLAT OUT MOV MOV OUT CALLDX,D8279AL,6BX,LEDDX,ALDX,C8255AL,0DFHDX,ALDELAYMOV MOV LEA XLAT OUT MOV MOV OUT CALLDX,D8279AL,7BX,LEDDX,ALDX,C8255AL,0BFHDX,ALDELAYMOV MOV LEA XLAT OUTDX,D8279AL,8BX,LEDDX,ALMOV DX,C8255MOV AL,7FHOUT DX,ALCALL DELAYMOV DX,C8255MOV AL,00HOUT DX,ALCALL DELAYRETDELAY: ;软件延时程序PUSH CXMOV CX,0FFFFHBACK2:DEC CXJNZ BACK2BACK1:NOPNOPNOPNOPNOPNOPNOPNOPLOOP BACK1POP CXRETLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39HDB 5EH,79H,71HCODE ENDSEND START课程设计总结:通过本次的课程设计使我学到很多的知识与道理。

本次课程设计是微机 综合课程设计,所用到的是汇编语言,在开始之初,由于所学知识太少,对 可设不知道如何下手,但是通过向老师、同学虚心请教,慢慢的去学习,去 查找参考资料最终开始独立的去学习在这段时间里,使我深切体会到,只有靠自己的努力,独立的完成所需 要完成的学习任务才是最为重要的要学会独立的去学习以前没有学到的知 识,就是要培养那种自学的能力对于课程设计,以及以后的毕业设计,首先不要害怕他,要对自己充满 信心,要有去完成它的毅力,而不是盲目的下载网上的资源,那样对自己没 有什么提高,虽然自己写的不怎么好,但是那是自己努力完成的身为即将跨入大学四年级的我们,更应该感受到学习与工作的压力,但 最为重要的是我们的动手能力与自学能力,我们从现在开始必须注重自己的 这些方面,不断努力,不断提咼,才是最为重要的指导教师评语:指导教师(签字): 年 月 日课程设计成绩。

下载提示
相关文档
正为您匹配相似的精品文档