微机原理 及汇编语言课程小项目

合集下载

汇编语言、微机原理、接口技术-八个实验(全)

汇编语言、微机原理、接口技术-八个实验(全)

成绩:计算机原理实验室实验报告课程:汇编语言与微机原理姓名:周晗专业:计算机科学与技术学号:1120542387日期:2013-12-19太原工业学院计算机工程系实验一:输入输出实验实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2013.10.29 一.实验内容1.熟悉emu8086仿真系统2.实现控制台输入输出3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出)扩展要求:1.实现两位十进制和的输出2.实现一位十进制四则运算3.实现多位数运算二.理论分析或算法分析基本要求:输入一位数保存在寄存器BL中,然后输出“+”,再输入被加数并加到BL。

将计算的结果输出。

扩展要求:实现两位十进制和的输出,不同于基本要求的是有了低位的进位。

对于低位的相加有进位,并且要给了高位。

首先必须把输入的字符数转换为数值型,才可能有进位。

然后进行加法的aaaBCD调整。

从键盘读取第一个数(1)从键盘键入一个数字(用DL保存“+”号),再键入第二个数字,(用DL存储等号)输出得数。

(2)从键盘读取第一个数的十位,输入被加数十位保存到BH,并且减去30H,第一个个位的数保存到BL且减去30H,从键盘读取第2个加数存储到CH中减去30H,第二个个位数存储到CL中,减去30H。

个位将AL,和CL用ADD相加,在传个AL。

十位上用ADC 将AL和CH相加。

再用aaaBCD调整三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)1、基本要求MOV AH,1INT 21HMOV BH,AL;输出加号MOV DL,'+' MOV AH,2INT 21H;从键盘读第二个数MOV AH,1INT 21H;保存第二个数MOV BL,AL;输出等于号MOV DL,'=' MOV AH,2INT 21H ;两数相加ADD BL,BHSUB BL,30H;输出结果MOV DL,BLMOV AH,2INT 21H 2.扩展要求MOV AH,1INT 21H;保存第一个数的十位MOV BH,AL;从键盘读取第一个数的个位MOV AH,1INT 21H;保存第一个数的个位MOV BL,AL ;输出加号MOV DL,'+'MOV AH,2INT 21H ;从键盘读第二个数的十位MOV AH,1INT 21H;保存第二个数的十位MOV CH,AL ;从键盘读第二个数的个位MOV AH,1INT 21H;保存第二个数的个位MOV CL,AL;输出等于号MOV DL,'='MOV AH,2INT 21H两数相加;个位相加MOV AL,BLADD AL,CLAAAMOV BL,AL ;十位带CF加MOV AL,BHADC AL,CHAAAMOV BH,ALADD BL,30HADD BH,30H;输出结果的十位MOV DL,BHMOV AH,2INT 21H ;输出结果的个位MOV DL,BLMOV AH,2INT 21H四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)1.实现了一位十进制的加法2.实现两位十进制和的输出五.结论通过实验,初步了解emu8086仿真系统,能用汇编语言设计简单的程序我学会了简单的输入输出字符、对于的数据和计算的数据初步的理解。

微机原理与汇编语言_实验7_8255并行接口实验

微机原理与汇编语言_实验7_8255并行接口实验

微机原理与汇编语言实验报告姓名x x x学号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期实验名称8255并行接口实验成绩一、实验目的掌握8255A的编程原理。

二、实验内容1、实验原理本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。

8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。

8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。

实验中,8255A工作于基本输入输出方式(方式0)。

2、实验步骤1)实验接线CS0CS8255;PA0~PA7平推开关的输出K1~K8;PB0~PB7发光二极管的输入LED1~LED8。

2)编程并全速或单步运行。

3)全速运行时拨动开关,观察发光二极管的变化。

当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。

3、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:K2置于L位置,则对应的LED2应该点亮。

三、实验源码及框图assume cs:codecode segment publicorg 100hstart: mov dx,04a6h ;控制寄存器地址mov ax,90h ;设置为A口输入,B口输出out dx,axstart1: mov dx,04a0h ;A口地址in ax,dx ;输入mov dx,04a2h ;B口地址out dx,ax ;输出jmp start1code endsend start四、练习键盘接口实验。

请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。

练习键盘框图:实验源码:assume cs:codecode segment publicorg 100hTimer = 10;延时常量;设置行线接输出端口,列线接输入端口start:mov dx,04a6h;控制端写控制字,设置为A口输入,B口输出mov al,90hout dx,alWait:mov al,00hmov dx,04a2hout dx,al ; 往所有行线上输出低电平movin al,dx ; 读取列值cmp al,0ffh ;是否有列线为低电平jz wait ;否,则循环等待done: call delay ;是,则延迟去抖动mov cx,8 ;行数送CXkey2:mov al,0mov dx,04a2h ;B口作为输出out dx,al ;设置行线全为低mov dx,04a0h ;A口作为输入in al,dx ;读取列值cmp al,0ffhjz key2 ;无闭合键,循环等待push ax ;有闭合键,保存列值push ax;设置行线接输入端口,列线接输出端,A口输出,B口输入mov dx,04a6hmov al,82hout dx,almov dx,04a0h ;A口输出pop axout dx,al;输出列值mov dx,04a2h ;B口输入in al,dx ;读取行值pop bx ;组合行列值mov ah,bl ;此时,al=行值,ah=列值mov si,offset table ;table保存键盘行列值mov di,offset char ;char保存键代码值mov cx,24 ;cx=键的个数key3:cmp ax,[si];与键值比较jz key4 ;相同,说明查到inc si ;不相同,继续比较inc siinc diloop key3jmp start ;全部比较完无相同则再进行扫描一遍jmp wait ;全部比较完,仍无相同,说明是重键key4:mov al,[di];获取键代码送ALpush ax;判断按键是否释放,没有则等待call delay ;按键释放,延时消除抖动;后续处理;将代码值输给小灯mov dx,04a6h;控制寄存器地址mov ax,0080h ;设置C口输出out dx,axmov dx,04a4h ;将键代码从C口输出送给小灯pop axout dx,aldelay procpush bxpush cxmov bx,timer;外循环次数由timer确定delay1: xor cx,cxdelay2: loop delay2 ;内循环dec bxjnz delay1pop cxpop bxretdelay endp;键盘的行列值表table dw 0fefeh ;键1的行列值(键值)dw 0fefdh ;键2的行列值dw 0fefbh ;键3的行列值dw 0fe07h ;键4的行列值dw 0fedfh ;键6的行列值dw 0febfh ;键7的行列值dw 0fe7fh ;键8的行列值dw 0fdfeh ;键9的行列值dw 0fdfdh ;键10的行列值dw 0fdfbh ;键11的行列值dw 0fd07h ;键12的行列值dw 0fdefh ;键13的行列值dw 0fddfh ;键14的行列值dw 0fdbfh ;键15的行列值dw 0fd7fh ;键16的行列值dw 0fbfeh ;键17的行列值dw 0fbfdh ;键18的行列值dw 0fbfbh ;键19的行列值dw 0fb07h ;键20的行列值dw 0fbefh ;键21的行列值dw 0fbdfh ;键22的行列值dw 0fbbfh ;键23的行列值dw 0fb7fh ;键24的行列值……;S25、S26其他键的行列值;键盘的键代码表char db 30h ;键1的代码值db 31h ;键2的代码值db 32h ;键2的代码值db 33h ;键3的代码值db 35h ;键5的代码值db 36h ;键6的代码值db 37h ;键7的代码值db 38h ;键8的代码值db 39h ;键9的代码值db 41h ;键A的代码值db 42h ;键B的代码值db 43h ;键C的代码值db 44h ;键D的代码值db 45h ;键E的代码值db 46h ;键F的代码值db 61h ;键a的代码值db 62h ;键b的代码值db 63h ;键c的代码值db 64h ;键d的代码值db 65h ;键e的代码值db 66h ;键f的代码值db 67h ;键g的代码值db 68h ;键h的代码值……;S25、S26其他键的代码值code endsend start实验现象:按相应的键,LED灯会显示相应的代码。

汇编语言与微型计算机技术课设十字交通灯

汇编语言与微型计算机技术课设十字交通灯

2024/6/10
7
七、时间安排:
➢ 时间:2013/12/23~2014/1/9
➢ 1.根据要求,设计出正确的电路原理图,并用 PROTEUS软件绘制电路图2天;
➢ 2.正确布线2天; ➢ 3.编制程序2天; ➢ 4.调试、排错、验收3天; ➢ 5.编写课设报告1天。 ➢ 注:具体时间可自己调整,上交报告为第10天17:
A7
B7
B6
A6
74LS245
A0 DIR
E
B0
2024/6/10
D7
PA7
D6
PA6
8255A
D0PA0Fra bibliotekD7 D6
8253
D0
15
(2)74LS06
2024/6/10
16
8255-RES-74LS06连线实例
2024/6/10
17
(3)74LS138
2024/6/10
18
地址译码电路表
2024/6/10
19
标准地址译码电路
8255CS对应的地址为300H~303H, 8253CS对应的地址为304H~307H。
8255CS 8253CS
2024/6/10
20
简化后的非标准地址译码电路 (本次课程设计采用)
8255CS 8253CS
2024/6/10
21
4.8253定时/计数器
2024/6/10
➢ 6.每个发光二极管的正极接排电阻的从2到9的一个引脚, 排电阻的1脚接VCC(+5V)。
2024/6/10
5
五、设计步骤
➢ 1.设计电路原理图,要求用PROTEUS绘图软件 绘制电路图,电路中应包括地址译码电路。

微机原理课程设计汇编语言——将键盘输入小写字母转换成大写字母设计

微机原理课程设计汇编语言——将键盘输入小写字母转换成大写字母设计

设计 6、将键盘输入的小写字母变换成大写字母的设计1.实验要求:为认识小写字母和大写字母在计算机内的表示方法,并学习怎样进行变换。

编写程序,接收键盘字符,并将此中的小写字母转变成大写字母,而后显示在屏幕上。

2.参照流程:进口段存放器和货仓初始化BX 指向字符行缓冲区首址偏移指针 SI 清 0INT 21H 的 01H 号子功能接收键入字符Y是 ctrl+c 键?NY是回车键?NN是小写字母?Y小写字母的ASCII 码值转变成大写字母的ASCII 码值存入字符缓冲区[BX+SI] 单元SI 加 1 指向下一单元显示变换后的字符行缓冲区内容返回 DOS3. 程序清单:DATA SEGMENTDATA1DB20 DUP(?)DISPP1DB 'please input letters, end with enter, exit with ctrl-c',0DH,0AH,'$'DISPP2DB 'the inverted litter is:', 0DH, 0AH,'$'DISPP3DB0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,00HMOV BX,OFFSET DATA1LEA DX,DISPP1MOV AH,9INT 21HL1:MOV AH,1INT 21HCMP AL,03HJZ L4CMP AL,0DHJZ L3CMP AL,61HJZ L2SUB AL,20HJMP L2L2: MOV[BX+SI],ALINC SIJMP L1L3:LEA DX,DISPP3MOV AH,9INT 21HLEA DX,DISPP2MOV AH,9INT 21HMOV [BX+SI],ALMOV AL,0AHMOV [BX+SI+1],ALMOV AL,'$'MOV [BX+SI+2],ALMOV DX,BXMOV AH,9INT 21HLEA DX,DISPP3MOV AH,9INT 21HJMP L4L4:MOV AH,4CHINT 21HCODE ENDSEND START4.运转结果显示:。

汇编语言微机课程设计

汇编语言微机课程设计

汇编语言微机课程设计一、课程目标知识目标:1. 掌握汇编语言的基本概念,包括寄存器、指令、地址等;2. 理解并掌握汇编语言编程的基本流程,包括编写、汇编、链接和执行;3. 学习微机硬件基础知识,了解CPU、内存和I/O设备的工作原理;4. 学会使用汇编语言进行简单的程序设计,如顺序结构、分支结构和循环结构。

技能目标:1. 能够熟练使用汇编语言编程环境,进行代码编写、调试和运行;2. 能够运用汇编语言解决实际问题,如编写一个计算器程序;3. 培养学生的逻辑思维能力和编程技能,提高问题解决能力。

情感态度价值观目标:1. 培养学生对计算机硬件和汇编语言的兴趣,激发学习热情;2. 培养学生严谨、细致的学习态度,提高自主学习能力;3. 培养学生的团队合作精神,学会与他人共同解决问题;4. 引导学生认识计算机技术对社会发展的作用,培养社会责任感。

课程性质:本课程为选修课,适用于对计算机硬件和汇编语言感兴趣的学生。

学生特点:学生具备一定的计算机基础知识,具有较强的逻辑思维能力和动手能力。

教学要求:结合学生特点,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力。

通过课程学习,使学生能够掌握汇编语言编程的基本技能,提高解决问题的能力。

在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的价值观。

将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 汇编语言基础知识- 寄存器与内存:介绍寄存器、内存地址、数据类型等基本概念;- 指令系统:讲解汇编指令的分类、格式及功能;- 汇编过程:介绍汇编、链接、执行的基本流程。

2. 汇编语言编程技巧- 顺序结构:编写简单的顺序结构程序,如数据传送、算术运算等;- 分支结构:学习条件跳转指令,实现分支结构程序;- 循环结构:掌握循环指令,实现循环结构程序。

3. 微机硬件原理- CPU结构与工作原理:介绍CPU的内部结构,执行指令的过程;- 内存与I/O设备:讲解内存管理、I/O设备与CPU的交互。

32位微机原理与汇编语言课程设计 (2)

32位微机原理与汇编语言课程设计 (2)

32位微机原理与汇编语言课程设计一、设计背景随着计算机技术的不断发展,嵌入式系统已经成为众多领域中的重要应用之一。

在嵌入式系统中,对于嵌入式微控制器的设计与开发都离不开对于汇编语言的掌握。

汇编语言是一种底层语言,直接操作硬件,因此汇编语言代码通常比高级语言的代码快速且高效。

在嵌入式系统中,汇编语言的掌握可以提高编程效率,提高代码质量,从而提高产品的竞争力。

因此,本课程将重点介绍32位微机的原理及汇编语言的基本知识,并通过课程设计,提高学生对于32位微机原理及汇编语言的应用能力,同时加强对于嵌入式系统的理解。

二、设计目标本课程的设计目标主要有以下几点:1.掌握32位微机的基本操作原理及组成结构;2.掌握汇编语言的基本语法及运算过程;3.通过实际案例的分析和练习,提高学生的汇编语言编程能力;4.培养学生在嵌入式系统领域的应用能力,并提高对于嵌入式系统的理解。

三、课程内容1. 32位微机的基本操作原理及组成结构•计算机基本组成结构和工作原理•32位微机CPU结构及寄存器•内存分配与管理•中断处理•总线结构2. 汇编语言的基本语法及运算过程•汇编语言的基本语法•数据表示与运算•控制结构及函数调用•存储器操作•输入输出操作3. 汇编语言的应用•用汇编语言实现简单的算法和函数•设计不同的汇编程序,进行程序调试和优化•针对具体问题设计并实现功能强大的汇编语言程序•利用汇编程序优化嵌入式系统设计4. 综合实践本课程将安排一段时间的综合实践,要求学生通过对于嵌入式系统设计的理解与实践应用,设计并编写一份完整的32位微机汇编程序,从而达到课程目标。

四、课程评估1. 平时成绩•课堂参与:30%•作业完成情况:20%2. 期末成绩•综合实践成绩:50%五、教学方法•讲授与实践相结合的教学方法•课堂中讨论和解答学生的疑惑•常见案例的分析与讨论•综合实践项目的设计与实现六、参考文献•汇编语言(第3版),王爽,中国电力出版社,2010年•计算机系统结构,土屋俊蔚,电子工业出版社,2006年•32位微处理器及其体系结构,王汉生,高等教育出版社,2009年七、总结通过本课程的学习,学生将能够充分掌握32位微机原理及汇编语言的基本知识,并通过综合实践项目的设计与实现,提高自身的嵌入式系统领域的应用能力,从而更好地适应日益发展的计算机技术和市场需求。

汇编语言电子琴设计(微机原理课程设计)

汇编语言电子琴设计(微机原理课程设计)

微机原理课程设计(汇编语言)——电子琴设计一、设计内容编写一实现电子琴的程序,并实现若干扩展功能。

基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:1、在程序中可预设多首曲目,按一键可以进入预设子菜单,对要播放的曲目进行选择,并实现播放该曲目。

2、程序运行时有友好的用户介面。

3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案二、元件与仪器1.计时器82532.并行控制器8255A3.实验台三、设计原理、思路及流程图1、设计原理(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。

给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。

对于音乐,每个音阶都有确定的频率。

各音阶标称频率值:(2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为261。

1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms. 定时时间可以由8253配合8255来实现。

按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。

本程序中设置默认长度为60个正弦波。

(3)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

(4) 点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。

当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。

车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。

(5)实验仪上设有一个共阳极8×8点阵的红黄两色LED显示器,其点阵结构如图所示。

微机原理与汇编实验大纲

微机原理与汇编实验大纲

微机原理与汇编语言实验教学大纲一、说明(一)课程性质本课程属于计算机科学与技术专业本科阶段的核心课程,是为培养满足计算机应用领域对人才的需求而设置的。

学习本课程需要具备电子技术和计算机组成原理方面的知识,即应先修《电子技术》和《计算机组成原理》课程。

(二)教学目的熟悉微型计算机的基本原理和体系结构,熟悉汇编语言程序设计的基本方法,熟悉常用可编程接口芯片的设计方法,掌握以微处理器芯片为核心构成系统的能力,掌握对计算机系统进行应用开发的能力。

(三)教学内容本课程以IBM PC计算机系统为背景,结合DVCC-8086JH十六位微机实验系统的使用,主要介绍微型计算机的基本原理和体系结构、汇编语言程序设计以及接口技术。

相关内容互相结合,形成整体。

主要内容包括8086\8088十六位微处理器,指令系统和寻址方式,汇编语言程序设计,存储器技术,输入输出处理,可编程接口芯片的硬/软件设计等。

(四)教学时数每周2学时,共36学时,计算机师范专业(五)教学方式本课程具有实用性强、理论实践相结合、软件硬件相结合的特性,在学生学习过程中,要特别重视综合应用能力和实际操作能力的提高,注重原理和应用相结合,硬件和软件相结合,讲授与练习相结合。

实验教学需要结合专用的实验设备,配合授课内容进行。

在教学方式上除了课堂讲授外,还应注重课堂演示、作业练习和课程设计等环节。

二、本文(一)基本要求学习8086微处理器的指令系统,以及汇编语言程序设计的基本方法,掌握用汇编语言设计、编写、调试和运行程序的技能,学习常用可编程接口芯片及其应用的硬/软件设计方法,为后续课程打下坚实的基础。

(三)实验项目内容及要求实验一 8086汇编程序的一般结构和上机过程实验目的: 熟悉 8086 汇编程序的一般结构,掌握汇编程序的上机过程。

实验内容: 1. 通过程序设计的实例, 熟悉8086汇编程序的一般结构。

2. 通过实际操作, 掌握 8086 汇编程序的上机过程。

32位微机原理与汇编语言课程设计

32位微机原理与汇编语言课程设计

32位微机原理与汇编语言课程设计1. 概述32位微机原理与汇编语言是计算机相关专业的重要课程之一,目的是培养学生对计算机硬件和底层原理的深入理解,并掌握32位微机的构成、特点以及汇编语言的基本知识和编程方法。

本文将对本课程的课程设计方案进行详细阐述,希望能够对教师和学生有所帮助。

2. 课程设计目的本课程设计旨在:1.提高学生对计算机硬件和底层原理的理解和认识;2.培养学生编写汇编程序的能力;3.加深学生对汇编语言的理解和掌握;4.帮助学生掌握32位微机的构成、特点以及基本操作方法;5.提升学生解决实际问题的能力和创新意识。

3. 课程设计内容本课程设计包含以下内容:1.实验一:软盘和屏幕程序设计–掌握VS2008下的MASM汇编程序设计;–掌握汇编语言的基本语法和汇编的运行原理;–掌握软盘的格式化、读写操作;–掌握屏幕的清屏、写屏、读屏操作。

2.实验二:键盘和文字处理程序设计–掌握键盘输入、字符处理和屏幕输出等相关操作;–掌握断点调试和单步执行的使用方法;–掌握调试器的使用方法。

3.实验三:数码管和中断处理程序设计–掌握中断机制的基本原理;–掌握数码管的控制方法和程序设计;–掌握中断程序和汇编语言之间的交互。

4.实验四:串口和数据处理程序设计–掌握串口通信的原理和通信方式;–掌握串口的初始化、数据发送和接收等操作;–掌握数据处理的方法和程序设计。

4. 课程设计要求1.学生需自行独立完成实验设计、程序设计和编写;2.学生需按时提交实验报告和程序代码;3.学生需按要求进行实验报告的排版和格式规范;4.学生需满足实验报告和程序代码的完整性和准确性。

5. 课程设计评分本课程设计的总分为100分,各部分得分分配如下:实验项目实验报告(50分)程序代码(50分)总分(100分)实验项目实验报告(50分)程序代码(50分)总分(100分)实验一12.5分12.5分25分实验二12.5分12.5分25分实验三12.5分12.5分25分实验四12.5分12.5分25分6. 总结32位微机原理与汇编语言是计算机专业中的重要课程,通过本课程设计的学习,可以使学生更深入地理解计算机硬件和底层原理,并掌握32位微机的构成、特点和汇编语言的基本知识和编程方法。

《微机原理及汇编语言》实训指导书

《微机原理及汇编语言》实训指导书

微机原理及汇编语言综合实验项目指导书系别:计算机系专业:课程:微机原理及汇编语言综合实验制订时间:2019年5月目录内容及时间安排 (3)项目一可编程串行接口芯片8251A的应用 (4)一、项目实施目标 (4)二、项目实施条件 (4)三、实验内容与步骤 (4)四、实验结果 (10)项目二可编程并行接口8255A的基本输入输出 (11)一、项目实施目标 (11)二、项目实施条件 (11)三、实验内容与步骤 (11)1、实验内容 (11)2、操作步骤 (11)四、实验结果 (12)项目三基于8086的交通灯设计与仿真 (13)一、项目实施目标 (13)二、项目实施条件 (13)三、实验内容与步骤 (13)四、实验结果 (14)内容及时间安排项目一可编程串行接口芯片8251A的应用一、项目实施目标1. 项目实施目标(1)掌握串行接口芯片8251A的工作原理和程序设计;(2)掌握串行接口8251A的硬件电路设计。

2. 主要监测点(1)8251A的引脚结构、引脚功能和工作原理;(2)8251A的工作方式及编程;(3)Proteus电路设计。

(4)硬件电路设计和程序控制及系统调试。

二、项目实施条件硬件环境:Windows 操作系统的PC机软件环境:emu8086软件、proteus7.8或更高版本。

三、实验内容与步骤1、运行proteus,按图1-1绘制电路图。

设定8251A的CLK为1MHz,通信端接收频率为20KHz,采用1个停止位、无校验位、8数据位、波特率因子为1,按照要求设定“COMPIM”和“VIRTUAL TERMINAL”的参数。

图1-1 8251A的电路连接图2、编程实现通过8251向终端发送数据“THIS IS PROTEUS 8251 UART TEST ! WELCOME TO 8086 SIMULATION!”,编写源代码。

(1)运行emu8086,点击工具栏的【new】图标。

直接选择empty workspace,点击【确定】,软件出现源代码编辑器的界面。

微机原理与汇编语言课设——电子琴

微机原理与汇编语言课设——电子琴

微机原理与汇编语言课程设计电子琴学院:计算机科学技术专业:计算机科学与技术(工)班级:计13-1 班姓名:肖林英学号:2013170101 25指导教师:微2016年6 月10 日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的1. 掌握利用PC机扬声器发出不同频率声音的方法;2. 学习利用系统功能调用从键盘上读取字符的方法;3. 掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC 机成为一架可演奏的“钢琴”。

当按下数字键1-8时,依次发出1,2,3,4,5,6,7,七个高音和低音,Esc 则退出演奏状态。

独立完成课程设计。

四、设计容及步骤1.PC 机扬声器电路电路图如图1所示:图1 PC 机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。

当与门打开后,经过放大器的放大作用,便可驱动扬声器发出不同频率的音调。

为使该音调的声音持续一段时间,要插入一段延时程序,之后再将扬声器关闭(关闭与门)。

2.建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H 功能以接收键入字符,并且要建立一音频表。

五、课程设计工作量每人的程序量应在100行有效程序行以上,不得抄袭,否则给不及格成绩。

六、课程设计工作计划2016年6月6日指导教师讲课,学生准备文献资料;2016年6月6日~2016年6月10日每人完成自己程序并能独立演示;2016年6月10日下午验收,学生撰写课程设计报告。

指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩目录一、概述 (1)1.课题描述 (1)2.程序设计目的 (1)二、需求分析 (1)三、总体设计 (2)1.电子琴程序 (2)2.单音调子程序SOUND (3)四、详细设计 (3)1.扬声器 (3)2.界面设计 (4)五、调试与运行结果说明 (5)1.主界面 (5)2.退出界面 (6)六、课程设计总结 (6)七、结束语 (7)八、程序清单 (7)参考文献 (14)一、概述1.课题描述随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。

汇编语言与微机原理课程设计

汇编语言与微机原理课程设计

集中实践性教学环节教学大纲集中实践性汇编语言与微机原理教学环节名称适用专业计算机科学与技术等培养层次本科集中实践性五周数 1 学分 1 教学环节学期一、集中实践性教学环节的性质、目的与任务(一)性质本环节是计算机应用与维护所必需的一门课程。

通过本门课程的学习,使学生从理论和实践上掌握微机的基本组成、工作原理、以及与常用外设的硬件连接等知识,建立起微机系统的整体概念,使学生初步具有应用微机系统软、硬件的能力。

(二)目的通过本实践环节教学,加深学生对“微机原理与接口技术”、“汇编语言”、等知识的掌握与综合运用,培养学生分析解决实际问题的能力,提高学生的创新意识及动手能力,为后续相关课程的学习,以及毕业后从事微机硬件及软件开发打下基础,积累初步的经验。

(三)任务每位学生制定详细的设计工作计划,按计划展开工作;利用所学过的知识,初步分析计算机原理及接口技术的能力;汇编语言的编程能力;接口通信程序的设计和调试的能力;实验结果分析、总结及撰写技术报告的能力。

二、基本要求(一)通过文献资料查阅和学习,了解当前流行的.net开发模式和设计方法。

(二)参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合所学课程中所学知识,积极完成设计任务。

(三)认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测试等环节的设计任务。

(四)突出架构设计的重要性(五)认真按时完成课程设计报告。

三、集中实践性教学环节的内容选择题目后以工程的管理方式、方法进行,包括需求分析、结构设计、编制程序,调试与测试等。

每一组人数控制在1-2人,视题目大小而定,但报告每人一份。

对于每一个选题中的不同模块,由学生分工完成,而同一个大题目所要求的数据设计任务,则需同组中的学生共同协作完成,最后把每个学生的设计结果进行联调。

设计选题如下:✓8086汇编语言实现的班级通讯录✓8086汇编语言实现的文本编辑器✓8086汇编语言实现的文本模式小游戏✓8086汇编语言实现的BIOS图形模式小游戏✓8250双机串行通信的设计与实现✓BIOS及DOS功能调用串行通信编程实现✓8253电子时钟的设计✓8088CPU实现的专用计算机系统(含中断、DMA、定时计数器、串并行通讯)如以上题目不满足学生需求,可以自拟题目。

微机原理与汇编课程设计

微机原理与汇编课程设计

微机原理与汇编课程设计一、课程目标知识目标:1. 让学生掌握微机原理的基本知识,理解汇编语言的核心概念,如寄存器、指令系统、中断处理等。

2. 使学生能够运用汇编语言进行程序设计,编写简单的微机程序,并对程序进行调试与优化。

3. 帮助学生了解微机硬件与软件的交互原理,理解计算机内部运行机制。

技能目标:1. 培养学生运用汇编语言进行程序设计的能力,提高编程技巧,具备分析、解决实际问题的能力。

2. 让学生掌握汇编程序调试方法,培养调试程序、解决问题的实际操作技能。

3. 培养学生的团队协作能力,学会与他人共同分析问题、解决问题,提高沟通与协作能力。

情感态度价值观目标:1. 培养学生对微机原理与汇编语言的兴趣,激发学生的学习热情,提高学习积极性。

2. 引导学生树立正确的计算机伦理道德观念,遵守国家法律法规,养成良好的编程习惯。

3. 培养学生面对困难的勇气和毅力,增强学生的自信心,使其具备克服困难、追求卓越的精神风貌。

课程性质:本课程为专业核心课程,旨在使学生掌握微机原理与汇编语言的基本知识和技能,培养实际编程能力。

学生特点:学生具备一定的计算机基础知识,但对微机原理与汇编语言了解较少,需要从基本概念入手,逐步提高。

教学要求:结合学生特点,注重理论与实践相结合,强化实践操作,培养学生实际编程能力。

同时,注重启发式教学,引导学生主动思考,提高分析问题和解决问题的能力。

通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。

二、教学内容1. 微机原理基础知识:包括计算机系统结构、中央处理器(CPU)组成、寄存器组、内存管理、输入输出接口等基本概念。

教材章节:第一章 微机原理概述2. 汇编语言基础:介绍汇编语言的基本语法、指令系统、伪指令、宏指令等,以及汇编程序的构成与编写方法。

教材章节:第二章 汇编语言概述;第三章 指令系统与语法3. 汇编程序设计:讲解汇编程序设计的基本方法,包括顺序结构、分支结构、循环结构等,以及子程序设计、模块化编程等高级技巧。

微机原理与汇编语言程序设计实验一

微机原理与汇编语言程序设计实验一

实验一汇编语言上机环境及基本操作一、实验目地及要求1.学习及掌握汇编语言源程序地书写格式和要求,明确程序中各段地功能和相互之间地关系.2.学会使用EDIT、MASM、LINK、DEBUG等软件工具.3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序地方法.二、实验内容1.汇编语言源程序地建立本例中给出地程序是要求从内存中存放地10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中.设定源程序地文件名为ABC.DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSSTACK SEGMENT STACK ’STACK’STA D B 10 DUP(?)TOP E QU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕地显示状态如图1所示.图1 用EDIT编辑ABC.ASM程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改.2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序地主要功能有以下3点:(1)检查源程序中存在地语法错误,并给出错误信息.(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ.(3)若程序中使用了宏指令,则汇编程序将展开宏指令.源程序建立以后,在DOS状态下,采用宏汇编程序MASM对源程序文件进行汇编,其操作过程如图2所示.图2 MASM宏汇编程序工作窗口汇编过程地错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种.其中警告错误是指汇编程序认为地一般性错误;严重错误是指汇编程序认为无法进行正确汇编地错误,并给出错误地个数、错误地性质.这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止.3.用连接程序生成可执行程序文件经汇编以后产生地目标程序文件(.OBJ文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE).连接过程如图3所示.图3 LINK连接程序工作窗口上述提示行回答以后,连接程序开始连接,如果连接过程中出现错误,则显示出错误信息,根据提示地错误原因,要重新调入编辑程序加以修改,然后重新汇编,再经过连接,直到没有错误为止.连接以后,便可以产生可执行程序文件(.EXE文件).4.程序地执行当我们建立了正确地可执行文件以后,就可以直接在DOS状态下执行该程序.如:C:\>ABC本程序当中没有用到DOS中断调用指令,所以在屏幕上看不到程序执行地结果.我们可以采用调试程序DEBUG来进行检查,相关内容请参见实验二.三、实例分析下面通过一个汇编语言源程序地实际例子,来了解汇编语言源程序地建立、汇编、连接、运行地完整过程.给出地程序是从键盘输入10个字符,然后以与键入相反地顺序将10个字符输出到显示屏幕上.设定源程序名为STR.ASM.1.用EDIT建立汇编语言源程序在DOS状态下,调用EDIT编辑程序建立文件名为STR.ASM地汇编源程序,如图4所示.图4 用EDIT建立汇编语言源程序2.用MASM汇编生成目标文件源程序文件建立完毕后,调用宏汇编程序MASM对STR.ASM进行汇编,如图5所示.图5 用MASM汇编生成目标文件3.用LINK进行连接生成可执行文件汇编完毕,程序正确,则可调用LINK进行连接,以生成可执行文件STR.EXE,连接过程如图6所示.图6 用LINK连接生成可执行文件4.程序地运行在DOS状态下,直接键入可执行地程序文件名STR,然后从键盘输入“0123456789”10个数字,输入回车键后,计算机将10个数字倒序排列输出,即“9876543210”.再次键入可执行地程序文件名STR,从键盘输入“abcdefghIj”10个字符,输入回车键后,计算机将10个字符倒序排列输出,即“jihgfedcba”.运行过程及其结果如图7所示.图7 程序地运行状态及结果参考程序:显示字符串data segmentmsg db 'hello world!',0dh,0ah,24hdata endsstack segment stack 'stack'db 16 dup('stack')stack endscode segmentassume cs:code,ds:data,ss:stackmain proc farstart: mov ax,data ;初始化数据段mov ds,axmov dx,offset msg ;字串首地址送DXmov ah,09h ;调用DOS系统功能int 21h ;显示字串mov ax,4c00h ;返回DOSint 21hmain endpcode endsend start实验2 分支程序地设计一、实验目地1)熟悉分支程序地编写.2)学习DOS系统功能调用(INT 21H/08H,AL=ASCII字符)从键盘接收单个字符地用法.3)掌握数据地输入与输出方法.二、实验内容1)用DOS系统功能调用INT 21H地08H功能接收键盘字符(AL=字符),若是 F,显示“This is the first word string.’,若是S,显示“This is the second word string.’,否则退出.2)设计一数据块间地搬移程序三、实验要求1)实验前准备好汇编语言源程序,阅读实验指导书关于调试方法与步骤地内容.2)实验要求在PC机上进行.四、编程提示1)用DOS系统功能调用INT 21H地09H功能显示字符串.2)用P命令执行程序,可看出结果.3)显示字符串参考程序data segmentstr1 db 'this is the first word string.','$'str2 db 'this is the second word string.','$'data endsstack segmentsta db 50 dup (?)top1 equ length stastack endscode segmentassume cs:code,ds:data,ss:stackmain proc farstart: push ds ;将DS入栈mov ax, 00h ;AX置零push ax ; 将0入栈mov ax, data ;初始化DSmov ds, axmov ah, 08h ;键盘输入一个字符int 21h ;字符在AL中cmp al, 'f'jz disp1cmp al, 's'jz disp2jmp dodisp1: mov dx, offset str1 ;显示字符串mov ah, 09hint 21hjmp dodisp2: mov dx, offset str2mov ah, 09hint 21hdo : mov ax, 4c00h ;返回DOS int 21hmain endpcode endsend start实验3 循环程序设计实验一、实验目地1)学习将一个十六位二进制数数转换成四位十六进制数显示地编程方法.2)熟悉循环程序地设计方法.1)学习乘法指令地用法.二、实验内容实现两个字节相乘地程序,并转换成十六进制数显示出结果.23H 20H=?三、实验要求1)分析题目,确定算法,画出程序框图.2)实验前准备好汇编语言源程序.3)实验要求在PC机上进行.四、编程提示1)两个数据放在数据段地DAT1和DAT2 中.2)计算结果转换成ASCII码显示,因此结果地高四位要拼成3,用INT 21H地02H功能(DL=显示字符)显示结果.3)参考程序DATA SEGMENTDAT1 DB 25H ; 25HDAT2 DB 30H ; 30HSUM1 DW ?,?SUM2 DB 10 DUP ('0')TABLE DB '0','1','2','3','4','5','6','7','8','9'DB 'A','B','C','D','E','F'DATA ENDSSTACK SEGMENTST1 DB 100 DUP ('SA')TOP1 EQU ST1 LENGTH ST1STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARSTART: MOV AX, DATA ;初始化数据段 MOV DS, AXMOV AX, STACK ;初始化堆栈段MOV SS, AXMOV AX, 100MOV SP, AXXOR AX, AXMOV BL, DAT1 ;取乘数MOV AL , DAT2 ;取被乘数MOV SI , OFFSET TABLE ;取ASCII码表首地址MOV DI , OFFSET SUM2 ;取结果地址MUL BLMOV SUM1, AX ;存乘积二进制结果; convert binary number in bx to hex 转换成16进制mov BX, AX ;结果送BXMOV CX, 4 ;转换4位数HEX16:PUSH CX ;保护CX MOV CL, 4 ;循环左移4位ROL BX, CLMOV AL, BLAND AL, 0FH ;保留低四位PUSH BX ;保护BXMOV BX, SI ;ASCII码表首地址送BXXLAT ;转换成ASCII码MOV [DI], AL ;存结果地ASCII码INC DI ;地址加一POP BX ;恢复BX中待转换地数POP CX ;弹出CX地计数值LOOP HEX16 ;未转换完,继续; display results on screenMOV AH, 02H ;调用DOS 地02H功能显示MOV CX, 04H ;显示数据地位数MOV DI, OFFSET SUM2 ;送出待显示数据地首地址DON2: MOV DL, [DI] ;显示数据送DL INT 21H ;显示INC DI ;显示数据所在存储单元加一LOOP DON2 ;未显示完,继续MOV AH, 4CH ;返回DOSINT 21HRETMAIN ENDPCODE ENDSEND START五、实验报告1)说明程序结构及功能.2)说明入口参数与出口参数,参数地输人与输出方法. 3)说明调试过程中遇到地问题及解决地方法.4)画出程序框图,打印源程序清单与执行结果.。

微机原理汇编实验-汇编语言程序上机操作方法实验

微机原理汇编实验-汇编语言程序上机操作方法实验

学生实验报告实验课程名称:微机原理汇编实验开课实验室:年月日年级、专业、班学号姓名成绩实验项目名称汇编语言程序上机操作方法实验指导教师教师评语一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。

二、实验原理使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法。

三、实验仪器、材料1.软件MASM5.02.PC微机一台四、实验步骤1.建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。

注意保存的源文件以asm为后缀。

2.用汇编程序MASM对源文件汇编产生目标程序.OBJ。

3.用连接程序LINK产生可执行文件.EXE。

4.执行程序。

5.程序调试五、实验源代码;------------------------------------------------- ;程序名:Lab101;功能:把NUM数组中的最大值取出并显示输出;-------------------------------------------------DATA SEGMENTNUM DB 12,52,36,14,25,32,14,126 COUNT EQU ($-NUM)DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX,COUNT ;初始化循环次数MOV SI,OFFSET NUMMOV AL,[SI]MOV DL,ALINC SIAGAIN:MOV AL,[SI]INC SICMP DL,ALJL SWAPLOOP AGAINJMP FINISHSWAP:MOV DL,ALLOOP AGAINJMP FINISH;--------------------------------;子程序名:TRANNUM;功能:将数字转换为字符串;入口参数:AL;出口参数:无;--------------------------------TRANNUM PROC NEARMOV AL,DLXOR AH,AHMOV CX,3MOV DL,10TRAN1:DIV DLXCHG AH,ALADD AL,'0'PUSH AXXCHG AH,ALMOV AH,0LOOP TRAN1MOV CX,3TRAN2:POP DXCALL DISPLAYLOOP TRAN2RETTRANNUM ENDP;--------------------------------;子程序名:DISPLAY;功能:将单个字符显示输出;入口参数:DL;出口参数:无;--------------------------------DISPLAY PROC NEARMOV AH,02HINT 21HRETDISPLAY ENDPFINISH:CALL TRANNUMMOV AH,4CH ;程序结束返回DOSINT 21HMAIN ENDPCODE ENDSEND START六、实验过程原始记录(数据图表、计算等)1、打开命令提示符:输入cmd2、输入:cd G:/asm/tos3、输入:G:4、输入:masm lab1015、输入:link lab1016、输入:lab101七、实验结果分析从程序代码分析,所给数值中最大值为126,运行程序后输出结果为126,说明程序能够实现其功能。

微机原理-实验一-汇编语言-冒泡排序

微机原理-实验一-汇编语言-冒泡排序

微机原理实验报告班级:XXXXX姓名:XXXX学号:20XXXXXXXXX大学信息科学与技术学院信息工程系实验一汇编语言程序设计-(具体题目)一、实验目的(根据实际情况修改):1、熟悉MASM编译环境,了解程序的汇编方法;2、熟悉常用汇编指令,学习汇编程序设计方法;3、学习汇编语言的调试过程,通过调试过程认识CPU执行程序的方式;4、了解冒泡法原理,学习多重循环的编程方法。

二、实验内容:编写程序,用冒泡法实现将数据段内9,8,7,6,5,4,3,2,1按照由小到大的顺序重新排列。

三、程序流程图和程序代码1、流程图2、代码与注释(代码不能和指导书完全一样,写出注释,写出寄存器尤其是DS的值)data segmentbuf1 db 8,7,6,5,4,3,2,1data endscode segmentassume cs:code,ds:datastart: mov ax,data //传送数据段datamov ds,axmov dx,7 //dx放外循环7次L3: mov cx,dx //cx放内循环7次lea si,buf1 //将db里的数据传送到siL2: mov al,[si]cmp al,[si+1] //比较[si]与[si+1]jb L1 //[si]<[si+1],跳转到L1xchg al,[si+1] //[si]>[si+1],两两交换mov [si],alL1: inc si //si减1loop L2 //循环L2dec dx //外循环减1,没减到0则跳转到L3 jnz L3 //入内循环,计数初值mov ah,4chint 21hcode endsend start四、调试过程及遇到的问题1、程序执行截图2、调试用到的命令-U命令:查看数据段地址;-d命令:查看运行前后存储器内容;-g命令:运行程序;-t命令:查看运行前后寄存器和存储器内容。

3、遇到的问题及解决办法问题:运行程序后,数据1在存储器地址末尾没变。

微机原理与汇编语言课程设计-多功能定时器设计

微机原理与汇编语言课程设计-多功能定时器设计

中北大学微机原理与汇编语言课程设计任务书2009/2010 学年第二学期学院:电子与计算机科学技术学院专业:计算机科学技术学生姓名:学号:设计题目:多功能定时器设计起迄日期: 2010.6.12---2010.6.25设计地点:指导教师:下达任务书日期: 2010 年 6 月 12 日微机原理与汇编语言课程设计任务书中北大学微机原理与汇编语言课程设计说明书学生姓名:孔艳萍学号:0706034448学院: 电子计算机科学技术专业: 计算机科学技术题目: 多功能定时器成绩指导教师潘广贞雷海卫乔道迹2010 年 6月24日1. 引言通过微机原理与汇编语言课程设计,使学生根据所学的微机原理与汇编语言知识,进一步学习掌握汇编语言程序设计知识,充分理解计算机内部的管理、接口内容以及系统功能调用。

能针对一个简单的控制或汇编语言程序设计项目,做出分析,设计其硬件、软件,达到预期的控制目的。

2.需求分析“时钟功能处理程序”是运行于Windows 系统下的应用软件,主要用于实现时钟显示时钟调整以及倒计时功能。

此程序为用户提供了一个简单的人机对话界面。

在屏幕上显示系统当前的时间以及操作方法,它可以接受用户对系统系统时间颜色声音的常规性修改,并在确认修改后实现定时闹钟,画面颜色更改等功能。

3.总体设计下面从程序的整体流程、各个功能模块以及数据结构几个方面进行总体设计。

本程序的设计基本是参照《微型计算机原理与接口技术》教程里“汇编语言程序设计”一章中的DOS功能调用,中断程序的代码,然后设计出本程序各子程序的代码。

关于时钟信息的更新,由于试了好久都无法常驻内存,所以这里只好用最原始的办法——延时与循环。

延时的子程序是参照其他教程中发声程序的延时程序,利用in al,61h获得与cpu频率无关的延时。

4. 详细设计文件读写主要是在键盘上输入信息,在界面上实现定时器对声音,颜色,倒计时的控制。

Press a to change the time 12-24 ! 按a键可实现时间12制到24制的转换Press c to edit the alarm time ! 按c键可实现对闹钟的设定。

微机原理及汇编语言课程设计说明书

微机原理及汇编语言课程设计说明书

微机原理与汇编语言课程设计任务书1. 引言虽然已有多种更接近与人类自然语言的高级语言问世,但汇编语言以其执行速度快和能够实现对硬件的直接控制等独特的优点,依然广泛应用于实时的控制、嵌入式系统等软件开发的应用中。

在这次课程设计中这是一个综合性非常强的设计,在里面有宏的定义,过程的调用,dos、blos等中断的调用等等许多我们课堂上我们所没有接触过的东西,这都需要我们自学去完成,这使得我们不仅复习刚学过的一些简单的汇编语句,还能学到许多的新的知识,对我们以后的汇编编程有一个扎实的基础。

2.需求分析通过我们小组、指导老师和别的小组经过认真、仔细的讨论得出文本编辑器主要实现的一些功能如下:编辑功能:如插入、删除、修改、光标移动、显示行号列号、提示信息等;块操作:如剪切、拷贝、删除、粘贴等操作;文件操作:打开、关闭、保存、另存、插入等操作;热键和鼠标操作:既可热键也可使用菜单完成功能;完成鼠标的相关操作;3.总体设计用DOS系统功能调用和BLOS功能调用设计一个有菜单栏的编辑窗口。

在该窗口中可以实现文本的输入;可以利用“Del”键、“BackSpace”键、“Home”键、“End”键、“”、“”、“”、“”方向移动键实现对输入文本的全屏幕编辑。

使用彩色组和背景来设计界面颜色,利用DOS系统功能调用的磁盘文件存取技术实现文件的“新建”、“打开”、“保存”、“另存为”与“退出”功能。

在本课程设计中充分利用DOS和BLOS的终端功能,DOS提供了一组完成磁盘文件的建立、打开、关闭和读写等操作的功能的调用。

利用DOS和BLOS的功能调用,汇编语言可以实现对磁盘文件的存取。

利用BLOS功能调用中的10H终端类型,可以设置显示模式,设置窗口背景、字符颜色等。

调用DOS功能中的09号功能,可以实现显示菜单信息字符串。

调用BLOS中的键盘I/O朱红的调用(16H中断)中的0号功能,可以从键盘读取字符,通过对“Del”键、“BackSpace”键、“Home”键、“End”键、“”、“”、“”、“”方向移动键的扫描码的判断,结合10H中断的02H号、03H号还能确定光标的相应移动,从而实现对输入文本信息的全屏编辑。

计算机课程实验报告-《汇编语言与微机原理》[1]

计算机课程实验报告-《汇编语言与微机原理》[1]

常熟理工学院
计算机科学与工程学院实验报告 2013-2014学年第 2 学期
课程名称汇编语言与微机原理
专业计算机科学与技术
班级计科121
学号090312115
姓名王海波
实验地点N6-106
指导老师张雪伍
实验报告要求
1.在实验课前要认真预习实验内容,熟习实验的原理、方法及算法等。

2.根据实验指导书要求,认真完成实验内容;实验结束后,按照实验报告的要求认真填写相关内容。

3.实验时要带好实验指导书、实验报告本。

4.实验时要严肃认真,不得互相抄袭。

5.实验课的成绩由实验预习、实验过程、实验结果和实验报告四部分构成。

用Debug进行实验的示例实验报告必须包含内容说明:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

delay1 proc push bx push cx mov bx,timer1 dely1:mov cx,10 dely2:loop dely2 dec bx jnz dely1 pop cx pop bx ret delay1 endp delay2 proc push bx push cx mov bx,timer2 dely3:mov cx,10 dely4:loop dely4 dec bx jnz dely3 pop cx pop bx ret delay2 endp
end start
项目心得
在刚刚开始设想方案时无法将方案中的实物和实验箱中 的模块替代对应,而且关于E工位是否按时完成的检测无 法用程序来表达,后来经过和组内人员讨论,决定将这 一环节用一个外部传感器来检测,本项目中只需获得传 感器信号。 项目完成后最大的体会就是团队合作的重要性和将学习 到得东西用到实际应用中的成就感。
baohu proc push si push di push ax push cx
延时子程序
songhui proc push si push di 保护缓冲 push ax 区子程序 push cx mov si,offset leddt1 mov di,offset leddt mov si,offset leddt mov cx,8 mov di,offset leddt1 again1:mov al,[si] mov cx,8 在调用了8279的 mov [di],al again:mov al,[si] display8 inc si mov [di],al 后缓冲区的数变为断码, inc di inc si loop again1 inc di 所以需要将其保护起来 pop cx loop again pop ax pop cx pop di pop ax 将缓冲区 pop si pop di 内的断码 ret pop si 转化为真 songhui endp ret 正的数 baohu endp
各工位依次进行 mov dx,0f000h mov al, 01111111b out dx,al call delay1 mov al,10111111b out dx, al call delay1 mov al,11011111b out dx, al call delay1
检测E工位是否正常 jiance: mov dx,0f001h in al,dx cmp al,01111111b ;未完工 jnz l1 ;完工 call jishu1 jmp start l1: mov dx,0f001h in al,dx cmp al,01111111b jnz l1 call jishu2 jmp start ;主程序结束 mov ax,4c00h int 21h
8255接线方式及用法: CS接CS1 片选 A0接A0 A1接A1 A端口接发光管,输出状态 B端口接开关,输入状态
8279接线: CS接CS5 片选
接线实物图
七段管显示图
程序开始,各工位都停止 .data leddt db 8 dup(00h) leddt1 db 8 dup(00) timer1=1 timer2=2 .code start:mov ax, @data mov ds, ax mov dx,0f003h mov al, 82h out dx, al mov dx,0f000h mov al,0ffh out dx, al
微机原理项目汇报 题目:生产线控制系统设计
项目要求
某生产线用于装配某机械产品,总共有5个工位,分别 为A、B、C、D、E要求使用微机控制,总计45秒完成一 个产品的装配。A、B、C、D各需要8秒,E工位需要13 秒。其中E工位是关键控制工位,如果在E工位没有按照 要求的时间完成就要将A工位暂停,直到E工位完成后给 A一个完成信号重新启动A工位。要求记录完成的工件数 和生产线发生故障的次 out dx, al call delay1
mov al,11110111b out dx, al call delay2
jishu1 proc push cx push di push bx push si mov si,offset leddt mov cx,4 check3:mov bl, [si] inc bl cmp bl,9 jbe check4 mov byte ptr[si],0 inc si loop check3 check4: mov [si],bl mov si,offset leddt call baohu call display8 call songhui pop si pop bx pop di pop cx ret
未完工时计数及七 段管显示子程序
完工时计数及七 段管显示子程序
jishu2 proc push cx push di push bx push si mov si,offset leddt mov cx,4 check1:mov bl, [si+4] inc bl cmp bl,9 jbe check2 mov byte ptr[si+4],0 inc si loop check1 check2: mov [si+4],bl mov si,offset leddt call baohu call display8 call songhui pop si pop bx pop di pop cx ret jishu2 endp
方案预想
用8255的A端口输出来控制五个发光管代表生产线各个工位 运行状态,用B端口来输入仪器上第八个开关的状态,表示 检测到得E工位是否正常结束,若正常结束,则完工计数一 次,重新从A工位开始循环,若E工位未在13秒内完工,则E 灯继续亮,直至E工位完工,故障计数一次,再从A开始循环。 其中,计数的七段管用8279芯片控制。
相关文档
最新文档