微机原理:汽车速度控制系统的设计与实现
一、设计内容
汽车速度控制系统:在自行设计接口板的按键转换汽车的挡位;发光二极管显示挡位;数码管显示汽车的速度。加速控制:拨动对应的档位再拨动加速开关,数码管显示速度递增至99(加速要与档位匹配,若不匹配则,加速失效);减速控制:拨动减速开关,速度减至0。
二、设计方案
1. 器件需求
1.开关控制速度加速、减速,4个档位控制,共需6个开关。
2.两个数码管显示2位十进制数。
3.4个二极管显示档位(档位对应亮灯个数)。
4.8086CPU,以及8255端口芯片。
2. 器件连接
6个输入开关K1-K4、K7-K8 连接到8255输入端PA0 ~ PA3、PA6~PA7。
数码管端A~ Dp连接到8255输出端PB0~PB7。
数码管显示单元X1X2连接到8255输出端PC6~PC7,用于选择数码管。
4个led灯与8255的输出端PC0~PC3相连,用于显示档位。
8255 A0、A1连接系统总线XA1、XA2。
8255数据端D0-D7与CPU总线数据端XD0~XD7相连,用于数据交换。
8255片选端CS与总线IOY端相连。
8255WR和RD分别与总线IOW和IOR端相连。
3、系统原理图
三、程序设计
1. 程序流程图
2.程序代码
ASSUME CS:CODE,DS:DATA,SS:STACK
DATA_PORT EQU 0606H
DATA_CONTROAL EQU 10010000B
PORT_A EQU 0600H
PORT_B EQU 0602H
PORT_C EQU 0604H
LOOP_COUNT EQU 200D
DIGIT_LAMP_FIRST EQU 01110000B
DIGIT_LAMP_SECOND EQU 10110000B
DIGIT_NUMBER_UPPER EQU 9D
DIGIT_LAMP_OFF EQU 00000000BDATA SEGMENTSPEED DW 0HNUMBER DW 0H,0HDIGIT DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHLEVE DB 0HUP_STATE DB 0HDOWN_STATE DB 0HLAST_INPUT_DATA DB 0H
DATA ENDSSTACK SEGMENTDW 50 DUP(?)
STACK ENDSCODE SEGMENT START:MOV DX,DATA_PORT ;写控制字MOV AL,DATA_CONTROALOUT DX,ALMOV AX,DATA ;初始化 数据段,堆栈段MOV DS,AXMOV AX,STACKMOV SS,AXLOP:CALL GET_STATE ;获取速度档位信息CALL PRINT_SPEED ;打印速度CMP UP_STATE,10000000B ;判断加减速JNE IS_DOWN_SYSTEM CALL SPEED_UP_SYSTEMJMP TO_ENDIS_DOWN_SYSTEM: CMP DOWN_STATE,01000000BJNE TO_ENDCALL SPEED_DOWN_SYSTEMTO_END:JMP LOPMOV AX,4C00HINT 21HGET_STATE:MOV DX,PORT_AIN AL,DXCMP LAST_INPUT_DATA,ALJE GET_STATE_ENDMOV LAST_INPUT_DATA,ALMOV UP_STATE,AL ;截取加速信息AND UP_STATE,10000000BMOV DOWN_STATE,AL ;截取减速信息AND DOWN_STATE,01000000BMOV LEVE,AL ;截取档位信息AND LEVE,00001111BGET_STATE_END:RETSPEED_UP_SYSTEM:MOV AX,SPEEDCMP AL,98JA SPEED_UP_SYSTEM_ENDCMP AL,46JA SPEED_OVER_47__UPCMP AL,35JA SPEED_46_AND_36__UPCMP AL,24JA SPEED_35_AND_25__UPJMP SPEED_24_AND_0__UPSPEED_24_AND_0__UP:MOV BL,LEVECMP BL,1JNE SPEED_UP_SYSTEM_ENDCALL ADD_SPEEDJMP SPEED_UP_SYSTEM_ENDSPEED_35_AND_25__UP:MOV BL,LEVECMP BL,2JNE SPEED_UP_SYSTEM_ENDCALL ADD_SPEEDJMP SPEED_UP_SYSTEM_ENDSPEED_46_AND_36__UP:MOV BL,LEVECMP BL,4JNE SPEED_UP_SYSTEM_ENDCALL ADD_SPEEDSPEED_UP_SYSTEM_END:RETSPEED_DOWN_SYSTEM:MOV AX,SPEEDCMP AL,1JB SPEED_DOWN_SYSTEM_ENDCALL SUB_SPEEDSPEED_DOWN_SYSTEM_END:RETPRINT_LEVE:MOV AL,LEVECMP AL,0 ;档位为0 退出JE END_SUB AL,1 ;波动2个以上档位退出AND AL,LEVEJNZ END_MOV AL,LEVE ;档位灯数计算SUB AL,1OR AL,LEVEMOV DX,PORT_COUT DX,ALCALL WAIT_TIMEEND_: RETPRINT_SPEED:MOV AX,SPEEDMOV BX,10DIV BL ;截取十位和个位MOV BYTE PTR NUMBER[0],ALMOV BYTE PTR NUMBER[2],AHMOV CX,LOOP_COUNTLOOP_PRINT:MOV DX,PORT_C MOV AL,DIGIT_LAMP_FIRST ;选择数码管OUT DX,ALMOV DI,WORD PTR NUMBER[0]CALL OUT_DIGIT ;输出数MOV DX,PORT_CMOV AL,DIGIT_LAMP_SECONDOUT DX,ALMOV DI,WORD PTR NUMBER[2]CALL OUT_DIGITCALL PRINT_LEVE ;打印档位LOOP LOOP_PRINTRETADD_SPEED:MOV AX,SPEED INC ALMOV SPEED,AXRETSUB_SPEED:MOV AX,SPEED DEC ALMOV SPEED,AXRETWAIT_TIME:PUSH CXMOV CX,000CHWAIT_LOOP:LOOP WAIT_LOOPPOP CXRETOUT_DIGIT:CMP DI,DIGIT_NUMBER_UPPERJA OUT_DIGIT_ENDMOV DX,PORT_BMOV AL,DIGIT[DI]OUT DX,ALCALL WAIT_TIME ;延时MOV AL,DIGIT_LAMP_OFF ;关闭数码管OUT DX,ALOUT_DIGIT_END:RETCODE ENDSEND START
四、总结
对于汇编的编写,与C稍微不同,即对寄存器使用。刚开始还不会使用内存空间,只知道寄存器。于是就挨个用寄存器,甚至下意识将某些寄存器当做存储空间。这很明显展示了自己的低水平。所以,我单独研究如何申请空间,将寄存器数据存储到空间里。程序的关键数据保存到内存里,这种做法为程序解耦奠定基础。我觉得程序设计最忌讳的是胡子眉毛一起抓,将代码堆砌在一起,如同一字长蛇。这种代码最容易出现bug,难以修改。代码过长,过一会儿就不知道前面在写什么。故程序模块设计,仍旧是编码最有力、最清楚、最省事的编写手段。通过函数设计,使得编写变得容易清楚,头脑逻辑清晰,不知不觉中体会到程序解耦优势。这样一来再加入新功能时,就不必担心运行过程中寄存的数据流失。程序的设计结构:外层是循环,内部是对数据的分支处理。主要两大主分支,加速系统和减速系统;一个数据输出处理。设计框架和设计思想确立后,剩下的就是实现的细节问题和程序bug,只有耐心地发现问题。最后感谢队友帮助,共同完成此次课设。
微机原理:汽车速度控制系统的设计与实现相关推荐
- 微机原理课程设计-汽车速度控制系统
1.8255基本输入输出 能够在自行设计的接口开发板上,实现拨动开关控制LED的亮灭. DATA SEGMENT DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE ...
- 计算机微机原理与接口技术课程设计课题,微机原理与接口技术课程设计报告
<微机原理与接口技术课程设计报告>由会员分享,可在线阅读,更多相关<微机原理与接口技术课程设计报告(12页珍藏版)>请在人人文库网上搜索. 1.微机原理与接口技术课程设计设计题 ...
- 微型计算机接口与技术的交通灯,微机原理及接口技术课程设计交通灯
微机原理及接口技术课程设计交通灯 序言 十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则.十字道 口的交通红绿灯控制是保证交通安全和道路畅通的关键.当前,国内大多数城市正在 采用" ...
- 【汇编】微机原理与接口技术课程设计
本文是微机原理与接口技术课程设计 完整的程序和实验报告开源在我的Github上: https://github.com/zstar1003/XDU_Homework/tree/main/%E5%BE% ...
- 微型计算机接口与技术的交通灯,微机原理与接口技术课程设计——交通灯设计.doc...
微机原理与接口技术课程设计--交通灯设计.doc 1 任务及要求 1.1设计任务 交通信号灯的控制: (1)通过8255A并口来控制LED发光二极管的亮灭. (2)A口控制红灯,B口控制黄灯,C口控制 ...
- 太原理工大学微型计算机接口技术,微机原理与接口技术课程设计 太原理工大学.doc...
微机原理与接口技术课程设计 太原理工大学.doc 还剩 18页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 1 ...
- 8255,8253微机原理课程十字路口交通灯设计(带交通管制)
8255,8253微机原理课程十字路口交通灯设计(带交通管制) 前绪 CPU 采 用 8088 设 计 , 采 用 其 最 大 工 作 模 式 . 通 过 245,373,8288 等设计形成地址总线 ...
- 微型计算机接口课程设计报告,微机原理与接口技术课程设计报告
<微机原理与接口技术> 课程设计报告 院系 专业 班级 学号 姓名 指导教师 1.设计目的 使学生根据所学的微机原理和数字电子技术知识,熟悉几种典型波形产生的原理,掌握AD转换电路在智能化 ...
- 微型计算机原理设计存储系统,微机原理与接口技术存储器设计.pdf
2018版 微机原理与接口技术 第六章 存储器设计 董明皓 dminghao@xidian.edu.cn 准备知识 存储器的性能指标-存储容量(常用单位) 存储容量的表示 Bit -- 用二进 ...
最新文章
- 参加峰会“金点子”的材料
- Webview--如何让加载进来的页面自适应手机屏幕分辨率居中显示
- vue.js快速入门
- SpringMVC-获得Restful风格的参数
- 【Beta阶段】发布说明
- Python实现PLA(感知机)
- 还在用背单词App?使用Python开发英语单词自测工具,助你逆袭单词王!
- Canvas基础-粒子动画Part2
- Android文件上传
- C语言用广播星历求卫星坐标,GPS广播星历计算卫星位置和速度-Read
- 奥克兰大学计算机专业世界排名,奥克兰大学,15学科排名世界前50!
- Excel取整函数汇总
- nginx做域名映射到指定端口(阿里云服务器、阿里域名服务)
- 安装教程:PostgreSQL + PostGIS + pgAdmin
- 昆仑万维重磅发布AIGC全系列算法与模型,领跑未来
- 支气管分割并3D展示效果
- 《Large scale GAN training for high fidelity natural image synthesis》论文阅读记录
- 英语语法---定语详解
- facebook surround360 环境配置,编译,测试(生成双目立体全景图)
- 智能监控系统、人脸识别、智能抓拍、预警系统、机动车辆抓拍、行人抓拍、监控预警管理后台、人流监控、人脸信息采集、语音报警、轨迹分析、抓拍检索、园区监控、实时监控、录像回放、防盗预警、智能算法、跟踪分析