微机原理及接口技术实训报告.doc

上传人:laozhun 文档编号:2882069 上传时间:2023-03-01 格式:DOC 页数:24 大小:185KB
返回 下载 相关 举报
微机原理及接口技术实训报告.doc_第1页
第1页 / 共24页
微机原理及接口技术实训报告.doc_第2页
第2页 / 共24页
微机原理及接口技术实训报告.doc_第3页
第3页 / 共24页
微机原理及接口技术实训报告.doc_第4页
第4页 / 共24页
微机原理及接口技术实训报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《微机原理及接口技术实训报告.doc》由会员分享,可在线阅读,更多相关《微机原理及接口技术实训报告.doc(24页珍藏版)》请在三一办公上搜索。

1、吉林工业职业技术学院(微机原理及接口技术实训报告)( 2011 2012学年第2学期)实训地点: 单片机实训室 指导教师: 左永文、李宝泉 专业班级: 计算机3101 学生姓名: (34)裴京艳 吉林工业职业技术学院2012年 7 月6日目录实训地点1实训目的1实训内容1实训1微型计算机结构认识1实训2数码管显示3实训3汇编语言上机编程4实训4按键加1减16实训5动态显示11实训6外中断14实训7智力强答器16实训心得18参考文献19实训地点单片机实训室实训目的微机原理与接口技术”是一门实践性较强的技术,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本实习的目的就是要达到理论与实际

2、应用相结合,使同学们能够根据“微机原理与接口技术”的特性,学会利用DEBUG调试汇编程序,通过实训更深一步理解各种接口的工作原理,培养基本的、良好的“微机原理与接口技术”技能。掌握微机“微机原理与接口技术”基本的思想,提高学生的学习兴趣及学习水平。实训内容1. DOS常用命令、debug指令、8086指令使用2.汇编语言程序结构3.七种寻址方式验证数据纪录4.汇编语言编程上机练习5.接口技术实训题目一6.接口技术实训题目二7.测试、撰写实习报告实训1微型计算机结构认识一计算机系统分类微型计算机系统可分为:1.硬件系统和 2.软件系统。软件系统分为:1.系统软件 2.应用软件。硬件系统分为:1.

3、主机。 2.外部设备。二 计算机系统结构其系统结构图如图1所示:图1 微型计算机系统结构图二 计算机操作系统的层次结构其结构由上而下为:用户级、系统应用程序级、操作系统级、机器语言级、微程序级、硬件连接逻辑级。其中最低的两级为硬件级,是具体实现机器指定功能的中央控制部分,也是整个系统运行的物理基础。包括逻辑电路及时序电路等硬件设备以及微程序(固件),它根据各种指令操作所需的控制时序,配备一套微指令,编写出微程序,控制信息在系统内部的传送。第三级是机器语言级。机器语言是计算机唯一能够识别的语言。程序员用机器语言编写的程序有微程序来进行解释。第4级向上,一般讲属于软件系统的讨论范畴。操作系统是用来

4、管理整个计算机系统硬件并支持用户开发应用的一种系统软件,它是运行在机器语言级上的解释程序。系统应用程序是直接为用户开发应用软件提供的工具和平台,它包括各种编译系统、网络系统及为应用程序提供开发平台的各种工具软件。最上一层才是用户级,用户可在各类系统软件的支持下完成自己的应用程序设计。例外,非计算机专业人员也能够利用这一级提供的各种应用语言,通过键盘或其他方式向计算机发出请求,进入相应的信息处理系统。系统软件就是操作系统为用户提供的应用程序开发平台,应用软件就是我们平时使用为完成某种特定任务使用的软件。硬件系统中的外部设备就是通过计算机的外部接口连接的设备。比如说键盘、鼠标、打印机,等。主机中分

5、为:微处理器(central processing unit CPU)其中包括 运算器、控制器、寄存器组,它是整个硬件系统的核心。存储器(Memory)分为:1.用于在运行中暂时存储cpu正在执行的指令和数据的主存储器(即内存)。 2.为提高系统整体存取速度而设置的告诉缓冲存储器(Cache)。 3.用于大容量信息保存的磁盘存储器和光盘存储器等。总线(Bus)分为cpu总线 、系统总线 、外设总线 。当然还用其他的分类方式。输入/输出接口(Input/Output Interface)即 Io接口。用于计算机连接各种外部设备。如鼠标,键盘,打印机。接口的种类有很多如 USB, E-SATA ,

6、电源接口,显示其接口等。实训2数码管显示一数码管显示前的准备操作准备8根线,在板1上进行插线操作,a口对应P0.0,b口对应P0.1,以此类推,最后一个Dp口对应P0.7,然后写入代码。二数码管显示的代码说明其代码如下:ORG 0000HMAIN:MOV P0,#( )HLJMP MAINEND操作时,只需将第二行代码的括号部分换成想显示数字的段码值即可,比如:通过数码管显示数字“0”,则括号部分应写入“#0C0H”。其参考段码表如表1所示:显示P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0段码DPgfedcba“0”11000000C0H“1”11111001F9H“2”1

7、0100100A4H“3”10110000B0H“4”1001100199H“5”1001001092H“6”1000001082H“7”11111000F8H“8”1000000080HA0000100008HB0000001103HC0100011046HD0010000121HE0000011006HF000011100EH表1段码表实训3汇编语言上机编程一为运行汇编语言程序至少要在磁盘上建立以下文件:1编辑程序,如EDIT.EXE2汇编程序,如MASM.EXE (需要将masm.Exe从U盘复制到c盘根目录)3连接程序,如LINK.EXE (需要将link.Exe从U盘复制到c盘根目录

8、)4调试程序,如DEBUG.COM,例 : 在屏幕上输出字符串how do you do? (p98)经开始运行进入编辑程序EDIT在磁盘上建立如下的源程序hdyd.ASM。stack segment stack ;定义堆栈段 dw 512 dup(?) ;分配堆栈段有512字(1024字节)空间(p104)stack ends;堆栈段结束data segment ;定义数据段buf db How do you do?,0dh,0ah,$ (0dh:回车;0ah:换行。P109)data ends ;数据段结束code segmentcode ;定义代码段 assume cs:code,ds:

9、data,ss:stack ( 段开始:代码段送cs;数据段送ds;堆栈段送ss。P106)start: mov ax,data ;建立DS段地址 mov ds,ax mov dx,offset buf (设置输出字串的偏移地址,p100) mov ah,9 (9号功能调用) int 21h 输入功能入口地址 mov ax,4c00h 推出程序,推出时ah必须为4c int 21h ;利用功能调用返回DOScode ends ;代码段结束 end start ;汇编结束,同时指明程序起始点二用MASM程序产生OBJ文件 源程序建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OB

10、J文件),其操作与汇编程序回答如下:Cmasm hdyd Object filename hdud.OBJ:Source listing NUL.LST: hdydCross-referenceNUL.CRF: hdyd49952+451856Bytes symbol space free汇编程序的输入文件是ASM文件,其输出文件可以有三个,表示于上列汇编程序回答的第24行。第一个是OBJ文件,这是汇编的主要目的,所以这个文件我们是需要的,对于hdud.OBJ后的:应回答。这样就在磁盘上建立了这一目标文件。第二个是LIST文件,称为列表文件,这个文件同时列出源程序和机器语言程序清单,并给出符号

11、表,因而可是程序调试更加方便。这个文件是可又有可无的,如果不需要则可对 hdyd.OBJ:回答;如果需要这个文件,则可回答文件名,这里是hdyd,这样列表文件HOLLE.LIST就建立起来了。汇编程序能提供的第三个文件是CRF文件,这个文件用来产生交叉引用表REF。对于一般程序不需建立此文件,所以对于第5行的NUL.CRF:可以用来回答,这样就完成了会变过程。如果希望建立交叉引用表,则应该用文件名来回答,这里是hdyd,这样就产生了HOLLE.CRF文件。到此为止,汇编过程已经完成了,但是,汇编程序还有另一个重要功能;可以给出源程序中的错误信息。警告错误(warning errors)指出汇编

12、程序所认为的一般性错误;严重错误(severe errors)则指出汇编程序认为已使汇编程序无法进行正确汇编的错误。除给出错误的个数外,并重新汇编直到汇编正确通过为止。当然汇编程序只能指出程序中的语法错误。至于程序的算法或编制程序中的其他错误则应在程序调试时去解决。三用LINK程序产生EXE文件汇编程序已产生出二进制的目标文件(OBJ),但OBJ文件并不是可执行文件,还必须使用连接程序(LINK)把OBJ文件转换为可执行的EXE文件。当然,如果一个程序是由多个模块组成时,也是该通过LINK把它们连接在一起,操作方法及机器回答如下:Clink hdydRunFile HOLLE.EXE:List

13、File NUL.MAP: hdyd Libraries .LIB:LINK程序有两个输入文件OBJ和LIB。OBJ是我们需要连接的目标文件,LIB则是程序中需要用到的库文件,如无特殊需要,则应对.LIB:回答。LINK程序有两个输出文件,一个是EXE文件,这当然是我们所需要的,应对HOLLE.EXE:回答,这样就在磁盘上建立了该可执行文件。LINK的另一个输出文件为MAP文件,它是连接程序的列表文件,又称连接映象(Link map),它给出每个段在存储器的分配情况。 若连接程序给出的无堆栈的警告性错误并不影响程序的运行。到此为止,连接过程已经结束,可以执行hdyd程序了。四程序的执行在建立了

14、EXE文件后,就可以直接从DOS执行程序,如下所示:C hdydHow do you do?C程序运行结束并返回DOS。五.查看结果经汇编、连接后,形成hsys.exe,在DEBUG下装入此文件,用U查看程序。C:DEBUG hsys.exe实训4按键加1减1一按键加1减1显示前的准备操作1.准备12根线2. U11连接P0.4,U12连接P0.3,U13连接P0.2,U14连接P0.1,A连接P2.0,B连接P2.1,C连接P2.2,D连接P2.3,E连接P2.4,F连接P2.5,G连接P2.6,CDP连接P2.7。3.写入代码并下载通电二、按键加1减1的原理图其原理图如图2所示:图2加1减

15、1原理图三按键加1减1的代码其程序代码如下所示:ORG 0000HMOV 30H,#00HM: LCALL XSLCALL ADD1LCALL YSLJMP MADD1:INC 30HMOV A,30HCLR CYSUBB A,#10HJC AA0MOV 30H,#00HAA0:RETXS: MOV A,30HMOV DPTR,#TABMOVC A,A+DPTRMOV P0,ARETYS: MOV R3,#0FFHYS1: MOV R4,#0FFHYS2:MOV R5,#0FFHYS3:NOPDJNZ R5,YS3DJNZ R4,YS2DJNZ R3,YS1RETTAB: DB 1100000

16、0B DB 11111001B DB 10100100B DB 10110000B DB 10011001B DB 10010010B DB 10000010B DB 11111000B DB 10000000B DB 00001000B DB 00000011B DB 01000110B DB 01000000B DB 00000110B DB 00001110B END按键减一程序ORG 0000HMOV 30H,#0FHM: LCALL XSLCALL SUBB1LCALL YSLJMP M ADD1:INC 30HMOV A,30HCLR CYSUBB A,#10HJC AA0MOV

17、30H,#0FHAA0:RETSUBB1: DEC 30HMOV A,30HCLR CYSUBB A,#0FH JC AA1MOV 30H,#0FHAA1:RETXS: MOV A,30HMOV DPTR,#TABMOVC A,A+DPTRMOV P0,ARETYS: MOV R3,#006HYS1: MOV R4,#0FFHYS2:MOV R5,#0FFHYS3:NOP DJNZ R5,YS3DJNZ R4,YS2DJNZ R3,YS1RETTAB: DB 11000000B DB 11111001B DB 10100100B DB 10110000B DB 10011001B DB 100

18、10010B DB 10000010B DB 11111000B DB 10000000B DB 10001000B DB 10000011B DB 11000110B DB 10100001B DB 10000110B DB 10001110B END三 按键加1减1的显示效果描述通电后,默认显示是“0”,加1和减1键、分别能起到数字1到字母F的变换操作。实训5动态显示一 动态显示前的准备操作1. 准备14根线2. 连接3. 。二 动态显示的原理图其原理图如图3所示:图3 动态显示原理图三动态显示的代码其程序代码如下所示:XDEQUP2S1EQU30H ;个位显示缓冲区XS2EQU31H;十

19、位显示缓冲区XS3EQU32H;百位显示缓冲区XS4EQU33H;千位显示缓冲区XQ1EQUP0.4;个位显示器驱动端口XQ2EQUP0.5;十位显示器驱动端口XQ3EQUP0.6;百位显示器驱动端口XQ4EQUP0.7;千位显示器驱动端口ORG0000HLOOP:MOVXS1,#01H;个位显示缓冲区MOVXS2,#02H;十位显示缓冲区MOVXS3,#03H ;百位显示缓冲区MOVXS4,#04H ;千位显示缓冲区MOV50H,#0FHMOV51H,#06H;- 显示子程序 -MAIN:LCALLXSLJMPMAINXS:MOV A,XS1;显示缓存内容送AMOVDPTR,#DM;段码首地

20、址送数据指针MOVCA,A+DPTR;查段码表MOVXD,A;查表结果送显示端口CLRXQ1;点亮显示器1(XS1)LCALLYS;调用延时子程序SETBXQ1;熄灭显示器1(XS1)MOVA,XS2;显示缓存内容送AMOVCA,A+DPTR;查段码表MOVXD,A;查表结果送显示端口CLRXQ2;点亮显示器2(XS2)LCALLYS;调用延时子程序SETBXQ2;熄灭显示器2(XS2)MOVA,XS3;显示缓存内容送AMOVCA,A+DPTR;查段码表MOVXD,A;查表结果送显示端口CLRXQ3;点亮显示器3(XS3)LCALLYS;调用延时子程序SETBXQ3;熄灭显示器3(XS3)MO

21、VA,XS4;显示缓存内容送AMOVCA,A+DPTR;查段码表MOVXD,A;查表结果送显示端口CLRXQ4;点亮显示器4(XS4)LCALLYS;调用延时子程序SETBXQ4;熄灭显示器4(XS4)RET;子程序返回;- 显示段码表 -DM:DB0C0H;O的段码DB0F9H;1的段码DB0A4H;2的段码DB0B0H;3的段码DB099H;4的段码DB092H;5的段码DB082H;6的段码DB0F8H;7的段码DB080H;8的段码DB090H;9的段码DB089H;A的段码DB0C0H;B的段码;- 延时1ms子程序 -YS:MOVR7,#0FHYS1:MOVR6,#05HYS2:D

22、JNZR6,YS2DJNZR7,YS1RETEND四 动态显示的显示效果描述实训6外中断用外中断INT0进行数据采集,向P1口置数10101010B,随后申请中断。单片机响应中断后,采集这组数据并取反,然后从P0口输出数据01010101B并显示。(外中断知识)org 0000hljmp mainorg 0030hljmploopmain: movp1,#0ffHsetb easetb ex0setb it0a0: ljmp a0loop: mov a,p1cpl amov p0,a retiendLED输出实验板上编写一个定时中断键盘输入程序,通电后P0口的8个发光二极管点亮25秒,熄灭25

23、秒反复循环。当P1.0口接的按键按下时,使P1.2口接的LED灯点亮、熄灭变化。要求以CPU对键盘的定时中断扫描方式进行,用T0的方式1定时时间50ms。org 0000hajmp mainorg 000bhljmp loop1main:mov tmod,#01h mov tl0,#18h mov th0,#0fch setb EA setb ET0 setbTR0loop: mov p0,#00h lcall del25s mov p0,#0ffh acall del25s ljmp looploop1:mov tl0,#0ffh mov th0,#0ffh jb p3.4,re clr t

24、r0 mov30H,#0AHAA0:mov p1,#00h lcall del25smov p1,0ffhlcall del25sdjnz30H,AA0setb tr0re: nop retidel25s: mov r5,0ahdel1: mov r6,#0fFhdel2: mov r7,#0fhdel3: djnz r7,del3 djnz r6,del2 djnz r5,del1 ret end实训7智力强答器一智力抢答器的准备前操作1.2.3.二 智力抢答器的要求1只有裁判员发出指令,选手才能抢答,LED1亮2只要有一个选手抢到,其他选手再按不起作用,LED23数码管指示选手号4复位,数

25、码管指示0三智力抢答器的原理图其原理图如图4所示图4 智力抢答器的原理图四.智力抢答器的代码其程序代码如下所示: ORG0000H ;初始化LJMPSTART ;指令跳转到标号START执行AA0:MOVP0,#0C0HCLRP1.3SETBP1.2SETBP1.3SETBP1.4 START:MOVP2,#0FFH ;将P2口置为输入端MAIN:MOVA,P2 ;读键盘数据ORLA,#0F0H ;将A累加器的高四位置1CJNEA,#0FFH,AA1 ;比较A累加器中数据是否和0F0相等,如果相等,就顺序向下执行,如果不相等,说明有按键按下,跳转到标号AA1处执行后面的指令,JNB P2.3,

26、AA0 ;如果裁判员没按下,就往下执行,如果按下,就跳转到标号AA0处,执行后面的语句LJMPMAIN ;跳转到标号MAIN处继续查询键盘状态AA1:JBACC.0,AA2 ;判断A累加器的第0位是否为零,如果不为零就跳转到AA2处执行A0: CLRP1.2 ;点亮P1.2口的发光二极管,显示选手键盘按下 SETB P1.3 ;将P1.3位置1,熄灭裁判员指示灯MOVP0,#0F9H ;显示1号选手JNBP2.3,AA0 ;查询裁判员键有没有按下LJMPA0 ;跳转到A0处,不执性其他语句AA2:JBACC.1,AA3 A1:CLRP1.3 SETB P1.2 MOVP0,#0A4H JNBP

27、2.3,AA0 LJMPA1 AA3:JBACC.2,MAINA2: CLRP1.2 SETB P1.3MOVP0,#0B0HJNBP2.3,AA0LJMPA2 END实训心得10天的实训转眼即逝,大体来讲,通过这次的实训,使我们对微机原理有了更深的认识和了解。在单片机实训室里,体会到了亲手做实验的乐趣。其中做智力抢答器的这一部分,印象由为深刻。在第一节课上做数码管显示的时候,就对这个项目产生了很大的兴趣,起初第一次下载完成并通电查看效果的时候,感觉特别神奇。到了做智力抢答器的时候,却并没有想象中简单,期间出现了许多错误,而后通过小组的研究以及老师的纠正,最终顺利完成了实验,并看到了理想的实验效果。在实训期间,通过做“按键加1减1显示”,“动态显示”及“智力抢答器”等实验,更好的了解了接口技术的概念,参考文献1 孙立坤.微机原理与接口技术.机械工业出版社.2007.92 张黎明.网络操作系统管理与应用.机械工业出版社.2005.73 谢维成.单片机原理与应用.机械工业出版社.2006.94 彭虎.微机原理与接口技术.电子工业出版社.2011.35 郑学坚.微型计算机原理及其应用.清华大学出版社.2011.5装机与组网实训评定教师评语:学生成绩评定: 教师: 年 月 日教师评语内容:注:1.实践操作技能2.课程设计报告质量3.课程设计纪律情况

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号