微机原理课程设计报告39543

合集下载

微机原理课设报告

微机原理课设报告

中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握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(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。

微机原理课程设计报告

微机原理课程设计报告

心得与体会这次课程设计历时两个星期,在整整两个星期的日子里,我学到了很多很多的东西,不仅巩固了以前学过的知识,而且还学到了很多书本上所没有学到过的知识。

首先,通过一段时间的上机练习,对Matlab仿真软件有了很好地掌握,能较熟练地运用Simulink绘制一些简单的仿真模型并正确地设置一些参数,对其仿真的过程也有了大致的了解;其次,就是通过本次课程设计,对程序语言有了更好的掌握,通过对完整程序的阅读和理解,使我对程序的设计和运行过程有了更加全面的了解;还有就是对信号的传输过程和信噪比以及误码率都有了更深地理解,对BPSK和QPSK有了更好的掌握;特别是BPSK在无噪声情况下和在加性高斯白噪声的情况下的实现及输出波形有了更深刻的印象。

通过本次课程设计最大的收获可能就是使我懂得了理论联系实际是很重要的,我们在书本上学到的知识是很基础的,而且我们对知识的掌握也是很有限的。

通过实践,在加强我们独立思考以及动手能力的同时还加深了我们对知识的理解、加强了我们对知识运用的能力。

在实践中我们可以发现自身的不足,可以通过以后的学习及锻炼及时地改正。

当然在本次课程设计过程中遇到了很大的困难,在实践的过程中遇到了各种各样的问题,比如起先在设置模块的参数时比较困难,仿真的效果也比较差;还有就是在编写和修改程序的时候也会遇到一些难题,最后,在老师的指导下以及和在和同学的讨论过程中解决了这些困难和问题。

Z4assume cs:code, ds:datasdatas segmenthex db 4 dup (0)error db 13,10,'input error$' datas endscode segmentstart:mov ax, datasmov ds, axmov ah, 1hmov bx, offset hexjmp ts0up0:inc bxts0:cmp bx, offset hex + 4jge next0int 21hmov byte ptr [bx], aljmp up0next0:mov cl, 4mov bx, offset hexxor dx, dxjmp ts1up1:inc bxts1:cmp bx, offset hex + 4jge blankmov al, byte ptr [bx]cmp al, '0'jl errcmp al, '9'jle below_tencmp al, 'A'jl errcmp al, 'F' jle above_tencmp al, 'a' jl errcmp al, 'f' jg errabove_ten: and al, 0fh add al, 9 below_ten: and al, 0fh shl dx, cl add dl, al jmp up1blank:mov bx, dxmov ah, 2h mov dl, 13int 21hsub dl, 3int 21hxor cx, cx mov ah, 2h stcnext1:rcr cx, 1jc donetest bx, cx jnz onesmov dl, '0' int 21hjmp next1 ones:mov dl, '1' int 21hjmp next1err:mov ah, 9hmov dx, offset errorint 21hdone:mov ax, 4c00hint 21hcode endsend startZ3DATA SEGMENTBUFF1 DB 100LEN1 DB ?STR1 DB 100 DUP(?)BUFF2 DB 100LEN2 DB ?STR2 DB 100 DUP(?)DAT1 DB 0AH,0DH,'Please input character string1','$' DAT2 DB 0AH,0DH,'Please input character string2','$' DAT3 DB 'MATCH','$'DAT4 DB 'NO MATCH','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX, OFFSET DAT1MOV AH,09HINT 21HMOV DX,OFFSET BUFF1MOV AH,0AHINT 21HMOV DX,OFFSET DAT2MOV AH,09HINT 21HMOV DX,OFFSET BUFF2MOV AH,0AHINT 21HMOV CL,LEN2MOV BL,LEN1CMP CL,BLJNZ LP2LP0: MOV SI,0MOV DI,0LP3: MOV AL,STR1[SI]CMP AL,STR2[DI]JNZ LP2INC SIINC DIMOV AL,SICMP AL,CXJNZ LP3LP1:LEA DX,DAT3MOV AH,09HINT 21HJMP LP4LP2: LEA DX,DAT4MOV AH,09HINT 21HLP4: MOV AH,4CHINT 21HCODE ENDSEND STARTZ2CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTAR1 DB 'INPUT STRING,THE END FLAG IS $','$' BUFF DB 20LEN DB ?STR DB 20 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR DI,DILEA DX,AR1MOV AH,09HINT 21HLEA DX,BUFFMOV AH,0AHINT 21HMOV CL,LENAND CX,00FFHBJ: MOV AL,STR[DI]INC DICMP AL,30HJB LP2CMP AL,39HJG LP2INC BHADD AL,30HLP2: MOV DL,ALMOV AH,02HINT 21HLOOP BJCRLFADD BH,30HMOV DL,BHMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND STARTZ1CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTBUFF DB 100LEN DB ?STR DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXMOV SI,0LP1: LEA DX,BUFFMOV AH,0AHINT 21HCRLFMOV CL,LENAND CX,00FFH LP0: MOV AL,STR[SI] CMP AL,61HJB DISPCMP AL,7AHJG DISPSUB AL,20HDISP: MOV DL,AL MOV AH,2INT 21HINC SILOOP LP0MOV AH,4CH INT 21HCODE 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指向新字符重新开始比较等模块。

微机原理实验报告(江苏大学)

微机原理实验报告(江苏大学)

微机原理课程设计报告专业:学号:姓名:一:课程设计目的结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。

学会使用命令调用DOS观察程序运行结果,学会使用汇编语言编写程序,弄懂汇编程序的执行过程,弄懂汇编程序的上机过程以及如何运用MASM软件进行汇编程序的调试。

二:设计内容1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。

详细源程序如下:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTS1 DB'MATCH',0DH,0AH,'$'S2 DB'NO MATCH',0DH,0AH,'$'S3 DB'INPUT STRING1:',0DH,0AH,'$'S4 DB'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB?STRING2 DB 81 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET S3INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET S4INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFMOV SI,OFFSET STRING1MOV AH,[SI-1]MOV DI,OFFSET STRING2MOV AL, [DI-1]CMP AH,ALJGE GE1MOV CL,ALGE1: MOV CL,AHKKK: MOV AL,[SI]mov AH,[DI]CMP aH,ALJNZ NE1INC SIINC DILOOP KKKMOV AH,09HMOV DX,OFFSET S1INT 21HJMP EXITNE1: MOV AH,09HMOV DX,OFFSET S2INT 21HEXIT: MOV AX,4CHINT 21HCODE ENDSEND START以下是程序运行结果:2.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

微机原理课程设计报告文库

微机原理课程设计报告文库

微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。

技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。

情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。

课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。

学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。

教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。

二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。

2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。

3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。

4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。

微机原理课程设计报告

微机原理课程设计报告

扬州大学微机原理课程设计报告题目键控音乐播放器班级计科学号姓名指导教师李云成绩课程设计的目的和意义微机原理及应用是一门非常重要的课程,且实践性较强。

要求学生熟悉计算机的组成、内部结构、汇编语言程序设计、常用接口电路的使用,并具有一定的系统设计、开发、调试的能力。

课程设计是对学生的一种基本素质训练的较好形式,通过课程设计加强学生的实践能力、动手能力、和学习能力。

学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

课程设计的要求1.明确课设任务,复习与查阅有关资料2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。

3.按设计要求画出详细的电路接线图,并注名芯片等器件的名称和管脚。

4.做硬件内容的同学必须将所做的课设内容通过指导教师签字后,方可进行接线和调试。

5.写出完整的程序。

1.2.设计并实现一个键控音乐播放器,要求如下:3.①通过计数器8253产生方波信号作为音阶频率发生器,驱动喇叭放音。

4.②由并行接口8255控制扬声器的启停,根据不同按键,播放不同的音乐。

总体设计方案所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。

不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。

而我们学过的有计数器可以产生各种频率,所以我们主要采用计数器8253产生各音符,用8255并行接口来控制扬声器的开关,达到播放音乐的功能。

把一个周期的波形分成32份,然后每份给8253一个值让他转换成模拟信号,不同的频率可以用8253计数器控制,比如要产生261Hz的频率,使用1MHz的话,周期就为1/261=3.83ms,分成32份,每份间隔时间就是3.83ms/32=0.12ms,换句话说就是送计数器0的初值为1M/261/32=120次。

微机原理课程设计报告

微机原理课程设计报告

微机原理课程设计报告课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助!微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。

当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。

但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。

我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。

看着自己做出来的东西,心里面的感觉真的很好。

虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。

很有成就感。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。

但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。

对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。

讨论某一部分原理时又要涉及到其它部分的工作原理。

这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。

所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

微机原理课程设计报告

微机原理课程设计报告

微机原理与接口技术课程设计课程题目:双机通信学院:专业:小组成员:指导老师:目录一设计简介 (3)二计算机串行通信基础 (3)三硬件及原理 (5)180C51的串行口 (5)2 串行口控制和中断控制 (7)3 程序流程 (8)4 Protuse仿真实验电路图 (9)5 程序清单 (9)四实验结果 (14)五实验心得 (14)六参考书籍 (14)一设计简介AT89C51是ATMEL公司融入FLASH存储技术推出的单片机,它本身带有4K 的内存储器。

可在编程器上实现闪烁式电擦写达几万次以上。

完全兼容MCS-5 1系列单片机的所有功能。

此实验是由C语言编程,基于protuse进行仿真测试,得到试验结果。

二计算机串行通信基础计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。

通信有并行通信和串行通信两种方式。

在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。

计算机通信:可以分为两大类:并行通信与串行通信并行通信通常是将数据字节的各位用多条数据线同时进行传送并行通信的特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂异步通信基本概念:异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。

为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。

异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。

异步通信的数据格式 :异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

微机原理课程设计报告

微机原理课程设计报告

微机原理课程设计报告班级:电信科技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、秒表具有键控启/停功能,而且可以随时通过键盘复位,清零。

二、设计原理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. 掌握汇编语言编程的基本方法,能够编写简单的汇编程序。

技能目标: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 姓名:2013 年 1 月 11 日一、目的:结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。

学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。

二、内容与要求:1.字符串匹配设计为掌握提示信息的设置和输入方法及读取键入信息的方法。

编写程序实现两个字符串比较。

如相同,则显示“MATCH”,否则,显示“NO MATCH”。

2.响铃设计为掌握响铃的使用方法,编写程序,从键盘接受输入字符,如是数字N则响铃N此,如不是数字则不响。

3.将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。

4.排序设计为掌握用汇编语言编写排序程序的思路和方法。

编写程序,从首地址为1000H开始存放50个数,要求设计程序将这些数从小到大排序,排序后的数,仍放在该区域中。

下面着重介绍程序2——响铃设计:三、流程图:四、程序代码及注释DATA SEGMENTD1 DB 'PLEASE INPUT A NUMBER:','$'D2 DB 0AH,'ERROR!','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,D1MOV AH,9INT 21HMOV AH,1INT 21HCMP AL,30H ;键盘输入值与0比较JB L2CMP AL,39H ;键盘输入值与9比较JA L2AND AL,0FHCMP AL,0JE OVERMOV CL,ALL1: MOV DL,07H ;实现响铃MOV AH,2INT 21HDELAY: MOV DX,0FFFFH ;延迟功能TI1: MOV AX,0FFFFH ;循环嵌套实现延迟功能TI2: DEC AXJNZ TI2DEC DXJNZ TI1DEC CL ;通过CL控制响铃次数 JNZ L1JMP OVERL2: LEA DX,D2MOV AH,9INT 21HOVER: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START五、心得体会:为期一周的微机原理课程设计已经接近尾声了,通过这次近一周的上机实训,使我们对于汇编语言的运用有了更加深刻的认识,同时在与老师和同学的不断沟通交流中自己学到了很多知识,也纠正了以往的一些错误,可谓是受益匪浅。

微机原理课程设计报告

微机原理课程设计报告

目录一.设计内容 (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——矩形波五.课程设计体会在为期近两周的微机原理课程设计中,我们小组利用所学微机的理论知识进行软硬件整体设计,同时锻炼了我们理论联系实际,提高我们的综合应用能力。

微机原理课设报告

微机原理课设报告

河北科技大学课程设计报告学生姓名:学号:专业班级:电子信息工程课程名称:微型计算机原理及应用技术学年学期: 2 0 11 —2 0 12 学年第 1 学期同组人员:指导教师:赵艳2 0 13年12月课程设计成绩评定表目录一、设计目的----------------------------------------4二、设计任务与要求----------------------------------4三、设计内容----------------------------------------5四、实施效果----------------------------------------10五、设计体会----------------------------------------12六、参考资料----------------------------------------101、掌握汇编语言,会利用汇编语言编写一定功能的程序;2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;3、熟悉常用的DOS功能;4、小组合作完成设计题目。

二、设计任务与要求:1、设计密码校验程序;2、程序设计基本要求:1)菜单内容包括:①输入密码(字符串);②密码校验;③退出。

2)输入字符串选择该项后,可以输入一个字符串。

该字符串作为密码校验中的已知密码。

3)密码校验输入字符串,若所输入的字符串与密码不一致则提示:“PASSWORD ERROR!”,并重新提示输入密码,当错误输入三次时退出软件返回DOS。

若所输入的字符串与密码一致则提示:“PASSWORD CORRECT!”,并返回主菜单。

4)在主菜单中选择退出项,则结束程序返回DOS。

1、使用的DOS功能:1) 显示字符串 MOV AH,09HINT 21H ;入口参数DS:DX=缓冲区2) 键盘输入一个字符 MOV AH,01HINT 21H ; AL=输入的字符3)终止当前程序并返回调用程序 MOV AH,4CHINT 21H ;AL=退出码4)输入字符串 MOV AH,0AHINT 21H ;入口参数DS:DX=缓冲区2、使用的BIOS功能:1)设置光标位置,出口参数DH=当前字符行号、DL=当前字符列号、CH=光标起始栅线: MOV AX,03H;INT 10H2) MOV AL,0AH;在光标位置显示字符INT 10H3) MOV AH,0;从键盘读字符INT 16H3、使用工具和软件:计算机和MASM汇编软件4、流程图:5、程序与分析:DATA SEGMENTMENU DB 5 DUP(0AH) ;预设5个字节单位,初始值均为0AHDB 32 DUP(' '),'MAIN MENU',0DH,0AHDB 25 DUP(' '),201,22 DUP(205),187,0DH,0AHDB 25 DUP(' '),186,' 1.SET THE PASSWORD',3 DUP (20H),186,0DH,0AH DB 25 DUP(' '),186,' 2.CHECK THE PASSWORD',1 DUP (20H),186,0DH,0AHDB 25 DUP(' '),186,' 3.RETURN TO DOS ... ',20H,186,0DH,0AH DB 25 DUP(' '),200,22 DUP(205),188,0DH,0AHDB 29 DUP(' '),'CHOICE(1,2,3):$'MESG DB 0DH,0AH,0DH,0AH,9,'PRESS ANY KEY TO EXIT ...$'PASS DB 0DH,0AH,9,'ENTER YOUR PASSWORD: $'YES DB 0DH,0AH,9,'PASSWORD CORRECT!$'NO DB 0DH,0AH,9,'PASSWORD ERROR!$'TIPS DB 0DH,0AH,9,'INPUT A STRING: $'MSG1 DB 255,0MSG2 DB 255,0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCLD ;进位标志置0AGAIN: MOV AX,3INT 10H ;读光标位置LEA DX,MENUMOV AH,09HINT 21H ;输出字符串INPUT: MOV AH,1INT 21H ;从键盘读字符,AL=字符码,AH=扫描码CMP AL,'1'JNZ CP2CALL SUB01 ;程序跳转JMP AGAINCP2: CMP AL,'2'JNZ CP3CALL SUB02 ;字符串左右移动JC EXITJMP AGAIN ;返回到主菜单CP3: CMP AL,'3' ;返回DOSJNZ INPUTEXIT: LEA DX,MESGMOV AH,9INT 21H ;输出字符串MOV AH,1INT 21H ;键盘输入单字符MOV AH,4CHINT 21HSUB01: MOV AX,3INT 10H ;读光标位置LEA DX,TIPSMOV AH,9INT 21H ;输出字符串LEA DX,MSG1MOV AH,0AHINT 21H ;输入字符串MOV AH,0AHINT 10H ;在光标位置显示字符 RET ;过程返回SUB02: MOV AX,3INT 10H ;读光标位置CLC ;进位标志清0PUSH DS ;压入堆栈POP ES ;弹出堆栈MOV BP,3SSS: LEA DX,PASSMOV AH,9INT 21H ;显示字符串LEA DX,MSG2MOV AH,0AHINT 21H ;输出字符串MOV CH,0MOV CL,MSG1+1CMP CL,MSG2+1JNZ CUOWUINC CXREPZ CMPSB ;当等于/为0时重复JCXZ RIGHT ;CX为0转移CUOWU: LEA DX,NOMOV AH,9INT 21HDEC BPJNZ SSSSTC ;进位标志位置1JMP OKRIGHT: LEA DX,YESMOV AH,9INT 21HOK: MOV AH,1INT 21HRETCODE ENDSEND START6、分组和自己对小组做的贡献:我与同组组员合作,主要负责编写程序的密码校验部分,以及各自搜集相关资料。

微机原理课设报告

微机原理课设报告

中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

青岛农业大学理学与信息科学学院微机接口课程设计报告设计题目 LCD液晶屏显示系统日期、时间和星期学生专业班级电子信息工程2012级02班学生(学号)周巧丽(20123288)设计小组其他同学(学号)周倩(20123287)涛(20123134)指导教师爱涛完成时间 2015.07.09 实习(设计)地点信息楼5262015 年 07月 09日目录1. 课程设计的目的和任务 (1)1.1 设计目的 (1)1.2 设计任务 (1)2.分析与设计 (1)2.1 设计任务分析 (1)2.2 设计方案论证 (1)2.3 系统硬件设计及原理图 (2)2.3.1 系统硬件设计 (2)2.3.1.1 最小系统 (2)2.3.1.2 LCD显示电路 (2)2.3.1.3 STC89C51简介 (3)2.3.2 原理图 (4)2.3.2.1 LCD与单片机原理图 (4)2.3.2.2 仿真电路图 (4)2.4 程序流程图和源代码清单 (5)3. 系统实施 (7)3.1 系统实现与调试过程中遇到的主要问题分析 (7)3.2 系统运行的结果 (7)4. 总结与体会. (7)5. 参考文献 (8)课程设计成绩评定表 (9)1. 课程设计目的和任务1.1设计目的学生通过本课程的实践,能进一步掌握汇编语言或C语言程序设计基本概念,掌握基本的程序设计方法;通过设计一个完整的小型程序,初步掌握开发软件所需的需求定义能力、功能分解能力和程序设计能力、代码调试技能;学习编写相关设计文档;为未来的硬件设计打下良好的基础。

要求学生掌握所学的程序设计方法的基本知识,结合实际深入理解汇编语言或C语言程序设计的基本概念、原理及方法。

运用所学的基础知识开发一个小型的程序,充分利用单片机学习板或微机原理接口实验箱,设计适合的方法,解决问题。

掌握设计任务的具体要求,进行设计、调试软件的具体方法、步骤和技巧。

对一个实际课题的软件设计有基本了解,拓展知识面,激发在此领域中继续学习和研究的兴趣,为学习后续课程做准备。

1.2设计任务课程设计是培养学生运用有关课程的基础理论和技能解决实际问题,进一步提高学生本专业必要的基本技能、方法和创新能力的重要环节之一。

通过课程设计要使学生受到设计方法的初步训练,能用文字、图形和现代设计方法简要、系统、正确的表达设计成果。

本课程设计主要是训练学生综合运用学生学过的硬件和软件知识,设计硬件电路,编写应用程序,独立完成一个实际的应用设计系统,并学会撰写设计报告。

2. 分析与设计2.1设计任务分析此次的微机接口课程设计,设计的任务为利用单片机实验板中直流电机电路,实现LCD液晶屏显示系统时间、日期和星期。

先将时钟芯片中的时间信息通过单片机进行读取,又因为时钟芯片又能准确记录相应时间,通过单片机向其写入命令来获取相应时间,通过汇编语言控制,实现时间信息的动态显示。

设计过程中要利用汇编语言来进行任务实现,汇编语言是一门重要的程序设计语言,是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令。

2.2设计方案论证本课题来源于专业课程设计,取材于专业课程《微机原理与接口技术》、《汇编语言》和《单片机原理》等课程中的相关容,要求为利用单片机实验板中直流电机电路,实现LCD液晶屏显示系统时间、日期和星期。

2.3系统硬件设计及原理图2.3.1系统硬件设计2.3.1.1最小系统复位时单片机的初始化操作,只要给RST引脚加上两个机器周期以上的高电平信号,就可以使STC89C51单片机复位。

本次采用的是12M晶振,按钮复位电路。

2.3.1.2 LCD显示电路LCD1602可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。

LCD1602引脚说明如下表所示:LCD液晶显示器各引脚功能及结构编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 双向数据口2 VDD 电源正极10 D3 双向数据口3 VL 对比度调节11 D4 双向数据口4 RS 数据/命令选择12 D5 双向数据口5 R/W 读写/选择13 D6 双向数据口6 E 模块使能端14 D7 双向数据口7 D0 双向数据口15 BLK 背光源地8 D1 双向数据口16 BLA 背光源正极VDD:电源正极,4.5V—5.5V,通常使用5V电压;VL:LCD对比度调节端,电压调节围为0—5V。

接正极时对比度最弱,接地电源时对比度最高,但对比度过高会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;RS:MCU写入数据或者指令选择端。

MCU要写入指令时,使RS为低电平;MCU 要写入数据时,使RS为高电平;R/W:读写控制端。

R/W为高电平时,读取数据;R/W为低电平时,写入数据;EN:LCD模块使能信号控制端。

写数据时,需要下降沿触发模块。

D0—D7:8为数据总线,三态双向。

如果MCU的I/O口资源紧的话,该模块也可以只使用4位数据线D4—D7接口传送数据。

A:LED背光正极。

需要背光时, A串接一个限流电阻接VDD, K接地。

K:LED背光地端。

本次课程设计中LCD显示屏的D0到D7与单片机P0口相连,LCD显示屏EN 口与单片机P3.4口相连,RS与P3.5相连。

通过滑动变阻器改变LCD显示屏的显示对比度。

2.3.1.3 STC89C51简介STC89C51是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片含8K Bytes的可反复擦写1000次的Flash 只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机部,省去了购买通用编程器,而且速度更快。

2.3.2原理图2.3.2.1 LCD与单片机原理图2.3.2.2仿真电路图2.4程序流程图和源代码清单#include<reg51.h>#include<intrins.h>sbit RSPIN = P1^5; //引脚定义sbit RWPIN = P1^6;sbit EPIN = P1^7;unsigned char XPOS,YPOS;unsigned char DisTab1[] = " DATEDIS DB ' 0000-00-00 ',0DH,0AH,'$' "; unsigned char DisTab2[] = " TIMEDIS DB ' 00:00:00',0DH,0AH,'$' ";void delay(unsigned int t){ unsigned int i,j;for(i=0;i<t;i++)for(j=0;j<10;j++);}void lcdwaitidle(void) //忙状态判别{ P0=0xff;RSPIN=0;RWPIN=1;EPIN=1;while((P0&0x80)==0x80); //读取忙标志BF, 判为1否, 为1等待EPIN=0;}void lcdwcn(unsigned char c) //写指令c{ RSPIN=0;RWPIN=0;P0=c;EPIN=1;_nop_();EPIN=0;}void lcdwc(unsigned char c) //查询忙标志, 然后写指令c{ lcdwaitidle();lcdwcn(c);}void lcdwd(unsigned char d) //查询忙标志, 然后写数据d{ lcdwaitidle();RSPIN=1;RWPIN=0;P0=d;EPIN=1;_nop_();EPIN=0;}void lcdpos(void){XPOS&=0x3f;YPOS&=0x03;if(YPOS==0x00)lcdwc(XPOS|0x80); //DDRAM地址设置(第1行) else if(YPOS==0x01)lcdwc((XPOS+0x40)|0x80); //DDRAM地址设置(第2行)}void lcdinit(void) //LCD初始化{ delay(150); lcdwcn(0x38); //总线8位, 两行显示, 5*7点阵字符体delay(50); lcdwcn(0x38);delay(50); lcdwcn(0x38);lcdwc(0x38);lcdwc(0x08); //关闭显示, 光标消失, 闪烁禁止lcdwc(0x01); //清屏lcdwc(0x06); //AC加1计数, 禁止滚动lcdwc(0x0e); //开显示}void Display(void) // 显示子程序{for(XPOS=0; XPOS<16; XPOS++){YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);delay(2000);}for(XPOS=16; XPOS<30; XPOS++){lcdwc(0x18); // 滚屏YPOS=0; lcdpos(); lcdwd(DisTab1[XPOS]);YPOS=1; lcdpos(); lcdwd(DisTab2[XPOS]);delay(2000);}}void main(void){EPIN=0;lcdinit();while(1){lcdwc(0x01);lcdwc(0x02);Display();delay(5000);}}3. 系统实施3.1系统实现与调试过程中遇到的主要问题分析由于通过查阅参考书及网上资料,我所编写的这种程序基本上不存在语法上的错误,只是要求对程序进行仔细阅读及理解,并且在一些地方进行必要的改写,且加入了我自己的认识,使这种程序更容易理解。

通过查阅资料,我还了解到了汇编语言的语言组成数据传送指令、整数和逻辑运算指令、移位指令、条件设置指令、控制转移指令、串操作指令和输入输出指令等。

3.2系统运行的结果本课程设计运行的结果符合了课程设计的设计任务要求,综合运用了学过的硬件和软件知识,设计硬件电路,编写了相应的实现程序,独立完成了一个实际的应用设计系统,实现了液晶屏最终显示系统日期、时间和星期。

4. 总结与体会本次的微型计算机原理课程设计涉及到了微机原理中对接口技术的基本认识;单片机原理中对单片机类型、原理、芯片控制过程的相关知识;还有LCD 液晶屏的工作原理。

相关文档
最新文档