微机原理课程设计报告
- 格式:docx
- 大小:613.19 KB
- 文档页数:16
【关键字】心得体会微机原理课程设计心得体会篇一:微机原理课程设计课程设计报告( XX—XX 年度第一学期)课程:微机原理及应用题目:动画显示显示三角形并倒置院系: 控制与计算机工程学院班级:自动化1004 姓名学号:XX09030110 XX09040134 指导教师:程海燕设计周数:一周成绩:XX年1 月11 日XX02020407日期:《微机原理及应用》课程设计任务书一、目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力。
2、主要内容1.动画显示及显示三角形并倒置。
2.针对所选择的设计题目进行硬件设计,合理选用所需元器件,绘制系统结构框图、硬件接线图,并在实验系统上完成电路的连接和调试。
3.根据所选题目的要求对微机系统进行程序设计,绘制程序总体流程图并编写源程序上机调试。
4.写出课程设计报告,对整个设计过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识和收获。
三、进度计划四、设计成果要求1.系统硬件设计合理,软件编程达到设计要求。
2.系统硬件结构图和软件流程图绘制清楚规范。
3.设计报告完整规范。
五、考核方式根据设计任务的完成情况、课程设计报告撰写情况及演示答辩情况采用五级记分制评定成绩。
学生姓名:指导教师:一、课程设计目的与要求1.通过对微机系统分析和具体设计,使学生加深对所学课程的理解。
2.掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。
3.培养学生分析问题、解决问题的能力。
4.培养学生对微型计算机应用系统的基本设计能力。
5.提高学生的实践动手能力和创新能力2、课程设计正文 1. 设计要求(1)动画显示:用字符组成汽车图形,在屏幕显示从左向右开动的汽车;(2)显示三角形并倒置:用* 绘制一个七层等腰三角形,点击空格键则三角形倒置一次,再次点击则再次倒置。
1.课程设计任务书设计内容:设计当把物品放入加热器中,首先要启动加热器和电机工作,设定加热时间为3(5)分钟,为使物品均匀加热,每隔20(30)秒电机要反转一次,(正转→反转、反转→正转),加热时间到后,停止加热器和电机工作,并发声,告知加热结束。
设计目标:在规定的时间内设计出符合要求的汇编语言程序,并提交一份符合本科生毕业设计论文规范的报告。
进度安排:8月13日-8月16日-----------------------确定设计内容并完成硬件部分8月17日-8月21日------------------------------------完成程序清单8月22日-8月23日------------------------------完成课程设计说明书2. 总体设计思路2.1、分析设计所用到的芯片的原理及使用方法:⑴8259A的使用方法:8259A有四个初始化命令字ICW及3个操作操作命令字OCW。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图2-1所示,OCW1-OCW3各命令字格式如图2-2所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的8操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图2-1ICW1-ICW4各命令字格式如图2-2OCW1-OCW3各命令字格式如图⑵8255的使用方法:方式0 —基本输入/出方式;方式1 —选通输入/出方式;方式2 —双向选通工作方式。
图2-3 8255命令字格式图⑶8253的使用方法:(1) 方式0:计数到0结束输出正跃变信号方式。
(2) 方式1:硬件可重触发单稳方式。
(3) 方式2:频率发生器方式。
(4) 方式3:方波发生器。
(5) 方式4:软件触发选通方式。
微机原理课程设计说明书设计题目:跑马灯学院计算机科学与工程学院专业计算机科学与技术专业班级学生学号同组者指导教师2014 年春季学期目录一、实验简介 (3)1、基本要求 (3)2、设计提示 (3)3、进一步设计要求 (3)二、实验原理 (3)1、实验原理描述 (3)2、8254芯片 (4)2.1、8254芯片组成部分 (4)2.2、8254芯片工作方式 (4)3、8255芯片 (5)3.1、8255芯片的组成部分 (5)3.2、8255芯片工作方式 (6)4、实验原理图 (7)三、实验流程图与源程序 (7)1、流程图 (7)1.1、主程序流程图 (8)1.2 Appmain 子程序流程图 (8)1.3 灯跳转阶段流程图 (10)2、源程序(见附录) (11)四、实验结果与测试 (11)五、实验提高与扩展 (11)六、个人心得与体会 (12)附录 (13)一、实验简介:1、基本要求:采用8254精确定时,LED的点亮规律为LED7--->LED0,每一个LED的点亮时间间隔由逻辑电平开关K1、K2、K3选择,K1的时间间隔为0.5s,K2的时间间隔为1.0s,K3的时间间隔为1.5s。
当主机键盘按下任意键时停止演示。
2、设计提示:采用8255的A口接LED灯,B口接逻辑电平开关K1、K2与K3。
在8254的中断服务程序中完成对灯的控制,主程序检测灯的变化,改变点亮LED的时间间隔。
3、进一步设计要求:将LED的点亮规律变为LED7--->LED0--->LED7。
二、实验原理:1、实验原理描述:该实验中跑马灯采用8255和8254芯片来实现,利用8254芯片来做定时器,采用8254的方式3(方波发声器),因此在8254芯中采用级联的方法,以此来控制跑马灯中实现0.5s,1.0s,1.5s的效果片;在8255芯片中将A口当做输出口连接LED灯,B口一个输入口来掌控三个逻辑开关的打开与关闭,选择三种不同的时间间隔,C7口作为另一个输入口连接着8254芯片的OUT1口来读从8254芯片传来的三种不同大小的频率之一,以此来实现具有三种不同时间间隔跳转的跑马灯。
可编辑修改精选全文完整版微机原理与接口技术课程设计任务及指导书(适用于0944121班)一、课程设计目的和任务:通过课程设计,主要达到以下目的:1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A等;3、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
二、课程设计题目:【1】数字音乐盒设计要求:1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音响,从而演奏乐曲(最少储存三首乐曲,每首不少于三十秒);2、采用LCD显示;3、开机时有英文欢迎字符,播放时显示歌曲序号(或名称);4、可通过功能键选择乐曲,暂停,播放;扩展功能:显示乐曲播放时间或剩余时间;【2】数字温度计设计要求:1、基本范围为-50℃—110℃;2、精度误差小于0.5℃;3、LED数码管直读显示;扩展功能1、可以任意设定温度的上下限报警功能;2、实现语音报数。
【3】交通灯设计设计要求:1、设计一个十字路口交通灯控制器。
用单片机控制LED灯模拟指示。
2、系统包括人行道、左转、右转以及基本的十字路口交通灯功能;3、系统除具有基本交通灯功能外,还具有显示倒计时、时间设置、紧急情况处理功能。
扩展功能:1、分时段调整信号灯的点亮时间2、根据具体情况实现灵活手动控制功能。
【4】电子密码锁设计要求:1、系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能;2、还具有调电存储、声光提示等功能。
扩展功能:通过遥控器实现锁的基本操作。
【5】电子钟的设计设计要求:1、可以实现23h59m59s的显示,用六位LED显示出来,显示格式为“时时:分分:秒秒”。
2、可以利用按键设置任意的时分秒各位,并具有按键复位功能;扩展功能:1、实现整点语音报时功能。
2、实现年月日的显示。
8086微机原理实验报告实验名称:8086微机原理实验实验目的:1.深入了解8086微处理器的内部结构和指令系统。
2.掌握汇编语言的编程方法和技巧。
3.熟悉微机系统的输入输出操作原理。
4.掌握8086微机系统的调试方法和程序调试技巧。
实验器材:1.8086微处理器芯片2.Intel 8086学习板3.编程器4.示波器5.实验箱实验步骤:1.熟悉8086微处理器的内部结构和指令系统在开始实验前,首先需要熟悉8086微处理器的内部结构和指令系统。
通过阅读教材和讲义,了解到8086微处理器采用16位结构,具有4个寄存器组,支持16种不同寻址方式的指令。
熟练掌握常用的指令系统和汇编语言的编程方法。
2.设计并编制简单的汇编程序在熟悉8086微处理器的内部结构和指令系统后,我们开始设计并编制简单的汇编程序。
本实验中,我们编写了一个简单的汇编程序,用于实现两个数的加法操作,并将结果存储在内存中。
程序中使用了mov指令将操作数送入寄存器,add指令将它们相加,再用mov指令将结果存储到内存中。
程序流程图如下所示:a. 将第一个数送入累加器A中。
b. 将第二个数送入寄存器B中。
c. 执行add指令,将A和B相加,结果保存在A中。
d. 将结果存储到内存中。
e. 程序结束。
3.调试程序并进行测试在完成汇编程序的编写后,我们需要使用调试器对程序进行调试,并进行测试。
首先,将程序加载到学习板上进行调试。
在调试过程中,我们使用示波器观察各个信号的波形,以确定程序的正确性。
通过逐步单步执行程序并观察寄存器和标志位的变化,我们验证了程序的正确性。
接下来,我们使用输入设备输入两个数,并观察输出结果是否正确。
测试结果表明程序正确实现了两个数的加法操作。
4.总结体会和改进建议通过本次实验,我们深入了解了8086微处理器的内部结构和指令系统,掌握了汇编语言的编程方法和技巧,熟悉了微机系统的输入输出操作原理,以及掌握了8086微机系统的调试方法和程序调试技巧。
微机原理课程设计学院:机电工程学院专业:自动化班级:XXXX学号:XXXX姓名:XX指导教师:XXXXXXXX 完成时间:2015一、课程设计的基本要求•设计8088微处理器最小系统•用8284设计频率恒定的时钟电路•用6264和2764设计存储器(RAM和ROM)电路。
•用ADC0809组成8位温度检测A/D变换接口电路•用DAC0832设计8位D/A变换接口电路驱动直流电机•用8255和8253设计步进电机控制电路•用8255外联LED和键盘显示电路二、设计的基本思路采用8088的最小方式,利用三片74LS373锁存器设计20位地址总线电路,利用一片74LS245收发器形成数据总线电路。
利用8254芯片提供频率恒定的时钟信号,同时具有复位信号和准备好信号发送给8088系统。
运用两片2764和两片6264进行扩展,形成16K的ROM和16K的RAM电路。
系统的定时计数器由一片8253构成,中断系统由8259组成,并行接口电路由8255构成。
AD转换电路由ADC0809及其外围电路构成,由DAC0832及其外围电路构成DA转换电路驱动直流电机。
芯片所需的片选信号均由74LS138译码电路产生。
三、系统的地址分配ROM2764(1):0FC000H~0FDFFFH;ROM2764(2):0FE000H~0FFFFFH;RAM6264(1):00000H~01FFFH;RAM6264(2):02000H~03FFFH;ADC0809:0058H~005FH;DAC0832:0074H;计时器8253:0020H~0023H;并行接口芯片8255:0028H~002BH;键盘地址:0070H~0073H; LED地址:0080H~0083H。
四、具体设计1、8088微处理器最小系统1.1 8088微处理器介绍8088微处理器采用40条引脚的双列直插式封装。
为减少引脚,采用分时复用的地址/数据总线,因而部分引脚具有两种功能。
微机原理与接口技术课程设计题目:利用DAC0832实现正弦波输出.班级:.姓名:.学号:.日期:2011年12月15日目录1、引言 ........................................................................................................... 错误!未定义书签。
1.1背景和编写目的..................................................................................... 错误!未定义书签。
1.2 术语和缩写................................................................................................ 错误!未定义书签。
2.系统组成........................................................................................................ 错误!未定义书签。
3.硬件设计........................................................................................................ 错误!未定义书签。
3.1 8259A模块:............................................................................................. 错误!未定义书签。
3.2 DAC0832模块 ........................................................................................... 错误!未定义书签。
目录一、软件启动 (1)二、程序代码 (2)1、数值计算 (2)(1)十进制系统 (2)2、逻辑运算 (5)(1)与运算(AND) (5)(2)或运算(OR) (5)(3)异或运算(XOR) (5)4、宏 (8)三、鸣谢 (10)Emu8086的应用分析摘要:Emu8086是一个可在Windows 环境下运行的8086CPU汇编仿真软件。
它集成了文本编辑器、编译器、反编译器、真调试、虚拟设备和驱动器为一体,并具有在线使用指南,这对刚开始学习汇编语言的人是一个很有用的工具。
您可以在真器中单步或连续执行程序,其可视化的工作环境让使用者操作更容易。
您可以在程序执行中动态观察各寄存器、标记位以及存储器中的变化情况。
仿真器会在模拟的PC中执行程序,以避免程序运行时到实际的硬盘或内存中存取数据。
此外,该软件完全兼容Intel新一代处理器,包括了PentiumⅢ、Pentium4的指令。
关键词:Emu8086 微机原理程序文件一、软件启动双击进入启动界面如图1所示,用户可以选择新建文本、程序示例、快速启动指南、最近使用文档。
图1 启动界面Emu8086软件提供的实例中包含了几十种典型的程序代码,其中包括:数值计算、逻辑运算、屏幕显示、键盘输入、文件打印、马达控制、温度控制、交通灯控制等。
在软件提供的快速指南中提供了多种在线帮助工具,包括:文件索引、8086CUP指令使用指南、系统中断调用列表以及用法等。
用户可以通过该工具快速地掌握8086CPU指令体系和emu8086汇编真软件的使用。
程序编辑结束后,点击模拟,即可进入模拟状态:点击运行之后即可用屏幕模拟器进行模拟,如:二、程序代码1、数值计算(1)十进制系统目前使用最多的是十进制。
十进制系统有10个数字0,1,2,3,4,5,6,7,8,9。
利用这些数字能表示任何数值,例如754这些数字是由每一位数字乘以“基数”的幂累加而成的(上一个例子中基数是10 因为十进制中有十个数字)。
江苏大学京江学院 JIANGSU UNIVERSITY 微 机 原 理 课 程 设 计
电子钟 学 院 名 称 : 京江学院 专 业 班 级 : J计算机1401 学 号 : ********** * * * * : * * * * * * : ***
2017 年 1 月 微机原理课程设计
1 一、实验目的 •掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法; •掌握实时处理程序的编制和调试方法; •掌握8253、8259、8255的使用 •掌握小键盘、LED八段式发光二极管和蜂鸣器的使用
二、实验内容 •利用8253的定时功能,产生0.5S的定时中断; •在F5区的数码管上显示时间格式为“时:分:秒”(24小时)
•允许通过键盘的按键设置时钟的初值; •允许通过键盘的按键控制时钟的启停; •分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。
三、使用的芯片及占用端口地址 •8253芯片:主要用于产生定时中断,定时时间为0.5S •端口地址:0260H~0263H •8255芯片:主要用于控制键盘输入和LED数码管输出 •端口地址:0270H~0273H •8259芯片:主要用于产生中断管理 •端口地址:0250H~0251H
四、硬件连接方案 •键盘的控制——由8255的B口控制; 微机原理课程设计 2 •LED显示模块——由8255的B口和A口控制; •时间的精确定时——用8254定时器0产生50ms的中断信号; •整点报时控制——用8255的某一位信号控制8254的GATE1。GATE=1时,OUT1信号控制蜂鸣器鸣叫;GATE=0,蜂鸣器停止蜂鸣。
五、设计的系统连接总逻辑图 键盘与LED(F5)
A:按键的列线 B:数码管段码 C:数码管选择脚 D:按键的行线
蜂鸣器(F8)
Ctrl:控制接口,0-蜂鸣 微机原理课程设计
3 8253(C4)
CS:片选信号,低电平有效; A0、A1:地址信号;
8255(D3)
8259(B3) 微机原理课程设计
4 六、程序模块划分及各模块程序流程图 •主程序模块:对8254、8259A等芯片进行初始化,设置中断向量,扫描键盘,根据按键值作相应的处理。流程图参见图
。 •注意:设置初始时间时要考虑边界,时间的最大值为23:59:59,不能超出此范围。 •8254中断服务程序:刷新一遍数码管,计时时间到一秒,修改当前时间,整点报时。流程图参见图 微机原理课程设计
5 七、实验中遇到的问题,解决办法及实验心得体会 这次课程设计有一定的难度,期间遇到了种种困难,卡住了很久,比如在做显示的时候,先要全熄数码管,然后扫描按键,还要很好地控制延时去抖动,这是件挺繁琐的事,另外,按键之后需要给按键一个扫描码,接着转化成字形码,能够识别并在数码管上显示,也花了很多时间,再比如在设置时间的时候,对于延时时间的拿捏也很难,需要在buf缓冲区存放值,修改时,让修改位熄灭,其余位为0,若超出规定位数,则不修改,显示原值。老师在我完成规定任务后也设下了一个小挑战,将8255的一根接线调换了位置,要求仍正确显示,最后我想出的解决的方法是段位码改共阳极,键盘扫描里修改相应端口,开头输入部分修改8255初始化控制字即可。 这次课程设计对于这门课的认知的提升很有帮助,本来只是理解了理论,对于亲自动手实现还是感到茫然,甚至不相信自己能完成,但是在一步一步实现各个功能模块后,发现点连成了线,线动成面,知识点是能够串联起来的,只要自己愿意动手,愿意思考,没有什么是做不成的,当然期间必然会遇到各种各样的问题,只要肯向老师或同学请教,他们也一定会给你的思维一些启发。这次的课程设计虽然只是做了一个看似简单的电子钟,但是它几乎涵盖了我们这学期所学的大部分内容,完成这项课程设计必然要深入理解课本上的知识,这就起到了查漏补缺,融会贯通的作用,我想这对日后学习其他硬件方面的知识都是很有益的,也很大程度上激发了我对硬件方面课程的更大热情。
八、源程序清单 .MODEL TINY C0_8253 EQU 260H ;计数器0的端口地址 C1_8253 EQU 261H ;计数器1的端口地址 C2_8253 EQU 262H ;计数器2的端口地址 CTRL_8253 EQU 263H ;控制端口的端口地址 PA_8255 EQU 270H ;端口A的地址 PB_8255 EQU 271H ;端口B的地址 PC_8255 EQU 272H ;端口C的地址 CTRL_8255 EQU 273H ;控制端口的端口地址 EVEN_8259 EQU 250H ODD_8259 EQU 251H
.STACK 100 .DATA BUFFER DB 0,0,0,0,0,0 ;数码上显示的内容 KEY DB 0 FLAG DB 1 BUF DB 0,? SEG_TAB DB 03FH, 06H,05BH,04FH, 66H, 6DH, 7DH,07H,7FH,6FH;0~9的段码表 SEG_TAB2 DB 0BFH, 86H,0DBH,0CFH, 0E6H, 0EDH, 0FDH,87H,0FFH,0EFH
.CODE START: MOV AX,@DATA MOV DS,AX 微机原理课程设计 6 MOV ES,AX NOP MOV AL,30H ;00110000B,计数器0,方式0,二进制计数 MOV DX,CTRL_8253 OUT DX,AL
MOV DX,C0_8253 MOV AL,0DH ;Fout=1/25ms=40Hz,Fclk=31250Hz,N=Fclk/Fout=31250Hz/40Hz=781,N=781 OUT DX,AL MOV AL,03H OUT DX,AL
MOV DX,CTRL_8253 MOV AL,76H ;01110110B,计数器1,方式3,二进制计数 OUT DX,AL MOV DX,C1_8253 MOV AL,12H ;31250Hz OUT DX,AL MOV AL,7AH OUT DX,AL
CALL SET_VECTOR ;设置中断向量 CALL INIT_8259 MOV AL,11111110B ;开放IR0请求的屏蔽位 MOV DX,ODD_8259 OUT DX,AL L1: STI MOV DX,CTRL_8255 ;8255初始化 MOV AL,80H ;10000000B,端口A方式0输出,端口B方式0输出,C输出 OUT DX,AL LEA SI,BUFFER MOV CX,8 LP: CALL DIR LOOP LP MOV DX,CTRL_8255 ;8255初始化 MOV AL,82H ;10000010B,端口A方式0输出,端口B方式0输入,C输出 OUT DX,AL L2: CALL KEYSCAN JMP L1 JMP $ 微机原理课程设计 7 DIR PROC NEAR PUSH AX PUSH BX PUSH DX
MOV AL,BUFFER[0] CMP FLAG,0 JNZ Q0 CMP KEY,0 JNZ Q0 LEA BX,SEG_TAB2 JMP W0 Q0: LEA BX,SEG_TAB ;BX置为段码表首址 W0: XLAT ;转换成七段码 MOV DX,PA_8255 ;段码端口 OUT DX,AL MOV DX,PB_8255 ;位码端口 MOV AL,7FH ;小时的十位 OUT DX,AL CALL DELAY ;延时
MOV AL,BUFFER[1] CMP FLAG,0 JNZ Q1 CMP KEY,1 JNZ Q1 LEA BX,SEG_TAB2 JMP W1 Q1: LEA BX,SEG_TAB W1: XLAT ;转换成七段码 MOV DX,PA_8255 ;段码端口 OUT DX,AL MOV DX,PB_8255 ;位码端口 MOV AL,0BFH ;小时的个位 OUT DX,AL CALL DELAY ;延时
MOV AL,BUFFER[2] CMP FLAG,0 JNZ Q2 CMP KEY,2 JNZ Q2 微机原理课程设计 8 LEA BX,SEG_TAB2 JMP W2 Q2: LEA BX,SEG_TAB W2: XLAT ;转换成七段码 MOV DX,PA_8255 OUT DX,AL MOV DX,PB_8255 ;位码端口 MOV AL,0EFH ;分钟的十位 OUT DX,AL CALL DELAY ;延时
MOV AL,BUFFER[3] CMP FLAG,0 JNZ Q3 CMP KEY,3 JNZ Q3 LEA BX,SEG_TAB2 JMP W3 Q3: LEA BX,SEG_TAB W3: XLAT ;转换成七段码 MOV DX,PA_8255 ;段码端口 OUT DX,AL MOV DX,PB_8255 ;位码端口 MOV AL,0F7H ;分钟的个位 OUT DX,AL CALL DELAY ;延时
MOV AL,BUFFER[4] CMP FLAG,0 JNZ Q4 CMP KEY,4 JNZ Q4 LEA BX,SEG_TAB2 JMP W4 Q4: LEA BX,SEG_TAB W4: XLAT ;转换成七段码 MOV DX,PA_8255 ;段码端口 OUT DX,AL MOV DX,PB_8255 ;位码端口 MOV AL,0FDH ;秒的十位 OUT DX,AL CALL DELAY ;延时
MOV AL,BUFFER[5]