微机原理课程设计报告
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理课程设计报告文库
微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。
技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。
情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。
课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。
学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。
2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。
3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。
4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。
微机原理课程设计报告
微机原理课程设计设计报告姓名:朱文斋班级:自动化0902学号: 3090502040教师:张荣标2012 年 1 月 5 日微机原理课程设计一、目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。
二、内容与要求:1、字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
2、从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
3、字符和数据的显示设计为掌握字符和数据的显示方法。
编写程序,先显示信息:INPUT STRING,THE END FLAG IS $,再接收字符。
如为0-9,则计数器加一,并显示数据;如为非数字,则直接显示,但不计数。
4、将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
5、学生成绩名次表设计为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H 的存储区中。
1000H+i表示学号为i的学生成绩。
编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。
微机原理课程设计三、示例程序下面着重介绍程序5——学生成绩名次表设计:流程图:主程序流程图SCAN子函数程序流程图微机原理课程设计程序代码及注释:CRLF MACRO ;宏定义,回车换行MOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTSTUNUM EQU 30 ;学生数MESS1 DB 'Please input 30 score:',0DH,0AH,'$' ;提示信息ERROR DB 'Input error,try again',0DH,0AH,'$' ;报错信息MESS2 DB 'The order is:',0DH,0AH,'$'EMARK DB ? ;报错标志ORG 1000H ;存放成绩地址SCORE DB 30 DUP(?) ;成绩表ORG 2000H ;存放名次地址SEQU DB 30 DUP(?) ;名次表DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPMOV AH,09H ;显示提示信息MOV DX,OFFSET MESS1INT 21HMOV SI,OFFSET SCORE ;成绩表首址MOV CX,STUNUMMOV EMARK,0 ;报错标志清0UUU: CALL GETNUM ;调用子函数读取成绩CMP EMARK,01H ;判断是否出错JE START ;出错则重新开始MOV [SI],DL ;没出错则存入成绩微机原理课程设计INC SI ;指向下一个成绩单元地址LOOP UUU ;判断30个成绩是否读取完MOV CX,STUNUMMOV DI,OFFSET SEQU ;名次表首址VVV: CALL SCAN ;调用扫描子程序MOV AL,STUNUM ;学生总数SUB AL,CL ;计算名次INC ALMOV BX,DX ;学号PUSH AX ;将名次转换成压缩BCD码方便显示PUSH BXPUSH CXXOR AH,AHMOV BH,0AHDIV BHMOV CL,4SHL AL,CLADD AL,AHMOV DH,ALPOP CXPOP BXPOP AXMOV [DI+BX],DH ;存入名次LOOP VVV ;判断是否存完MOV AH,09H ;显示名次提示信息LEA DX,MESS2INT 21HMOV CX,STUNUMMOV SI,OFFSET SEQUWWW: MOV AL,[SI]CALL DISPI ;调用子函数显示名次PUSH DXPUSH AXMOV AH,02 ;显示空格MOV DL,20HINT 21HPOP AXPOP DXINC SI ;指向名次表的下一个地址LOOP WWW ;判断是否输出所有名次MOV AH,4CH ;返回DOSINT 21H微机原理课程设计SCAN PROC NEAR ;扫面子函数,每调用一遍,找出成绩表;中最高成绩,记录其学号,并将此成绩;清0PUSH CXMOV CX,STUNUMMOV AL,00HMOV BX,OFFSET SCOREMOV SI,BXCCC: CMP AL,[SI]JAE JJJMOV AL,[SI]MOV DX,SISUB DX,BXJJJ: INC SILOOP CCCADD BX,DXMOV BYTE PTR [BX],00HPOP CXRETSCAN ENDPDISPI PROC NEAR ;显示子程序PUSH CXMOV BL,AL ;显示高4位MOV DL,BLMOV CL,04ROL DL,CLAND DL,0FHCALL DISPLMOV DL,BL ;显示低4位AND DL,0FHCALL DISPLPOP CXRETDISPI ENDPDISPL PROC NEAR ;将名次转换成对应的ASCII码值并显示 ADD DL,30HMOV AH,02HINT 21HRETDISPL ENDPGETNUM PROC NEAR ;读取成绩子函数微机原理课程设计PUSH CXXOR DX,DX ;清0,用于存放成绩GGG: MOV AH,01HINT 21H ;键盘字符输入CMP AL,0DHJZ RRR ;如果是回车则结束SUB AL,30HJB ERR ;小于0则报错CMP AL,09HJBE GETS ;如果在0—9之间则存成绩至DXJMP ERR ;否则报错GETS: MOV CL,04SHL DX,CL ;将DX中已有数值左移四位XOR AH,AHADD DX,AX ;紧接着将数据存在DX中低四位JMP GGG ;跳转继续读取数据ERR: MOV AH,09H ;显示报错信息MOV DX,OFFSET ERRORINT 21HMOV EMARK,01H ;报错标志置1RRR: PUSH DXCRLF ;回车换行POP DXPOP CXRETGETNUM ENDPCODE ENDSEND START微机原理课程设计四、心得体会:做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。
微机原理课程设计报告
微机原理课程设计报告课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助!微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。
当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。
但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。
我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。
我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。
看着自己做出来的东西,心里面的感觉真的很好。
虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。
很有成就感。
我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。
但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。
对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。
微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。
讨论某一部分原理时又要涉及到其它部分的工作原理。
这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。
所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。
微机原理课程设计报告
微机应用系统设计与综合应用实验——(微机原理)课程设计报告专业班级学生姓名学生学号指导老师完成时间目录第一章设计课题概述 (3)1.1课程设计目的 (3)1.2课程设计要求 (4)1.3课程设计用途 (4)1.4实现技术指标 (4)第二章设计思想和实施方案 (5)2.1功能分析 (5)2.1.1波形产生 (5)2.1.2波形切换 (5)2.1.3 屏幕显示 (5)2.1.4小键盘控制 (5)2.1.5无极调频 (6)2.1.6无极调幅 (6)2.2所需芯片功能简介 (6)2.2.1 8088功能简介 (6)2.2.2 8255A功能简介 (7)2.2.3 A/D0832功能简介 (8)2.2.4 D/A0809功能简介 (9)2.3实施方案 (10)2.3.1 系统总体设计方案 (10)2.3.2系统设计方框图 (10)第三章典型程序模块及编程技巧分析 (12)3.1键盘扫描及逻辑判断模块 (12)3.2键盘编码模块 (13)3.3波形产生模块 (14)3.3.1方波 (14)3.3.2 锯齿波 (16)3.3.3 三角波 (18)3.3.4 正弦波 (20)3.4波形切换及基本控制模块 (21)3.5无级调频调幅判断及控制模块 (23)第四章遇到的问题及解决方法 (26)第五章程序清单和程序注释 (28)5.1汇编源程序 (28)5.2C语言源程序 (49)第六章课程设计收获与体会 (63)6.1实验收获 (63)6.2心得体会 (63)第七章参考文献 (65)第八章附录 (66)8.18088最小模式的连接图 (66)微机应用系统设计与综合应用课程设计报告第一章设计课题概述1.1 课程设计目的《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。
通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。
微机原理课程设计
微机原理课程设计第一篇:微机原理课程设计一、设计题目单片机综合试验仪——计数/中断模块二、功能及性能指标显示计数,记到15就重新开始计数三、设计目的了解单片机综合实验仪基本构成和分模块设计方法。
掌握PROTEUS下单片机综合实验仪的设计、绘制方法。
通过本次实验,达到熟练掌握PROTEUS下单片机综合实验仪原理图绘制和模块划分调整的目的。
2通过单片机综合实验仪原理图转换为板图、制作出各模块实验板和下载程序和在实验板上调试、运行个实验项目,熟练掌握单片机综合实验仪线路板的设计制作过程;达到实现单片机综合实验仪各实验项目实际运行效果的目的。
3了解单片机综合实验仪各模块程序设计方法。
掌握KEIL C51下单片机综合实验仪各模块程序设计和调式及PROTEUS下的系统仿真方法。
通过本次课程设计,达到熟练掌握KEIL C51下和PROTEUS下单片机综合实验仪各模块程序设计、调试和仿真的目的。
四、意义该实验通过单片机的最小系统的制作,设计简单系统,拥有控制其他模块的功能,在现实生活中应用广泛,具有现实意义。
五、本人所做工作计数/中断模块部分①原理图仿真:②PCB版图设计(元件封装)与制作:部分器件封装:中断、定时计数、串行通信电路部分器件封装:SW1(TRIGGER)(3)——SW-PUSH-AUTO-LOCK(按实物设计)D9(POWER_SHOW)(3)——LED 需要设计封装器件外形图如下:中断、定时计数PCB电路图六、设计内容依据单片机综合实验仪原理图各模块及其元器件的实物结构。
在PROTEUS下设计制作单片机综合实验仪的设计、绘制方法。
通过本次实验,达到熟练掌握PROTEUS下单片机综合实验仪原理图绘制和模块划分调整的目的。
1、在PROTEUS的智能原理图输入系统ISIS下,按本本课程设计课件要求,每位同学主攻单片机综合实验仪一个模块原理图设计和绘制。
为后续实验本模块的板图设计做好准备。
2、自己制作的电路板图上焊接元件,完成实验板的制作。
微机原理课程设计实验报告
微机原理课程设计实验报告评语:成绩教师:年月日班级:学号:姓名:地点:时间:课题七直流电机转速闭环控制系统设计与实现一、课程设计题目:直流电机转速闭环控制系统设计与实现二、课程设计目的:1. 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。
2. 了解霍尔器件的工作原理,电机转速的测量与控制的基本原理。
3. 了解闭环控制系统的组成原理。
掌握电机转速测量与控制系统的构成方法。
三、课程设计的内容:设计一个对直流电机转速测量与转速控制的闭环控制系统。
微机控制中心在监控界面上设置电机转速。
电机转速测量利用霍尔传感器电路产生转速脉冲,定时/计数电路通过脉冲计数获得转速参量。
电机转速调整采用PWM(脉宽调节)方法,控制中心采样到电机转速参量,算得转速值同预定转速设置值进行比较,若不相同,则调整控制转速脉冲的占空比,来达到调速的目的。
(占空比=脉冲宽度/脉冲周期)四、系统功能要求与设计要求1.基本功能要求:具有友好的人机交互界面,通过鼠标或键盘,选择相关按钮对系统进行监控,监控系统具有转速参数设置窗口、采样的电机转速数据显示窗口和强行干预系统运行的按钮或相应功能选择菜单。
监控程序用查询(或中断)方式获取转速数据。
2.硬件设计要求:充分利用现有实验系统资源设计一个性能较好的直流电机转速闭环控制系统。
利用带锁存的I/O接口电路(如8253,8255,74LS273,D/A-DA0832)输出控制电机转速的脉冲。
采样转速用霍尔传感器件提供电机转速脉冲。
利用定时/计数电路对电机转速脉冲计数。
微机可从定时/计数电路中获得电机转速数值,并产生控制电机转速的PWM脉冲。
五、设计详情1)闭环控制系统原理图电机转速测量与控制闭环系统基本功能图2)电机控制及转速测量原理图3)操作步骤直流电机的in接8255的PA0口,out接T0的clk0口,通过8253的T1实现1s定时,T0实现转速的测量;通过程序将设置的转速和测出的转速相比,改变占空比,使之达到要求。
微机原理课程设计报告
微机课程设计报告班级:姓名:学号:任务一:1、目的:字符串匹配的设计要求:为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较,如相同,则显示“MATCH”;否则,显示“NO MATCH”。
2、流程图3、源程序:DATAS SEGMENTs1 db'please input the first string:','$'st1 db 100db?db 100 dup(?)s2 db 0ah,'plaese input the second string:','$'st2 db 100db?db 100 dup(?)s3 db 0ah,'matah','$'s4 db 0ah,'no match','$';此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXmov dx,offset s1 ;显示提示信息1mov ah,9hint 21hmov dx,offset st1 ;接收键入的字符串1mov ah,0ahint 21hmov dx,offset s2 ; 显示提示信息2mov ah,9hint 21hmov dx,offset st2 ;接收键入的字符串2mov ah,0ahint 21hmov si,offset st1 ;字符串1的地址送给SImov di,offset st2 ; 字符串2的地址送给DImov ax,0lp1: mov bl,[si+1] ; 字符串1的字符数送给bl cmp bl,[di+1] ;字符串2的字符数与字符串1相比较jnz lp4 ;不等转lp4mov al,[si+1]mov cx,ax ; 给cx赋字符串1的字符数lp2: mov bl,[si+2] ; 字符串1的第一个字符在字符串2中匹配cmp bl,[di+2]jnz lp4inc siinc diloop lp2 ;循环cx内容减1,cx不等于0,继续循环,跳转lp2lp3: mov dx,offset s3mov ah,9hint 21hjmp nextlp4: mov dx,offset s4mov ah,9hint 21h;此处输入代码段代码next: MOV AH,4CHINT 21HCODES ENDSEND START4、结果:5、心得要先比较字符串的长度,前面要先分别定义match和nomatch,并且应该保留足够的字节空间。
微机原理课程设计报告
微机原理课程设计报告班级:电信科技0801姓名:学号: 3080504016一、目的结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用,学会使用EDIT软件,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二、内容1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,显示“NO MATCH”。
2.接收年、月、日信息并显示的设计为掌握响铃的使用方法。
并掌握年月日输入方法,编写程序,先显示“Input the data(xxxx/xx/xx):”并响铃一次,然后接收键盘输入的信息,最后显示出来。
3.响铃设计为掌握响铃的使用方法。
编写程序,从键盘接收输入字符,如是数字N,则响N次;如不是数字,则不响。
4.计算机钢琴的设计为掌握pc机扬声器发出不同频率声音的方法和进一步掌握利用系统功能调用从键盘上读取字符的方法。
编写程序,在程序运行时使PC机成为一架可弹奏的“钢琴”。
当按下数字键1-9时,会依次发出1,2,3,4,5,6,7,高音1,高音2九个音调,按回车后退出。
5.排序设计为掌握用汇编语言编写排序程序的思路和方法。
编写程序,从首地址为1000H开始存放35个数,要求设计程序将这些数由小到大排序,排序后的数,仍放在该区域中。
6.计算N的阶乘的设计为了解高级语言中的数学函数是怎样在汇编语言一级上实现的。
编写计算N!的程序。
数值由键盘输入,结果在屏幕上输出。
N的范围是0~FFFFH,即刚好能被一个16位寄存器容纳。
三、重点内容:本次课程设计中,我做的重点内容是计算机钢琴和N的阶乘设计,计算机钢琴是我感觉比较有趣,而N的阶乘设计花的时间做多,因此此处主要介绍N的阶乘的设计内容。
(1)流程图主程序的流程图如下:开始显示请输入数字N调用get 子程序,得到的N 放入BPSI 指向结果数据缓存区ANS初始化检测是否输入错误BP=0或1?BP 值放入ANS 首地址,默认长度放入L 中BP=BP-1BP=1?CY=0,BX=0结果缓存长度L 放入CX[SI+BX]*BPAX+C(上次相乘的进位数据)DX 加1有进位?AX 放入[SI+BX]中DX 放入进位缓存C 中BX=BX+2指向ANS 的下一个数据位置CX=CX-1CX=0?DX=0?结果长度L 加1DX 放入[SI+BX]单元内ANS 结果放1显示‘the result is ’调用显示子程序返回dos 结束YesNoYesNoNoYes YesNoYes No(2)源程序代码DATA SEGMENTANS DW 5000 DUP(?) ;运算结果缓存区 SS1 DB 'Please INPUT the number(END WITH H):','$' SS2 DB 'WRONG INPUT!','$' SS3 DB 'THE RESULT IS:','$'L DW 1 ;存结果长度C DW 0 ;存上次运算进位数据ZIXING DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H ;显示时的字形码 DATA ENDS;---------------------------------------------------------------------------- CODE SEGMENTASSUME CS:CODE,DS:DATASTART PROC FARMOV AX,DATAMOV DS,AXMOV DX,OFFSET SS1MOV AH,9INT 21H ;输出'Please INPUT the number(END WITH H):' MOV BP,00HCALL GET ;调用取数据N子程序MOV DL,0AhMOV AH,02HINT 21HMOV DI,LCMP DI,0JE ENDD ;判断是否输入错误CMP BP,01HJNA ANSWER1 ;BP=0/1MOV SI,OFFSET ANSMOV [SI],BPMNEXT: DEC BP ;N不断减1直到N=1CMP BP,1JE ANSWERNMOV C,0XOR BX,BXMOV CX,L ;长度放CXM1: MOV AX,[SI+BX]MUL BP ;上次运算结果与BP相乘ADD AX,CADC DX,0HMOV [SI+BX],AXMOV C,DXINC BXINC BX ;指向下一单元DEC CX ;目前长度减1JNZ M1CMP DX,0JZ MNEXTMOV AX,LINC AXMOV L,AX ;长度加1MOV [SI+BX],DXJMP MNEXTANSWER1:MOV SI,OFFSET ANS ;如果N=1、0,结果为1 MOV AX,1MOV [SI],AXANSWERN:MOV AH,2 ;回车MOV DL,0DHINT 21HMOV DX,OFFSET SS3MOV AH,9INT 21HCALL DISPLAY ;显示结果MOV DL,48H ;最后加一个H表示是16进制MOV AH,2INT 21HENDD: MOV AH,4CH ;返回DOSINT 21HRETSTART ENDP;----------------------------------------------------------------- GET PROC NEARNE1: MOV AH,01HINT 21HCMP AL,29H ;先判断是否输入正确0~FJNA WRONGCMP AL,39HJA N1SUB AL,30HJMP ADN1: CMP AL,40HJNA WRONGCMP AL,46HJA WRONGSUB AL,37HAD: MOV AH,00HMOV CL,4SHL BP,CLADD AX,BP ;将取到的值放入BP中MOV BP,AXJMP NE1WRONG: CMP AL,48H ;判断结束标志JNE TWRONGRETTWRONG: MOV DX,OFFSET SS2 ;判断为错误输入MOV AH,09HINT 21HMOV AX,0MOV L,AXRETGET ENDP;------------------------------------------------------------DISPLAY PROC NEARMOV BX,L ;结果长度放入BXSHL BX,1AG1: SUB BX,2 ;运算得到正确的偏移值MOV DX,[BX+SI]MOV CH,4 ;每次输出4位AG2: MOV AX,DXAND AH,0F0HPUSH BXMOV BX,OFFSET ZIXINGMOV AL,AHMOV CL,4SHR AX,CLXLAT ;查表得到输出字形POP BXPUSH DXMOV DL,ALMOV AH,02HINT 21HPOP DXSHL DX,CLDEC CHJNZ AG2CMP BX,0 ;判断是否输完JNE AG1RETDISPLAY ENDP;---------------------------------------------------------------------CODE ENDSEND START四、心得体会经过了为期一周的微机原理课程设计,我又重新掌握了微机原理汇编这门语言。
微机原理课程设报告
微机原理课程设计设计报告一、设计目的1、对微机原理课程中所学的理论知识进行进一步巩固和加深。
2、学会查阅相关手册与资料,培养独立分析与解决问题的能力。
3、学会使用屏幕编辑程序—MASM对汇编程序的编写,调试和运行。
4、了解对系统中DOS和BIOS的使用,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二、设计内容本次为期一周的课程设计,主要编写调试了5个程序,题目如下:1、字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
2、从键盘上输出数据并显示为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。
编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。
3、字符和数据的显示设计为掌握字符和数据的显示方法,编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接收字符。
如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数4、学生成绩名次表设计为进一步熟悉排序方法。
编写程序,将0-100之间的30个成绩存入首址为1000H的存储区中。
1000H+i表示学号为i的学生成绩。
编写程序使得在2000H 开始的区域排除名次表。
2000H+i为学号i的学生的名次。
三、具体设计程序设计一:字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
流程图程序DATA SEGMENTDAT1 DB 'INPUT STRING1:','$' ;$保持当前地址DAT2 DB 'INPUT STRING2:','$'DAT3 DB 'MATCH!',0AH,0DH,'$' ;0DH为回车ASCII码,0AH为换行ASCII码DAT4 DB 'NOT MATCH!',0AH,0DH,'$'STRING1 DB 50 ;最长长度DB ? ;实际长度DB 50 DUP(?) ;存储空间STRING2 DB 50DB ?DB 50 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA ;数据段设置MOV DS,AXMOV ES,AXMOV AH,09H ;字符串显示,显示DAT1,显示DS:DX MOV DX,OFFSET DAT1INT 21HMOV AH,0AH ;字符串缓冲输入,接收输入字符串MOV DX,OFFSET STRING1INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HMOV AH,09HMOV DX,OFFSET DAT2 ;显示DAT2INT 21HMOV AH,0AHMOV DX,OFFSET STRING2INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HLEA SI,STRING1 ;比较LEA DI,STRING2ADD SI,2 ;串1首字符[SI+2]ADD DI,2 ;串2首字符[DI+2]CLD ;DF=0MOV CX,50REPZ CMPSB ;CX≠0或ZF=1时重复,DS:SI和ES:DI所指的两个字节相同则继续比较,如果比较相等,ZF=1,则继续比较下一个字节,DI和SI分别加1(DF=0时),CX-1JZ MATCHNMATCH:MOV AH,09HMOV DX,OFFSET DAT4 ;输出不匹配INT 21HJMP NEXTMATCH: MOV AH,09HMOV DX,OFFSET DAT3 ;输出匹配INT 21HNEXT: MOV AH,4CHINT 21HCODE ENDSEND START小结在设计过程中,我把程序分成了宏定义显示回车,数据段定义,初始化,开始比较,匹配时再比较,不匹配时SI指向串1首字符,DI指向新字符重新开始比较等模块。
微机原理课程设计报告书
微机原理与应用课程设计目录一、设计任务1、计时秒表,具有分、秒和百分之一秒的计时功能。
2、可以在屏幕中央显示计时结果,屏幕显示彩色图案和文字。
3、秒表具有键控启/停功能,而且可以随时通过键盘复位,清零。
二、设计原理1、HALT<启动子程序>2、DIS〔宏定义——苹果显示程序3、DISS〔宏定义——字符串的输出4、CLOUR〔字体颜色设置程序5、IOSET<设置光标位置子程序>6、GO<初始化显示子程序>7、TIME<延时子程序>8、TRAN<压缩BCD码转ASCII码程序>9、复位、停止等功能的实现三、流程图a)主程序流程图b)压缩BCD转ASCII码子程序流程图c)延时子程序流程图四、程序段五、程序调试六、程序运行结果七、心得体会八、参考文献一、设计任务:1.计时秒表,具有分、秒和百分之一秒的计时功能,并可以在屏幕中央显示计时结果。
2.屏幕显示彩色图案和文字。
3.秒表具有键控启/停功能,而且可以随时通过键盘复位,清零。
二、设计原理:本程序的主要设计原理是用主程序完成百分之一秒与秒之间的转换,显示计时结果,实现暂停,暂停再启动,复位,复位再启动的功能,并通过调用一些附加程序,缩减主程序的长度,提高运行效率和精度,现将用到的所有附加程序的原理及其在运行过程中所起到的作用汇总如下:1.DIS〔宏定义——苹果显示程序通过宏调用,实现苹果图案的显示。
在宏定义里,设置一个形参变量,作为移动光标的位置,在下面调用宏中,给予变量X不同的实参,输出苹果图案。
2.DISS〔宏定义——字符串的输出原理同上。
3.CLOUR〔字体颜色设置程序通过字体颜色设置程序,实现屏显字体颜色的改变。
当改变BX值时,字体颜色会改变。
4.HALT<启动子程序>通过启动子程序,实现计时的开始,当从键盘输入一个字符时,判断是否等于S,如果不等,则在循环执行启动子程序中动态等待,直到输入的字符为S时,计时开始。
微机原理课程设计报告参考模板
一、设计任务及要求1.熟悉手工焊接的常用工具的使用,能够独立完成简单电子产品的安装与焊接,熟悉电子产品的安装工艺和生产流程。
2.熟悉常用电子器件的类别、型号、规格、性能及其使用范围,比如用色标法确定电阻大小等。
3.能够熟练使用万用表进行测量。
4.组装一个六管超外差式收音机。
二、设计目的课程设计是理论学习的延伸,是使学生掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。
本次课程设计一方面通过对收音机原理的理解和对收音机的组装,使我们加深对理论知识的理解,另一方面对课堂所学理论知识作一个总结和补充。
三、设计内容1.超外差收音机原理所谓超外差式,就是通过输入回路先将电台高频调制波接收下来,和本地振荡回路产生的本地信号一并送入混频器,再经中频回路进行频率选择,得到一固定的中频载波(如:调幅中频国际上统一为465KHz或455KHz)调制波。
超外差的实质就是将调制波不同频率的载波,变成固定的且频率较低的中频载波。
在广播、电视、通讯领域,超外差接收方式被广泛采用。
在超外差的设计中,本振频率高于输入频率。
用同轴双联可变电容器,使输入回路电容C1-2和本振回路电容C1-1同步变化,从而使频率差值始终保持近似一致,其差值即为中频,即:如接收信号频率是:600kHz,则本振频率是1055kHz;1000kHz,则本振频率是1455kHz;1500kHz,则本振频率是1955kHz;由于谐振回路谐振频率,f 与C不成线性变化,因此必须有补偿电容对其特性进行修正,以获得在收听范围内f与C近似成线性变化,保证f本振-f信号=f中频为一固定中频信号。
超外差方式使接收的调制信号变为统一的中频调制信号,在作高频放大时,就可以得到稳定且倍数较高的放大,从而大大提高收音机的品质。
比较起来,超外差式收音机具有以下优点:(1)接收高低端电台(不同载波频率)的灵敏度一致;(2)灵敏度高;(3)选择性好(不易串台)。
软件微机原理课程设计报告
软件微机原理课程设计报告一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微型计算机的硬件组成及工作原理。
2. 学会分析微机系统中各组成部分的功能和相互关系。
3. 掌握汇编语言编程的基本方法,能够编写简单的汇编程序。
技能目标:1. 能够运用所学知识,设计简单的微机控制系统。
2. 培养学生动手实践能力,能够进行基本的硬件连接和调试。
3. 提高学生的问题分析能力,学会运用理论知识解决实际问题。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学生的学习热情。
2. 培养学生的团队合作意识,提高沟通与协作能力。
3. 引导学生认识科技发展对社会进步的重要性,树立正确的价值观。
课程性质分析:本课程为软件微机原理课程设计,旨在帮助学生将理论知识与实际应用相结合,提高学生的实践能力。
学生特点分析:学生为高中年级学生,具备一定的计算机基础,对新鲜事物充满好奇心,但可能缺乏实际动手操作经验。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 通过小组合作,培养学生的团队协作能力。
3. 注重启发式教学,引导学生主动思考,提高问题解决能力。
二、教学内容1. 微机原理概述:介绍微型计算机的发展历程、硬件组成及工作原理,对应课本第一章内容。
- 硬件组成:CPU、存储器、输入输出接口等。
- 工作原理:指令执行、数据存储与传输等。
2. 汇编语言编程:讲解汇编语言的基本语法、指令系统及编程方法,对应课本第二章内容。
- 基本语法:寄存器、指令格式、操作数等。
- 指令系统:数据传输、算术运算、逻辑运算等。
3. 硬件连接与调试:学习微机系统中各硬件组件的连接方法,进行基本调试,对应课本第三章内容。
- 硬件组件:内存、I/O接口、中断控制器等。
- 调试方法:静态调试、动态调试等。
4. 微机控制系统设计:结合所学知识,设计简单的微机控制系统,对应课本第四章内容。
- 控制系统组成:输入、处理、输出等模块。
微机原理课程设计报告
目录一、课题任务 (2)二、程序功能描述及程序流程 (3)1、程序功能描述 (3)2、程序流程图 (3)三、程序源代码及注释 (4)四、DOS/BIOS功能调用,文件列表清单 (6)五、源程序调试 (9)六、调试中出现的问题 (12)七、总结 (12)一、课题任务1·要求利用80x86汇编语言BIOS中断调用的方法,通过‘*’字符设计自己的名字,并在显示器上用6种以上的颜色显示出来。
2·分析1)BIOS中断调用:BIOS常驻ROM,独立于DOS,可与任何操作系统一起工作。
它的主要功能是驱动系统所配置的外部设备,如磁盘驱动器、显示器、打印机、及异步通讯借口等。
通过INT10H~1AH向用户提供服务程序的入口,使用户无需对硬件有深入的了解,就可以完成对I/O设备的控制与操作。
BIOS中断调用与DOS功能调用类似。
2)图形设计:掌握BIOS中断调用INT 10H的13H功能。
注意13H号功能入口参数的要求。
3)颜色显示:在彩色显示屏幕上每个字符在存储中用两个字节表示。
一个字节保存字符的ASCII码,另一个字节保存字符的属性。
BIOS中断调用INT 10的13H号功能是显示字符串,字符的属性在BL中。
二、程序功能描述及程序流程1·程序功能使得自己的名字可以在显示器上用6种以上的颜色显示出来。
2·程序流程图三、程序源代码及注释ROW =0 ;显示信息的行号COLUM=00 ;列号ESCKEY=1BH ;ESC键的ASCII码制;数据段DSEG SEGMENTMESS DB '+-----------------------------------------------------------------------------+',0DH,0AHDB '************ ** ** *** ||',0DH,0AHDB ' * ** ** * ||',0DH,0AHDB ' * ** ** *******************************||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB '************ ** ** * *||',0DH,0AHDB '* ** ** ************** ||',0DH,0AHDB '* *** ** ||',0DH,0AHDB '* ************** ** ||',0DH,0AHDB '* *** ********************** ||',0DH,0AHDB '************ *** ** ||',0DH,0AHDB ' ** ** * ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' **** **** ** **** ||',0DH,0AHDB ' *** *** ** *** ||',0DH,0AHDB ' ** ** *** ** ||',0DH,0AHDB ' * * ***** ||',0DH,0AH MESS_LEN=$-OFFSET MESS ;显示信息长度COLORB DB 07H,01H,0FH,70H,74H,04H,0EH ;颜色COLORE LABEL BYTEDSEG ENDS;代码段CSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEGSTART: MOV DI,OFFSET COLORB-1 ;颜色指针初值NEXTC:MOV AX,DSEGMOV DS,AX ;设置数据段段值MOV ES,AXINC DI ;调整颜色指针CMP DI,OFFSET COLORE ;是否超过指定的最后一种颜色JNZ NEXTE ;否MOV DI,OFFSET COLORB ;是,重新指定第一种颜色NEXTE:MOV BL,[DI] ;取颜色MOV SI,OFFSET MESS ;取显示信息指针MOV CX,MESS_LEN ;取显示信息长度MOV DH,ROW ;置显示开始行号MOV DL,COLUM ;置显示开始列号CALL ECHO ;显示MOV AH,0INT 16HCMP AL,ESCKEY ;是否为ESC键JNZ NEXTC ;不是,继续MOV AX,4C00H ;结束INT 21HECHO PROC NEARMOV AX,0B800HMOV DS,AXMOV AL,80 ;计算显示开始位置偏移MUL DH ;偏移=(行号*80+列号)*2 XOR DH,DHADD AX,DXADD AX,AXXCHG AX,BXMOV AH,AL ;属性值保存到AH寄存器JCXZ ECHO2 ;显示信息长度是否ECHO1:MOV AL,ES:[SI] ;取一要显示字符代码INC SI ;调整指针MOV [BX],AX ;送显示存储区,即显示INC BX ;准备显示下一个字符INC BXLOOP ECHO1 ;循环显示ECHO2:RET ;返回ECHO ENDPCSEG ENDSEND START四、DOS/BIOS功能调用1.文本显示方式:所谓文本显示方式是指以字符为单位的显示方式。
微机原理课程设计报告
微型计算机技术课程设计指导教师:班级:姓名:学号:班内序号:课设日期:_________________________目录一、课程设计题目错误!未定义书签。
二、设计目的错误!未定义书签。
三、设计内容错误!未定义书签。
四、设计所需器材与工具3五、设计思路错误!未定义书签。
六、设计步骤(含流程图和代码)错误!未定义书签。
七、课程设计小结36一、课程设计题目:点阵显示系统电路及程序设计利用"汇编语言与微型计算机技术"课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。
二、设计目的1.通过本设计,使学生综合运用"汇编语言与微型计算机技术"、"数字电子技术"等课程的内容,为今后从事计算机检测与控制工作奠定一定的根底。
2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。
三、设计内容1.点阵显示系统启动后的初始状态在计算机显示器上出现菜单:dot matrix display system1.←left shift display2.↑up shift display3.s stop4.Esc Exit2.点阵显示系统运行状态按计算机光标←键,点阵逐列向左移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标↑键,点阵逐行向上移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标s键,点阵停顿移动并显示当前字符。
3.完毕程序运行状态按计算机Esc键,完毕点阵显示系统运行状态并显示"停〞。
微机原理课程设计报告
目录一.设计内容 (1)二.设计原理及方案 (1)三.汇编源程序代码 (2)四.实施结果 (10)五.课程设计体会 (13)六.参考文献 (14)一.设计内容利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计波形输出的切换方式。
主要功能:本题用到8255,dac0832芯片1.产生四种波形2.键盘切换波形3.数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波)二.设计原理及方案设计原理:D/A转换器(DAC0832)产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如三角波、正弦波、锯齿波、方波等。
8255A实现波形切换:从8255的C口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出三角波、正弦波、锯齿波、方波等。
通过键盘切换波形,DAC0832输出各种波形,同时共阴极数码管显示按键号:1-三角波,2-正弦波,3-锯齿波,4-方波。
电路原理图(设计连接图):三.汇编源程序代码;***********************功能说明*****************************;题目二利用D/A设计波形发生器;利用D/A设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,;至少设计一种波形切换方式。
;功能:本项目用到8255,DAC0832芯片; 1 产生四种波形; 2 键盘切换波形; 3 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波);************************主程序******************************io3 EQU 600h ;8255io4 EQU 800h ;DAC 0832;********************************数据段定义data segmentsin_wave db 200,195,181,159,131db 100,69,41,19,5,0,0 ;正弦波幅值LED DB 06H,5BH,4FH,66H ;共阴极段码表data ends;********************************code segmentassume cs:code,ds:datastart: mov ax,data ;建立DS段地址 mov ds,axcall jian;********************************三角波san: mov Bx,255SAN3: MOV CX,BXmov al,0mov dx,io4san1: out dx,al ;三角波形上升段call delayinc alloop san1mov cx,BXmov al,BLmov dx,io4san2: out dx,al ;三角波形下降段 call delaydec alloop san2call jian;************************************正弦波sin: mov cx,11mov bx,0mov dx,io4lea si,sin_wavesin1: mov al,[si][bx] ;正弦波下降段 out dx,alcall delay1inc bxloop sin1mov cx,11sin2: mov al,[si][bx] ;正弦波上升段 out dx,alcall delay1dec bxcall jian;***************************************锯齿波juchi: mov Bx,255juchi1: mov cx,bxmov al,blmov dx,io4juchi2: out dx,al ;下降沿call delaycall delaydec alloop juchi2call jian;***************************************方波fang: mov Bx,255fang1: mov al,bl ;高电平段mov dx,io4out dx,alcall delay1MOV al,0 ;低电平段out dx,alcall delay1;****************************************延时delay proc ;延时子程序一push axpush bxpush cxpush dxmov cx,50lp0: noploop lp0pop dxpop cxpop bxpop axretdelay endpdelay1 proc;延时子程序二push axpush bxpush cxpush dxmov cx,1250loop lp1pop dxpop cxpop bxpop axretdelay1 endp;****************************************键盘选波形jian proc nearjian1: mov al,10001000B ;c口高四位输入MOV DX,io3+6HOUT DX,AL ;送控制字MOV AL,0MOV DX,io3+4HOUT DX,AL;c口低四位为0即行输出为0 nokey: in al,dx ;读c口高四位and al,0f0H ;屏蔽c口低四位cmp al,0f0Hjz nokey ;无键按下则循环call delay1 ;延时in al,dxshr al,1 ;列信息存于al低四位 shr al,1shr al,1shr al,1mov bl,0 ;初始列变量BL为0mov cx,4jian2: shr al,1 ;逐列检测,找出为0信号jnc jian3inc blloop jian2jian3: mov al,10010001b ;c口低四位输入mov dx,io3+6hout dx,al ;送控制字mov al,0mov dx,io3+4hout dx,al ;c口高四位为0即列输出为0in al,dxand al,0fh ;屏蔽高四位cmp al,0fhjz jian1 ;出错从头来mov bh,0 ;初始行变量为0mov cx,4jian4: shr al,1jnc jian5inc bh ;初始行变量BH为0loop jian4jian5: shl bh,1shl bh,1add bh,bl ;BH为键号MOV CH,BH ;保存键号在ch中MOV AL,BH ;数码管显示波行号LEA BX,LED ;1三角波2正弦波3锯齿波4方波 XLA Tout dx,alMOV DX,IO3+2OUT DX,ALMOV BX,155 ;幅值一MOV DX,IO3IN AL,DXcmp ch,0jz sancmp ch,1jz sincmp ch,2jz juchicmp ch,3jz fangretjian endpcode endsend start四.实施结果(1)键盘选择1——三角波(2)键盘选择2——正弦波(3)键盘选择3——锯齿波:(4)键盘选择4——矩形波五.课程设计体会在为期近两周的微机原理课程设计中,我们小组利用所学微机的理论知识进行软硬件整体设计,同时锻炼了我们理论联系实际,提高我们的综合应用能力。
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理设计报告
微机原理课程设计题目: I/O接口卡设计学院:仪器与电子学院专业:测控技术与仪器指导教师:**组员姓名:目录一.设计题目及设计规定1.设计内容2.设计规定二.设计总体方案三.重要元件1.IBM PC/XT总线简介2.ISA总线简介3.8255芯片简介4.驱动器5.LED显示屏四.工作原理五.硬件电路六.程序设计及流程图1.流程图2.程序设计七.设计心得八.参照文献一、设计题目及设计规定:1.设计一块I/O卡,该卡具有3个8位I/O口(A、B、C口),运用该I/O卡控制该卡控制一种四位旳LED显示屏,该卡插在PC机旳IMB-PC扩展总线插槽上(ISA),选用8255接口芯片2.设计规定:画出电路原理图,阐明工作原理,编写运用该接口卡对键盘上键入旳数字进行显示旳程序(当回车键按下前,假如键入旳数字旳次数不不大于4时显示最终旳4位数)二.设计整体方案该接口卡旳主芯片是8255芯片,将ISA总线上旳地址线A0-A19通过译码作为8255旳片选信号,IOR、IOW分别作为8255旳读写信号。
四位LED显示屏采用共阴极接法,将8255旳A端口旳8个引脚通过驱动器与LED旳a-h相连,用C端口旳低四位来控制那个LED亮,B端口不使用。
三.重要元件1.IBM PC/XT总线简介总线在PC/XT机旳底板上共有8个插头,称为IMB PC/XT总线。
PC/XT 总线在每个插槽(扩展槽)配有62个引脚代表多种不同样旳信号。
IBM PC/XT总线旳62条引线包括20位地址线、8位数据线、21根控制线、2根状态线和11根辅助线及电源线。
每一种插槽对应旳引脚均有相似旳意义,因此所有旳接口卡可插于任何一种插槽上。
引脚间隔为2.54mm。
2.ISA总线简介ISA总线是IBM PC/AT机(CPU是80286)所用旳系统总线,这是一种16位兼8位旳总线原则。
假如忽视原则化细节,则可认为16位ISA总线就是PC/AT总线。
由于IBM PC/AT与IBM PC、IBM PC/XT机(CPU 都是8088)所用旳Pc总线兼容,因此可认为8位ISA总线(16位ISA总旳低8位部分)就是PC总线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计报告一、设计目的培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。
通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。
掌握8255、8259、8253等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8086微处理器完成了电子秒表系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、设计内容设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
可用开关控制,也可用按键控制三、设计要求1、基本要求:1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。
其中数字0控制清零,数字1控制继续和退出。
2、提高要求:1)秒表可以分组存储、批量显示、倒计时等。
2)采用图像显示,界面精美,设置报警声等四、设计原理与硬件电路1、整体设计思想使用8253工作在方式0计数,对1/100S计数,并讲计数值写入bl中并与100比较若不相等,则将计数值装换为10进制后送8255控制端显示,如相等则1S计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则1min计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则计数程序加1之后产生溢出,跳转清零程序将计数清零,同时数码管清零。
2、使用各芯片的作用及工作原理1)定时器/计数器8253用系统8253定时器提供的55ms定时单位,设计秒表定时程序。
有关系统定时方法:PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK 信号,频率:f=1.1931816MHz。
定时器0输出方波的频率:fout=1.1931816/65536=18.2Hz。
输出方波的周期Tout=1/18.2=54.945ms。
8253A每隔55ms引起一次中断,作为定时信号。
可用55945ms作基本计时单位。
用BIOS调用INT 1AH可以取得该定时单位。
例:1秒=18.2 (计时单位)8253的引脚图及硬件连接图如下图示:《8253引脚图》硬件连接图当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8 253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。
计数器(0 ~ 2)即三个计数器/定时器通道。
每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。
作定时器用:其CLK端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。
采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值。
控制功能表WR A1A0功能CSRD0 1 0 0 0 写计数器00 1 0 0 1 写计数器10 1 0 1 0 写计数器20 1 0 1 1 写控制字寄存器0 0 1 0 0 读计数器00 0 1 0 1 读计数器10 0 1 1 0 读计数器20 0 1 1 1 无操作1 X X X X 禁止使用0 1 1 X X 无操作每个通道:CLK 计数脉冲或标准脉冲输入端GATE 允许端,当GATE=1时允许计数UT 计数值为0时输出一个脉冲由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:(1)数据总线缓冲器(8位、三态、双向);(2) 读/写控制逻辑;CS:片选信号,低电平有效;RD:读信号,低电平有效;WR:写信号,低电平有效A1A0:端口选择信号(3) 三个通道( 0 ~ 2),由A0,A1控制选择;(4) 一个控制寄存器;内部结构及引脚图:2)用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255 工作方式控制字和C口按位置位/ 复位控制字格式如图所示:3. 锁存器27374LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面介绍一下他的管脚图功能表等资料。
(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.74ls273管脚功能:1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
4. 数据收发器245当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)*DIR=“1”,信号由 A 向B 传输;(发送)当/CE为高电平时,A、B均为高阻态5、译码器74ls15474ls154为4—16线制译码器其引脚图如下图所示6. 7段数码管数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
开 始等于1S不等等于59不等等于59不等等于231S 计数60S 计数60min 计数24h 计数BVD 处 理产 生 溢 出清 空BCD 码调整指令10进制显示a1 equ 0000hb1 equ 0002hc1 equ 0004hctr1 equ 0006h ;8255各端口地址a2 equ 0200h ;8253计数器0端口地址ctr2 equ 0206h ;8253控制端口地址a3 equ 0100hdata segment; keynum db 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH, 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77Htab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H ,7CH,39H,5EH,79H,71Hbuf db 0,0,0,0buf1 db 0,0,0,0,0,0,0,0buf2 db 0,0;前为第一开关次数buf3 db 80 dup(?)data endscode segment 'code'assume ds:data,cs:codestart: mov ax,datamov ds,ax;设中断入口地址设置mov ax,0mov es,axmov di,08mov ax,offset intr_keycldstoswmov ax,seg intr_keystoswmov ax,datamov es,ax;8255写入控制字mov al,10001001b ;A口B口输出显示,C口高四位低四位输入mov dx,ctr1out dx,aln3: call jishujmp n3n2: lea si,buf2mov bh,00hmov bl,1h[si]lea di,buf3add di,bxadd bl,8mov 1h[si],bllea si,buf1cldmov cx,8rep movsbn4: call disjmp n4n5: lea si,buf2mov bh,00h微机原理课程设计报告mov bl,1h[si]cmp bl,0jz n1lea di,buf1sub bl,8mov 1h[si],bllea si,buf3add si,bxcldmov cx,8rep movsbn6: call disjmp n6n1: call qinlinjmp n1;jmp startjishu proc near ;计数子程序 lea si,bufmov bl,[si]cmp bl,100jnz s6s1: mov bl,0mov [si],blmov ah,1h[si]cmp ah,59jz s2inc ahmov 1h[si],ahjmp s6s2: mov ah,0mov 1h[si],ahmov ah,2h[si]inc ahmov 2h[si],ahjmp s6s6:call chumov cx,3s5:call disloop s5call delay1sinc byte ptr[si]retjishu endpchu proc ;rukou al ;数处理子程序 push sipush bxmov bl,4lea di,buf1lea si,bufnext:lodsbmov ah,00mov cl,10div clxchg ah,alstosbmov al,ahstosbdec bl微机原理课程设计报告 jnz nextpop bxpop siretchu endpdis proc near ;显示buf1中的值push bxpush cxlea bx,tablea di,buf1mov cx,8mov ah,7Fhloop1: mov al,[di]xlat ;换码mov dx,a1out dx,almov dx,b1mov al,ahout dx,almov bh,1call delaycall qplea bx,tabror ah,1inc diloop loop1pop cxpop bxretdis endp delay1s proc near ;8253延时子程序 push dxpush axmov dx,ctr2 ;8253 控制mov al,00110000bout dx,al ;8253计数器0控制字方式0 out端作为中断请求信号mov dx,a2mov al,01hout dx,almov al,00hout dx,almov dx,a3M1: in al,dxtest al,01hjz M1pop axpop dxretdelay1s endpqp proc near ;清频子程序mov al,0ffhmov dx,b1out dx,alretqp endpdelay PROC NEAR ;内部延时之程序PUSH bx微机原理课程设计报告PUSH CXwait0: MOV CX,06hwait1: LOOP wait1DEC bhJNZ wait0POP CXPOP bxRETdelay ENDPintr_key proc near ;中断服务子程序 call keytest al,2hjz n1test al,4hjz n5lea di,buf2mov bh,[di]inc bhmov [di],bhtest bh,1hjnz n2jmp n3iretintr_key endpqinlin proc ;键盘清零子程序 mov ax,0 lea di,bufmov cx,14cldrep stosbcall disqinlin endpkey proc ;读取键盘程序 mov dx,c1in al,dxretkey endpcode endsend start七、程序及硬件系统调试情况按下暂停键实现暂停功能继续计数后按下清零键实现清零功能八、设计心得经过这次课程设计,我觉得我有了很大的收获,:1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。