加法器课程设计论文正文 - 图文
更新时间:2023-09-25 23:54:01 阅读量: 综合文库 文档下载
加法器设计1
1 设计任务描述
1.2.1 设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 1.2.2 设计的原始资料及依据
查阅可编程并行芯片8255、键盘工作原理等其他相关资料。
用简单的输入输出端口等硬件,输入数据、处理数据和输出数据。 1.2.3 设计的主要内容及要求
内容:利用微机原理实验箱,进行数据处理。
要求:1)从键盘输入两个二/四位BCD数,求其和,保存到内存。 2)用LED指示灯显示结果。 1.2.4 设计发挥
1)延时。
2)显示百位进位。、
2 设计思路1.首先定义数据段和堆栈段。
2.其次对8255进行初始化,使8255工作在方式0,即基本输入输出方式;并且设置8255的A端口和B端口为输出状态,C端口为输入状态。
3.设计键盘扫描子程序,首先键盘清零,然后根据行扫描法确定哪一按键被按下,即分别确定输入的两个二位BCD数。
4.设计延时子程序,使输入的数据及计算结果有一段停留时间。
5.设计主程序,分别调用键盘扫描子程序和延时子程序,以输入两个二位BCD加数,在CPU中计算求和,再经8255输出到LED显示器,用九盏灯显示结果,第一盏由8255的A端口高四位输出,表示十位向百位的进位,即只能进行一百以内的加法,接下来的八盏由8255的B端口输出,前四位为BCD码显示的十位,最后四位显示个位。
6.程序结束,清屏返回。 3.1 8255与键盘接口程序流程图
开始 定义数据段,堆栈段 8255初始化(8255的工作方式为0,A口和B口为输出状态,C口为输入状态,因此控制字为89H) 循环输入两个二位BCD数(调用键盘扫描子程序,采用行扫描法确定键号),消除抖动
1
加法器设计1
调用延时子程序 处理数据(两个二位BCD数相加程序),计算结果,并保存于内存 输出数据(将和输出到PB口8位及PA口高4位,并且驱动LED灯显示)
延时 清屏,返回 图(3.1)主程序
3.2 键盘扫描子程序
开始
设置8255的A端口和B端口为输
出方式,C端口为输入方式
A端口输出全为“0”,从C端口读 取列值 列线全为“1” ? Y N 保存列值,延时消抖动
列线仍有“1”? Y N 设置行扫描初值,输出到A口
修改行扫描码,转去下一行扫描
2
加法器设计1
屏蔽无关位,读入低4位列线值
列线是否有“0” N Y 从 C 口读入列值 N 键释放? Y 保存键号 清屏,返回 图(3.2)键盘扫描子程序
4 硬件接线图
XA1 XA2 系 统 XD0 总 XD7 线 IOW# IOR# IOY0 A0 PC0 A1 PC3 Y1 键数 盘码 扫显 Y4 描示 及单 X1 元 X4
PA0 D0 PA3 8255 D7 PB0 WR PB7 RD PA4 CS PA7 图(4.1)硬件接线图 DO 开 关 D7 及 LED D8 显 示 D11 单 元
设置8255的工作方式为0,即基本输入输出方式,并将键盘中的各行X1-X4分别与A口的PA0-PA3相连,A口为输出;将各列Y1-Y4分别与C口的PC0-PC3相连,C口为输入。输出结果时,由B口输出计算结果的十位和个位,并驱动LED灯显示;由A口高四位输出十位向百位的进位,并驱动LED灯显示。
3
加法器设计1
5 源程序清单及注释
DATA SEGMENT ;定义数据段 NUM DB 4 DUP(0) SUM DB 3 DUP(0) DATA ENDS
STACK SEGMENT ;定义堆栈段 DW 200 DUP(?) STACK ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK JPSMZCX PROC ;键盘扫描子程序 PUSH AX PUSH BX PUSH CX PUSH DX
MOV DX,0600H ; MOV AL,00H ; OUT DX,AL
A1: MOV DX,0604H ; IN AL,DX ; AND AL,0FH ; CMP AL,0FH ; JZ A1 ; MOV CX,2000H ;QCDD: LOOP QCDD ; IN AL,DX ; AND AL,0FH CMP AL,0FH
JZ A1 ;A2: MOV BL,4 ; MOV BH,4 ; MOV AL,0FEH ; MOV CH,0FFH ;A3: MOV DX,0600H ; OUT DX,AL ; ROL AL,1 ;
MOV AH,AL ; MOV DX,0604H ; IN AL,DX ; AND AL,0FH ; CMP AL,0FH ; JNZ A4 ; ADD CH,BH ; MOV AL,AH ; DEC BL ; JNZ A3 ; JMP A2 ; 设置8255PA端口地址 行线输出全口 设置8255PC端口地址 读入列线值 屏蔽无关位
测试列线值是否全为1
若列线值全为1,表明无键按下,等待按键设置循环次数
若有按键按下,延迟2000ms,清除抖动 再察看列线,看键是否还按着 已松开等待按键
行数送BL,即行扫描次数 列数送BH 设置行扫描初值 设置起始键号为FFH 设置8255PA端口地址 输出行扫描初值
修改扫描码为扫描下一行做准备 保持修改后的扫描码 设置8255PC端口地址 读入列值 屏蔽无关位 查列线是否全位1 有,则转去找该列线
无,修改键号指向该行末列键号 取回扫描码 行值减1
行末查完转下一行 重新开始扫描键盘
4
加法器设计1
A4: INC CH ;键号加一,指向本行首列键号 RCR AL,1 ;右移一位 JC A4
MOV [SI],CH ;键号送入[SI]中 INC SI POP DX POP CX POP BX POP AX RET JPSMZCX ENDP
YSZCX PROC ;延时子程序 PUSH BX PUSH CX MOV BL,100
DELAY: MOV CX,2801 ;WAIT1: LOOP WAIT1 JNZ DELAY POP CX POP BX RET YSZCX ENDP START: MOV AX,DATA MOV DS,AX
MOV SI,OFFSET NUM
MOV DI,OFFSET SUM
MOV DX,0606H ;8255 MOV AL,89H OUT DX,AL MOV CX ,2
B1: CALL JPSMZCX ; CALL YSZCX LOOP B1 MOV CX,2
B2: CALL JPSMZCX ; CALL YSZCX LOOP B2 MOV CX,2
MOV SI,OFFSET NUM CLC
B3: MOV AL,[SI+1] ; ADC AL,[SI+3] AAA
MOV [DI+2],AL DEC DI DEC SI LOOP B3
内环延时约10ms 初始化 输入第一个数 输入第二个数 开始进行加法操作5
DEC BL
正在阅读:
加法器课程设计论文正文 - 图文09-25
学校教学常规工作情况汇报材料10-13
3.2010--2012年各地中考题汇编物态变化成品 - 图文06-08
化工类企业安全生产管理11-07
语S版六年上册说课稿05-03
拳皇2797(风云再起)出招表(简化版)04-05
正交试验法优选丹参中丹酚酸B的提取工艺07-26
施工员技术工作总结(精选多篇)09-28
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 加法器
- 课程
- 图文
- 论文
- 设计
- 正文
- 二十种好吃的炖菜做法 - 图文
- 00141发展经济学及答案201304 - 图文
- 结直肠癌鉴别诊断 - 图文
- 2016-2021年中国抗生素生化测量仪行业市场发展现状及投资前景预测报告
- 熊胆数据
- 2012届高三生物二轮复习专题练习1:基因工程
- 完全学分制下辅导员如何促进高校学风建设的思考
- 《固体物理》试卷A答案
- 全册教案 - 图文
- 2015年河南省商丘市高三第二次模拟考试数学(理科)试题及参考答案纯word版
- 碳纤维资料总结 - 图文
- 昆明理工大学微机原理2013 期末复习题100
- 老人摔倒扶不扶
- 幼儿园教案大班主题活动:海洋剧场
- 科室质量与安全管理小组工作记录本 - 普外科
- 中考名著《西游记》阅读练习题(精华版-含答案)
- 陕北民歌《走西口》欣赏
- 氮氢检漏仪在汽车空调上的应用
- 活动3 - 收发我的贺卡
- 艺术实践对音乐学专业学生的重要性