还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
微机原理与应用教学课件第一章微型计算机系统概述微机的发展历程微机系统的基本组成微型计算机自1971年Intel推出第一款微处理器4004开始,经历了从4位、8位到现微型计算机系统主要由以下几部分构成代多核处理器的飞跃发展每一代微处理器的更迭都伴随着运算能力的成倍增长中央处理器CPU系统的核心,负责执行指令和数据处理和体积的不断缩小存储器包括内存RAM和只读存储器ROM,用于存储程序和数据按照处理器位数可将微机分为输入设备键盘、鼠标、传感器等,用于数据输入•4位微机早期计算器和简单控制设备输出设备显示器、打印机等,用于结果输出•8位微机个人电脑早期形态,如Apple II总线系统连接各个部件的数据通道•16位微机以8086/8088为代表的个人电脑•32位微机80386及后续发展的处理器•64位微机现代主流个人电脑和服务器微机系统的结构图示典型微机系统框架图总线结构与信号说明微机系统的基本结构可以用冯•诺依曼架构来描微机系统中的总线通常包括三种类型述,主要包括运算器、控制器、存储器、输入设备和地址总线Address Bus用于传送内存地址或I/O端口输出设备五大部分其中运算器和控制器共同构成中地址,确定数据的来源和去向8086处理器有20根地央处理器CPU址线,可寻址1MB空间微机的各个功能部件通过总线相互连接,形成一个完数据总线Data Bus用于在CPU与内存或I/O设备之整的系统总线是微机系统内各功能部件之间传送信间传送数据8086有16根数据线,一次可传送2字节息的公共通道,它由一组线路组成,包括地址线、数数据据线和控制线控制总线Control Bus用于传送各种控制信号,如在实际系统中,还会包括各种接口电路,用于连接读/写信号、中断请求信号等,协调系统各部分工作CPU与外部设备,实现数据交换和控制功能典型的接口电路包括并行接口、串行接口、定时/计数器等在8086系统中,重要的控制信号包括•MRDC内存读控制低电平有效,表示CPU正在从内存读取数据•MWTC内存写控制低电平有效,表示CPU正在向内存写入数据•IORCI/O读控制低电平有效,表示CPU正在从I/O端口读取数据第二章计算机中的数二进制与十六进制补码表示法计算机内部使用二进制表示和处理数据,这是因计算机中使用补码来表示有符号整数,这种表示为电子元器件容易实现两种稳定状态在二进制法使得加减运算可以统一处理系统中,只有0和1两个数字,计算规则为逢二补码的定义进一•正数的补码等于其原码为了便于书写和阅读二进制数,通常使用十六进•负数的补码等于其原码的所有位取反再加1制表示法十六进制使用0-9和A-F共16个符号表示数值,其中A-F分别对应十进制的10-15在8位二进制补码表示中,最高位为符号位,0表示正数,1表示负数8位补码能表示的范围是-二进制与十六进制的转换关系128到+127•二进制数每4位对应十六进制的1位定点数与浮点数•例如二进制10101101转换为十六进制为AD定点数是指小数点位置固定的数值表示法,根据•十六进制数的每一位可直接展开为4位二进小数点位置分为定点整数和定点小数浮点数则制数用科学计数法表示,由符号位、指数和尾数组成,能表示范围更大的数值•例如十六进制C5转换为二进制为11000101数制转换实例演示十进制转二进制示例十进制小数转二进制示例方法除2取余,从下往上读取余数方法乘2取整,从上往下读取整数部分将十进制数157转换为二进制将十进制小数
0.625转换为二进制•157÷2=78余1•
0.625×2=
1.25,取整数部分1,小数部分
0.25•78÷2=39余0•
0.25×2=
0.5,取整数部分0,小数部分
0.5•39÷2=19余1•
0.5×2=
1.0,取整数部分1,小数部分0•19÷2=9余1从上往下读取整数部分,得到二进制小数
0.101•9÷2=4余1•4÷2=2余0•2÷2=1余0•1÷2=0余1从下往上读取余数,得到二进制数10011101补码加减法示例示例一计算5+-3的补码运算5的8位补码00000101-3的8位补码•3的原码00000011•按位取反11111100•加1得补码111111015+-3的补码运算00000101+11111101=000000102的补码第三章微型计算机系统8086处理器简介与发展背景的内部结构与工作模式80868086Intel8086是Intel公司于1978年推出的16位微处理8086内部采用总线接口单元BIU和执行单元EU器,是x86架构的奠基者,对计算机产业发展具两大功能块BIU负责与外部总线通信、地址生有里程碑意义8086采用HMOS工艺制造,包含成和指令预取;EU负责指令解码和执行这种结约29000个晶体管,时钟频率为5MHz-10MHz构实现了指令流水线技术,提高了处理效率8086的推出适逢个人计算机市场兴起之际,随后8086的工作模式IBM PC的选用进一步确立了其行业地位8086的8086可工作在最小模式和最大模式两种方式架构理念影响了后续几十年的处理器设计,包括
80286、
80386、
80486、Pentium系列直至现代最小模式MN/MX=1用于单处理器系统,简化x86处理器的总线控制信号最大模式MN/MX=0用于多处理器系统,支持8086最重要的特点包括总线仲裁和锁定操作•16位内部与外部数据总线8086的时序•20位地址总线,可寻址1MB内存空间•分段内存管理模式•增强的指令集,支持乘除运算和字符串处理寄存器详解8086通用寄存器8086处理器内部有四个16位通用寄存器,每个都有特定的常用功能AX累加器主要用于算术运算和I/O操作,可分为AH和ALBX基址寄存器用于存放内存寻址的基地址,可分为BH和BLCX计数寄存器用于循环操作的计数,可分为CH和CLDX数据寄存器用于I/O端口寻址和存放乘除运算结果的高位部分,可分为DH和DL这些寄存器的高低8位可独立使用,提高了编程灵活性例如,AX可分为高8位的AH和低8位的AL分别操作段寄存器8086采用分段内存管理模式,使用四个16位段寄存器来存放段地址CS代码段寄存器指向当前执行的程序代码所在段DS数据段寄存器指向当前程序使用的数据所在段SS堆栈段寄存器指向当前程序使用的堆栈所在段ES附加段寄存器指向附加数据段,通常用于字符串操作物理地址计算方式为段寄存器的值左移4位乘以16,再加上偏移地址例如,当CS=1000H,IP=2000H时,实际执行的物理地址为1000H×10H+2000H=12000H指针寄存器与变址寄存器IP指令指针存放当前执行指令在代码段内的偏移地址SP堆栈指针指向堆栈段中栈顶的偏移地址BP基址指针用于访问堆栈中的数据SI源变址寄存器通常用作字符串操作的源地址变址DI目的变址寄存器通常用作字符串操作的目的地址变址标志寄存器8086的标志寄存器包含9个标志位,分为状态标志和控制标志状态标志CF进位标志运算结果产生进位或借位时置1ZF零标志运算结果为零时置1SF符号标志运算结果为负时置1OF溢出标志有符号数运算结果超出表示范围时置1PF奇偶标志结果中1的个数为偶数时置1AF辅助进位标志低4位向高4位有进位时置1控制标志DF方向标志控制字符串操作的方向,0表示自左向右IF中断标志允许外部可屏蔽中断时置1寻址方式8086常用寻址方式复合寻址方式8086寻址方式是指确定指令操作数物理地址的方式8086提供多种灵活的寻址方式,使程序员能够方便地访问各种数据结构
4.寄存器间接寻址
1.立即寻址操作数的偏移地址存放在BX、SI、DI或BP寄存器中例如操作数直接包含在指令中,无需访问内存例如MOV AX,[BX];将DS:BX处的字传送到AXMOV AX,1234H;将立即数1234H传送到AX
5.基址寻址
2.寄存器寻址操作数的偏移地址是基址寄存器BX或BP的内容加上指令中的位移量例如操作数存放在CPU内部的寄存器中例如MOV AX,[BX+10H];将DS:BX+10H处的字传送到AXMOV AX,BX;将BX的内容传送到AX
6.变址寻址
3.直接寻址操作数的偏移地址是变址寄存器SI或DI的内容加上指令中的位移量例如指令中直接给出操作数在段内的偏移地址例如MOV AX,[SI+20H];将DS:SI+20H处的字传送到AXMOV AX,[1000H];将DS:1000H处的字传送到AX
7.基址变址寻址操作数的偏移地址是基址寄存器与变址寄存器内容之和再加上位移量例如MOV AX,[BX+SI+5];将DS:BX+SI+5处的字传送到AX
8.相对寻址用于转移指令,目标地址是当前IP加上指令中的位移量例如寻址方式实例分析基址寻址示例基址变址寻址示例MOV BX,1000H MOV AL,[BX+5]MOV BX,2000H MOVSI,10H MOV AX,[BX+SI]解析该指令将DS:1005H内存单元的内容传送到AL如果DS=2000H,则实际访问的物理地址为解析该指令将DS:2000H+10H内存单元的内容传送到AX如果DS=1000H,则实际访问的物理地址为2000H×10H+1000H+5=21005H1000H×10H+2000H+10H=12010H这种寻址方式特别适合于访问数组或结构体中的元素BX可以指向数组的起始地址,位移量表示元素在数组中的偏移量这种寻址方式非常适合于访问二维数组的元素例如,BX可以指向数组的基地址,SI可以用于计算特定行列元素的位置堆栈寻址示例MOV BP,SP MOV AX,[BP+4]解析该指令访问堆栈中的参数当BP用作基址寄存器时,默认使用SS段寄存器如果SS=3000H,SP=100H,则实际访问的物理地址为3000H×10H+100H+4=30104H第四章指令系统8086指令分类指令格式808680868086处理器的指令系统非常丰富,可以从功能上分为以下几类8086指令由操作码和操作数组成,长度可变,从1到6数据传送指令个字节不等指令格式通常包括
1.操作码指明执行的操作用于在寄存器之间、寄存器与内存之间传送数据,包括ModR/M字节指定寻址方式和寄存器通用数据传送指令MOV,PUSH,POP,XCHG等SIB字节在某些寻址方式中使用输入输出指令IN,OUT位移量用于计算操作数地址地址传送指令LEA,LDS,LES立即数直接包含在指令中的数据标志传送指令LAHF,SAHF,PUSHF,POPF控制转移指令
4.算术运算指令
2.用于改变程序执行顺序,包括用于实现各种算术运算功能,包括无条件转移指令JMP加减法指令ADD,ADC,SUB,SBB,INC,DEC,NEG,CMP条件转移指令JZ/JE,JNZ/JNE,JA/JNBE,JB/JNAE等乘除法指令MUL,IMUL,DIV,IDIV十进制调整指令DAA,DAS,AAA,AAS,AAM,AAD循环控制指令LOOP,LOOPE/LOOPZ,逻辑运算指令LOOPNE/LOOPNZ
3.子程序调用和返回指令CALL,RET用于位操作和逻辑运算,包括中断指令INT,INTO,IRET字符串操作指令逻辑运算AND,OR,XOR,NOT,TEST
5.移位指令SHL/SAL,SHR,SAR用于处理字符串数据,包括循环移位指令ROL,ROR,RCL,RCR串传送指令MOVS/MOVSB/MOVSW串比较指令CMPS/CMPSB/CMPSW串扫描指令SCAS/SCASB/SCASW串装入/存储指令LODS/LODSB/LODSW,STOS/STOSB/STOSW典型汇编指令示例8086数据传送指令示例算术逻辑指令示例控制转移指令示例MOV AX,1234H;将立即数1234H送入AXMOV BX,AX;ADD AX,BX;AX=AX+BXSUB CX,5;CX=JMP LABEL1;无条件跳转到LABEL1CMP AX,BX;将AX内容送入BXMOV CX,[SI];将DS:SI内存单元内容送入CX-5INC DX;DX=DX+1DEC SI;比较AX和BXJE EQUAL;如果相等则跳转到EQUALJNECXMOV[DI],DX;将DX内容送入DS:DI内存单元PUSH SI=SI-1NEG AL;AL=0-AL求补MUL NOTEQUAL;如果不相等则跳转到NOTEQUALJA ABOVE;AX;将AX内容压入堆栈POP BX;从堆栈弹BL;AX=AL×BL无符号乘法DIV CX;如果AXBX无符号则跳转JL LESS;如果AX出数据到BXXCHG AX,BX;交换AX和BX的内容AX/CX,商在AL,余数在AHAND AL,0FH;AL与0FH按位与ORBL,80H;BL与80H按位或XOR CX,CX;CX清零CX与自身异或NOT DL;DL按位取反MOV指令是使用最频繁的指令,但有一些限制不能用于段寄存器之间的直接传送;不能将立即数直接送入段寄存器;源操作数和目的操作数不能同时为内存操作数算术指令会影响标志寄存器例如,ADD指令可能会影响CF、ZF、SF、OF、AF和PF标志逻辑指令通常会清除CF和OF,并根据结果设置ZF、SF和PF第五章汇编语言程序设计8086汇编语言程序结构汇编指令的编写规范一个完整的8086汇编程序通常包含以下几个部分汇编语言程序的编写需要遵循一定的规范.MODEL SMALL;内存模型声明.STACK100H;堆栈段定标号定义以字母或下划线开头,可包含字母、数字和特殊字符,以冒号义.DATA;数据段开始;数据定义语句MSG DB结束例如LOOP1:Hello,World!$NUM DW1234H ARRAYDB10伪指令由汇编程序处理的命令,不产生机器码常用伪指令包括DUP.CODE;代码段开始MAIN PROC;主程序过程定义;代码语句MOV AX,@DATA MOVDS,AX;程•DB DefineByte定义字节数据序主体MOV AX,4C00H INT21HMAIN ENDP;主程序•DW DefineWord定义字数据过程结束;其他子程序定义SUB1PROC;子程序代码RETSUB1ENDPEND MAIN;程序结束,指定入口点•DD DefineDoubleword定义双字数据•PROC/ENDP定义过程•SEGMENT/ENDS定义段注释以分号;开始,直到行尾程序调试与运行环境8086汇编程序的开发和调试通常使用以下工具汇编器将汇编语言程序转换为目标代码常用的有MASMMicrosoftAssembler和TASMTurbo Assembler连接器将目标代码转换为可执行文件,如LINK调试器用于程序的测试和调试,如DEBUG,TDTurbo Debugger集成开发环境如MASM IDE,TASM IDE等调试程序时常用的命令包括•单步执行T命令•设置断点BP命令•查看/修改寄存器内容R命令•查看/修改内存内容D/E命令汇编程序实例简单加法运算123程序目标程序代码运行结果分析设计一个简单的8086汇编程序,实现两个16位数的加法运算,并将结果以十六进制形式显示在屏幕上.MODEL SMALL.STACK100H.DATA NUM1DW1234H;第一个操作数NUM2DW5678H;程序运行后,屏幕上将显示第二个操作数RESULT DW;存放结果MSG1DB The sum is:$HEX_DIGITS Thesum is:68ACDB0123456789ABCDEF.CODEMAIN PROC;初始化数据段寄存器MOV AX,@DATA MOVDS,这是因为1234H+5678H=68ACHAX;执行加法运算MOV AX,NUM1ADD AX,NUM2MOV RESULT,AX;显示提示信息MOV AH,09H LEADX,MSG1INT21H;显示结果16位十六进制数MOV BX,程序的主要功能部分包括RESULT;显示高字节MOV AL,BH CALLDISP_HEX_BYTE;显示低字节MOV AL,
1.初始化数据段寄存器DSBL CALLDISP_HEX_BYTE;返回DOS MOV AX,4C00H INT21HMAIN ENDP;子程序显
2.将两个操作数相加,结果存入RESULT示一个字节的十六进制值DISP_HEX_BYTE PROCPUSH AXPUSH BXPUSH CXPUSH DX
3.显示提示信息Thesumis:MOV BL,AL MOVCL,4SHR AL,CL;取高4位AND AL,0FH MOV BX,OFFSETHEX_DIGITS XLAT;查表转换为对应字符MOV DL,AL MOV AH,02H INT
4.将结果分高低字节显示为十六进制21H;显示高4位字符MOV AL,BL ANDAL,0FH;取低4位MOVBX,
5.使用子程序DISP_HEX_BYTE显示一个字节的十六进制值OFFSET HEX_DIGITS XLAT;查表转换为对应字符MOV DL,AL MOV AH,
6.在子程序中使用XLAT指令查表转换十六进制数字为对应的ASCII字符02H INT21H;显示低4位字符POP DXPOP CXPOP BXPOP AXRETDISP_HEX_BYTE ENDPENDMAIN汇编程序实例字符串处理字符串复制程序字符串比较程序.MODEL SMALL.STACK100H.DATA SRC_STR DBHello,Assembly Language!,0DEST_STR DB50DUP MSG DB Copiedstring:.MODEL SMALL.STACK100H.DATA STR1DB Computer,0STR2DB Computing,0EQUAL_MSGDBStrings areequal$NOT_EQUAL_MSG$.CODEMAIN PROC;初始化数据段寄存器MOV AX,@DATA MOVDS,AX MOVES,AX;设置源字符串和目标字符串的地址LEA SI,SRC_STR DBStrings arenot equal$.CODEMAIN PROC;初始化数据段寄存器MOVAX,@DATA MOVDS,AX MOVES,AX;设置两个字符串的地址LEA DI,DEST_STR;使用字符串操作指令复制字符串CLD;设置方向标志,从低地址到高地址COPY_LOOP:LODSB;LEA SI,STR1LEA DI,STR2;比较字符串CLD;设置方向标志,从低地址到高地址COMPARE_LOOP:LODSB;ALAL=DS:[SI],SI=SI+1STOSB;ES:[DI]=AL,DI=DI+1CMP AL,0;检查是否到达字符串结尾JNZ=DS:[SI],SI=SI+1MOV BL,ES:[DI];BL=第二个字符串的当前字符INC DI;DI=DI+1CMP AL,BL;比较COPY_LOOP;如果不是,继续复制;显示提示信息MOV AH,09H LEADX,MSG INT21H;显示复制后的字符串MOV AH,09H LEADX,两个字符JNZ NOT_EQUAL;如果不相等,跳转CMP AL,0;检查是否到达字符串结尾JNZ COMPARE_LOOP;如果不是,继续比较DEST_STR INT21H;返回DOS MOVAX,4C00H INT21HMAIN ENDPENDMAIN CMPBL,0;检查第二个字符串是否也结束JNZ NOT_EQUAL;如果没有结束,长度不同,字符串不相等;字符串相等MOVAH,09HLEA DX,EQUAL_MSG INT21H JMPEXIT NOT_EQUAL:;字符串不相等MOVAH,09H LEADX,NOT_EQUAL_MSG INT21H EXIT:;返回DOSMOV AX,4C00H INT21HMAIN ENDPENDMAIN第六章仿真平台的使用Proteus简介安装与配置ProteusProteus是一款功能强大的电子设计自动化软件,集电路仿真、PCB设计和虚拟仪器于一体对于微机原理学习,其最重要的Proteus的安装过程功能是能够仿真8086及其外围电路的工作过程
1.运行安装程序,按照向导提示完成安装Proteus包含两个主要组件
2.安装完成后,启动ISIS软件ISIS用于原理图绘制和电路仿真
3.在首次使用时需要配置库文件路径ARES用于PCB设计与布线
4.设置仿真参数,包括时钟频率和动画速度在微机教学中,主要使用ISIS进行8086系统的搭建与仿真为确保8086仿真的正常运行,建议安装最新版本的Proteus,并确保安装了包含8086模型的库文件仿真环境搭建仿真调试基本操作8086在Proteus中搭建基本的8086系统需要以下步骤Proteus中的调试功能非常强大,主要包括
1.放置8086/8088处理器元件加载程序将编译好的HEX或BIN文件加载到仿真器的ROM/RAM中
2.添加时钟发生器和复位电路运行控制开始/暂停仿真,单步执行
3.连接地址锁存器和地址/数据总线断点设置在特定地址设置断点,当程序执行到该地址时暂停
4.添加ROM和RAM存储器寄存器查看实时显示CPU各寄存器的内容
5.添加必要的外围芯片
8255、
8253、8259等内存查看查看和修改内存中的数据
6.连接各芯片之间的总线和控制信号信号监测观察总线上的信号波形和电平变化对于初学者,可以使用Proteus中的预设模板作为起点,这些模板已经包含了基本的8086系统配置仿真案例演示Proteus案例一闪烁控制案例二键盘与显示器控制LED这个简单的案例演示如何使用8086和8255并行接口芯片控制LED闪烁这个更复杂的案例演示如何使用8086系统读取键盘输入并在七段数码管上显示硬件连接硬件连接•8086CPU连接到8255A并行接口芯片•8086CPU连接到两个8255并行接口芯片•8255的PA口连接到8个LED•第一个8255的PA口连接到矩阵键盘的行•8086的地址线A0-A1连接到8255的A0-A1•第一个8255的PB口连接到矩阵键盘的列•控制信号IOR#和IOW#连接到8255的RD#和WR#•第二个8255的PC口连接到七段数码管的段选信号软件代码•第二个8255的PA口连接到七段数码管的位选信号仿真过程演示.MODEL SMALL.STACK100H.CODEMAIN PROC;初始化8255,设置PA为输出模式MOVDX,8003H;控制寄存器地址MOV AL,10000000B;PA输出,PB和PC输入OUT DX,在Proteus仿真环境中,可以看到以下现象AL;主循环MAIN_LOOP:;LED全亮MOV DX,8000H;PA口地址MOV AL,0FFH;全1,LED全亮OUT DX,AL;延时CALL DELAY;LED全灭MOV
1.程序开始运行后,七段数码管显示初始值DX,8000H;PA口地址MOVAL,00H;全0,LED全灭OUT DX,AL;延时
2.点击矩阵键盘上的按键,可以看到相应的按键检测过程CALL DELAY;循环JMP MAIN_LOOPMAIN ENDP;延时子程序DELAY PROCPUSH CX
3.按键值被转换为七段码并显示在数码管上MOV CX,0FFFFHDELAY_LOOP:LOOP DELAY_LOOP POPCX RETDELAYPROCEND MAIN
4.通过观察CPU寄存器和内存窗口,可以追踪程序执行流程
5.使用波形查看器,可以分析I/O端口上的时序关系第七章微机接口技术基础常用接口芯片介绍微机系统需要通过各种接口芯片与外部设备进行通信以下是几种常用的接口芯片8255A并行接口芯片提供24个可编程I/O引脚,分为三个8位端口PA、PB、PC,可用于连接键盘、LED、打印机等并行设备8253/8254定时器/计数器包含三个独立的16位计数器,可用于产生精确时序、测量频率、产生PWM信号等8259A可编程中断控制器管理多达8个中断源,通过优先级处理机制向CPU提供中断服务8251A串行通信接口实现异步/同步串行通信,支持RS-232接口标准8257DMA控制器实现直接内存访问,在外设与内存之间高速传输数据而不占用CPU8279键盘/显示控制器专用于扫描键盘和驱动数码管显示接口电路设计原则设计微机接口电路时,需要遵循以下原则地址译码确保每个外设占用唯一的I/O地址空间,避免地址冲突时序匹配外设的时序要求必须与CPU的时序相兼容,必要时增加等待状态电平匹配不同器件之间的逻辑电平要兼容,必要时使用电平转换电路信号缓冲对于需要驱动大负载的信号,应使用缓冲器增强驱动能力抗干扰设计采用合理的布线和滤波措施,提高系统抗干扰能力模块化设计将功能相对独立的部分设计为模块,便于调试和维护寻址方式I/O8086处理器支持两种I/O寻址方式独立I/O寻址使用专门的I/O指令IN/OUT访问I/O设备,I/O地址空间与内存地址空间分开内存映射I/O将I/O设备映射到内存地址空间,使用内存访问指令MOV等访问I/O设备在8086系统中,独立I/O寻址方式下,可寻址的I/O端口范围为0000H-FFFFH64KB使用独立I/O寻址时,在执行IN/OUT指令时,CPU会激活IO/M#信号,表明当前是I/O操作而非内存操作中断与技术DMA为了提高系统效率,微机接口技术中广泛使用中断和DMA机制中断方式外设准备好数据后,向CPU发出中断请求,CPU暂停当前程序执行中断服务程序DMA方式外设直接与内存交换数据,不经过CPU,适用于高速数据传输并行接口芯片详解8255基本结构工作模式与端口配置8255A8255A是一种可编程并行接口芯片,广泛应用于微机系统中,用于连接各种并行外设,如键盘、打印机、开关、LED等8255A支持三种工作模式8255A内部结构包括模式0基本I/O模式简单的输入/输出操作,无握手功能模式1选通I/O模式带握手信号的数据传输,使用PC端口的部分位作为握手信号数据总线缓冲器连接CPU数据总线,实现双向数据传输模式2双向总线I/O模式仅适用于A端口,实现双向数据传输,带握手功能读/写控制逻辑响应CPU的读/写命令控制寄存器存储芯片的工作模式控制字格式写入控制寄存器三个8位端口端口APA0-PA
7、端口BPB0-PB7和端口CPC0-PC7D7D6D5D4D3D2D1D0┌───┬───┬───┬───┬───┬───┬───┬───┐│1│A模式│PA方│C上│B模式│PB方│C下││││向│方8255A的引脚包括向││向│方向│└───┴───┴───┴───┴───┴───┴───┴───┘│└─┬─┘││└─┬─┘││││││││││00=模式0│00=模式0││01=模式1│01=模式1││1x=模式2││││││││││D0-D7数据总线,与CPU连接│││0=输出│0=输出││1=输入│1=输入│││└──模式设置标志必须为1A0-A1地址线,用于选择内部寄存器RD#和WR#读写控制信号CS#片选信号PA0-PA
7、PB0-PB
7、PC0-PC7三个8位I/O端口RESET复位信号端口地址分配假设基地址为80H•端口A地址80H A0=0,A1=0•端口B地址81H A0=1,A1=0•端口C地址82H A0=0,A1=1•控制寄存器地址83H A0=1,A1=1实际应用示例交通灯控制以下是一个使用8255控制交通灯的简单应用例子在这个例子中,PA口连接到东西方向的红、黄、绿信号灯,PB口连接到南北方向的红、黄、绿信号灯定时计数器芯片应用8253/工作模式与控制字基本结构8253/82548253/8254支持6种工作模式8253/8254是可编程定时器/计数器芯片,内部包含三个独立的16位计数器,可用于产生精确的时间延迟、方波、脉冲等模式0计数结束中断主要特点模式1可编程单稳态触发器•三个独立的16位减计数器模式2比率发生器•六种不同的工作模式模式3方波发生器•计数范围从1到65536模式4软件触发选通•输入时钟频率高达10MHz8254可达8MHz模式5硬件触发选通•采用二进制或BCD计数方式控制字格式每个计数器有三个引脚CLK时钟输入、GATE门控制和OUT输出D7D6D5D4D3D2D1D0┌───┬───┬───┬───┬───┬───┬───┬───┐│计数器选择│读写操作│模式│BCD│└───┴───┴───┴───┴───┴───┴───┴───┘│││││││└─0=二进制计数│││1=BCD计数│││││000=模式0││001=模式1││x10=模式2││x11=模式3││100=模式4││101=模式5│││00=计数器锁存命令│01=只读/写低字节│10=只读/写高字节│11=先读/写低字节,再读/写高字节│00=计数器001=计数器110=计数器211=读回命令8254应用示例编程与初始化以下是一个使用8253产生1kHz方波的示例程序8253/8254的编程步骤中断控制器8259中断系统概述中断控制器8259A中断是微机系统提高CPU与外设并行工作效率的重要机制当外设需要CPU服务时,通过中断方式通知CPU,使CPU暂停当前任务,转而处理外设请求8259A是可编程中断控制器,用于管理多个中断源,减轻CPU的负担主要特点8086处理器支持两类中断•管理8个中断请求输入IR0-IR7•可级联扩展支持多达64个中断请求内部中断由CPU内部产生,如除法错误、溢出等•可编程的优先级处理方式外部中断由外部设备产生,通过INTR或NMI引脚输入•支持中断屏蔽和轮询方式8086的中断处理过程•支持自动结束中断AEOI模式
1.保存标志寄存器FLAGS和当前指令指针CS:IP8259A内部寄存器
2.清除中断标志IF和陷阱标志TF中断请求寄存器IRR记录当前的中断请求
3.通过中断类型号在中断向量表中查找中断服务程序的入口地址中断服务寄存器ISR记录正在服务的中断
4.跳转到中断服务程序执行中断屏蔽寄存器IMR控制哪些中断被屏蔽
5.执行完毕后通过IRET指令返回主程序优先级解析器确定多个中断同时发生时的处理顺序8086共支持256种中断类型,每个中断占用中断向量表中的4字节CS:IP,整个中断向量表占用0000:0000H到0000:03FFH的1KB空间初始化命令字ICW1-ICW4用于初始化配置操作命令字OCW1-OCW3用于运行时控制的编程与初始化8259A8259A的初始化需要按顺序写入4个初始化命令字ICW ICW1写入A0=0的端口,设置级联方式、中断触发方式等ICW2写入A0=1的端口,设置中断类型号的高5位ICW3写入A0=1的端口,设置主/从8259A的连接关系ICW4写入A0=1的端口,设置8086模式、自动结束中断等初始化完成后,可以使用操作命令字OCW进行运行时控制OCW1写入A0=1的端口,设置中断屏蔽位OCW2写入A0=0的端口,控制中断结束和优先级模式OCW3写入A0=0的端口,读取状态和设置特殊屏蔽模式以下是一个8259A初始化的示例代码第八章单片机基础与智能控制系统设计单片机结构简介单片机资源配置与应用场景80C5180C51是8051单片机的CMOS版本,是一种广泛应用的8位单片机它集成了CPU、存储器和各种I/O接口,具有以下特点80C51单片机系统开发通常需要以下资源配置•8位CPU,工作时钟最高可达12MHz最小系统包括单片机芯片、晶振电路和复位电路•片内4KB ROM和128字节RAM电源电路提供稳定的5V工作电压•4个8位并行I/O口P0-P3存储器扩展根据需要外接EPROM、FLASH或RAM•两个16位定时器/计数器接口电路连接各种外设,如LED、按键、液晶显示器等•全双工串行通信接口通信接口如RS-
232、RS-
485、USB等•5个中断源,两级中断优先级80C51单片机的典型应用场景包括•片内振荡器和时钟电路家电控制洗衣机、空调、微波炉等家用电器80C51的内部结构包括工业控制简单的PLC、温度控制器、电机控制等CPU核心8位处理器,执行指令和数据处理智能仪器数字万用表、频率计、信号发生器等内部存储器程序存储器和数据存储器通信设备简单的数据采集和传输设备特殊功能寄存器SFR控制和配置各功能单元车载电子汽车电子控制单元的简单应用I/O口连接外部设备的接口消费电子遥控器、玩具、简单的游戏设备等单片机接口设计实例人机接口电路设计传感器与执行器接口单片机系统中,人机接口是用户与系统交互的关键部分,主要包括输入设备和输出设备的接口设计传感器和执行器是单片机系统与物理世界交互的桥梁,其接口设计直接影响系统性能按键接口传感器接口
1.
1.按键是最基本的输入设备,接口设计需要考虑以下因素常见传感器接口类型包括按键抖动处理通过硬件滤波或软件消抖算法数字量传感器如红外传感器、霍尔传感器等,通常直接连接I/O口键盘扫描方式独立按键或矩阵键盘模拟量传感器如温度传感器、光敏电阻等,需要通过ADC转换中断触发方式电平触发或边沿触发数字通信传感器如DHT11温湿度传感器,使用单总线通信协议按键接口代码示例软件消抖温度传感器DS18B20接口代码示例单总线协议;独立按键检测子程序KEY_SCAN:MOVA,P1;读取P1口状态ANL A,#01H;屏蔽除P
1.0外的位JNZ KEY_OVER;如果没有按;DS18B20初始化DS18B20_INIT:CLR P
3.7;拉低总线MOV R7,#250CALL DELAY_US;延时大于480us SETB P
3.7;释下,返回;延时消抖约20ms CALL DELAY_20MS MOVA,P1;再次读取P1口状态ANL A,#01H JNZKEY_OVER;如果不是真正放总线MOV R7,#60CALL DELAY_US;延时60us JBP
3.7,INIT_ERROR;检测是否有应答信号MOV R7,#240CALLDELAY_US;延按下,返回;确认按键按下,等待释放WAIT_RELEASE:MOVA,P1ANL A,#01H JZWAIT_RELEASE;等待按键释放;按键处理代码INC时等待初始化完成SETBP
3.7;释放总线RETR0;例如计数器加1KEY_OVER:RET执行器接口
2.常见执行器接口设计继电器驱动通过三极管或光耦隔离电机驱动直流电机通过H桥驱动,步进电机通过驱动芯片控制PWM控制利用单片机的定时器产生PWM信号,控制电机速度或灯光亮度PWM控制代码示例用于调光或电机调速显示接口
2.常用的显示设备包括LED、数码管和LCD等,其接口设计如下LED接口直接驱动或通过驱动电路控制数码管接口静态驱动或动态扫描方式LCD接口并行或串行通信方式智能控制系统设计流程需求分析与系统规划1智能控制系统设计首先需要明确需求和目标,包括功能需求系统需要完成的任务和功能性能指标响应时间、控制精度、稳定性等工作环境温度、湿度、干扰源等环境因素可靠性要求平均无故障时间MTBF、冗余设计等成本预算开发成本和产品成本控制系统规划阶段需要制定详细的开发计划,包括•项目进度表和里程碑•资源分配和团队组建•风险评估和应对策略•验收标准和测试方案硬件选型与电路设计2硬件设计是智能控制系统的基础,主要包括控制器选型根据性能需求选择合适的处理器•单片机如80C
51、STM
32、Arduino等•嵌入式处理器如ARM Cortex系列•DSP或FPGA对于高性能实时控制传感器选型根据测量参数选择合适的传感器•温度传感器如PT
100、DS18B20•压力传感器、光敏元件等执行机构选型根据控制对象选择合适的执行机构•继电器、电磁阀、电机驱动等电路设计包括原理图设计和PCB布局布线•最小系统电路设计•信号调理电路设计•电源电路和保护电路设计软件设计与实现3软件设计是智能控制系统的核心,主要包括
1.软件架构设计•选择操作系统裸机、RTOS或Linux•确定软件分层结构•定义模块间接口
2.算法设计•控制算法如PID、模糊控制等•信号处理算法智能控制系统案例分享温度控制系统设计简易机器人控制示范下面以一个温度控制系统为例,展示智能控制系统的设计与实现以下是一个简易轮式机器人控制系统的设计案例系统需求系统需求
1.
1.•控制目标保持恒温箱内温度在设定值附近•控制目标实现机器人的移动控制和障碍物避开•温度范围0°C至100°C,控制精度±
0.5°C•功能要求前进、后退、转向、避障、循迹•操作界面LCD显示当前温度和设定温度,按键设置参数•操作方式遥控器控制或自主导航硬件设计•报警功能温度超出范围时声光报警
2.硬件设计
2.控制器STM32单片机更高性能控制器80C51单片机驱动电机两个直流减速电机温度传感器PT100铂电阻高精度电机驱动L298N双H桥驱动芯片信号调理运算放大器放大和滤波传感器A/D转换12位ADC芯片•超声波传感器HC-SR04测距避障执行机构固态继电器控制加热元件•红外传感器检测黑线实现循迹功能显示器1602字符LCD•编码器测量轮子转速输入设备4个功能按键通信模块蓝牙模块实现遥控功能报警电路蜂鸣器和LED指示灯电源锂电池组和电源管理电路软件设计软件设计
3.
3.系统初始化配置I/O口、ADC、定时器等系统架构采用分层设计温度采集定时读取ADC值并转换为温度•底层驱动电机控制、传感器读取PID控制算法根据设定温度和当前温度计算控制量•中间层运动控制算法、避障算法PWM输出通过PWM调节加热功率•上层任务规划、蓝牙通信显示模块更新LCD显示内容控制算法按键处理响应用户输入,调整参数•PID速度控制保持电机转速稳定报警处理监测温度是否超限并触发报警•避障算法基于超声波传感器的避障策略•循迹算法基于红外传感器的PID控制通信协议定义蓝牙通信的命令格式实现效果
4.这个简易机器人能够实现以下功能•通过手机APP遥控前进、后退和转向•自动避开前方障碍物•沿黑线路径自动行驶第九章现代微处理器技术与总线标准系列Intel80386/486/Pentium803861985年引入32位架构,支持4GB内存寻址,实现了保护模式和虚拟内存804861989年集成了浮点运算器和8KB一级缓存,提高了指令执行效率Pentium1993年采用超标量技术,实现指令级并行处理超标量和多级流水线技术超标量技术允许CPU同时执行多条指令,显著提高了处理能力多级流水线将指令执行分为取指、译码、执行、访存、写回等多个阶段,使得多条指令可以重叠执行Pentium处理器采用了5级流水线,后续处理器如Pentium4扩展到20多级多级缓存架构现代处理器采用多级缓存架构,包括L1一级、L2二级和L3三级缓存L1缓存分为指令缓存和数据缓存,容量较小但速度最快;L2缓存容量更大但速度略慢;L3缓存在多核处理器中通常被所有核心共享多级缓存大幅减少了对主存的访问次数,缓解了处理器与内存之间的速度差异多核与多线程技术多核技术在单个芯片上集成多个处理器核心,每个核心可以独立执行指令流超线程技术Intel或同步多线程AMD允许一个物理核心同时执行两个或更多线程,通过共享执行资源提高利用率现代桌面和服务器处理器普遍采用4-64核设计,结合多线程技术实现高度并行处理能力总线技术发展微机系统的未来趋势多核处理器与并行计算嵌入式系统与物联网应用随着单核频率提升遇到物理极限,多核技术成为提升处理能力的嵌入式系统正向小型化、低功耗和高度集成方向发展主要方向未来微处理器将呈现以下趋势系统级芯片SoC在单一芯片上集成处理器、存储器、通信接口核心数量增加桌面处理器向16-32核发展,服务器处理器可能超等全部功能过128核可穿戴设备智能手表、健康监测设备等对尺寸和功耗提出更高异构计算在同一芯片上集成不同类型的处理器核心,如大小核要求架构边缘计算将计算能力下沉到终端设备,减少云端依赖,提高实专用加速器集成AI加速器、图形处理单元、视频编解码器等时性能量收集技术利用环境能源如光、热、振动供电,实现自供能3D堆叠技术通过垂直堆叠多层芯片,增加单位面积的处理能力系统物联网IoT的发展使得微机应用更加广泛并行计算的发展对软件提出了更高要求智能家居智能家电、环境控制、安防系统等•并行编程模型的普及,如OpenMP、CUDA、OpenCL等智慧城市交通管理、环境监测、公共安全等•自动并行化编译器技术的进步工业物联网设备监控、预测性维护、生产优化等•更高效的任务调度和负载均衡算法医疗健康远程医疗、患者监护、慢性病管理等•针对并行架构优化的算法设计安全与隐私挑战新型计算架构随着微机系统的普及,安全与隐私保护变得尤为重要除了传统的冯•诺依曼架构,新型计算架构正在崭露头角硬件安全抵御物理攻击、侧信道攻击等威胁量子计算利用量子叠加和纠缠特性,为特定问题提供指数级加可信计算从硬件层面保证系统完整性和安全性速隐私保护数据加密、匿名化处理、隐私计算技术神经形态计算模拟人脑神经元网络的计算方式,提高能效和学习能力存内计算在存储器内部直接进行计算,消除数据传输瓶颈光子计算利用光信号代替电信号,提高传输速度和能效课程设计与实践要求设计任务说明本课程设计旨在综合应用微机原理与接口技术的知识,完成一个功能完整的微机系统设计设计任务可从以下方向选择
1.基于8086的微机系统设计•设计最小系统电路•扩展存储器和I/O接口•编写系统软件和应用程序
2.基于单片机的智能控制系统•温度控制系统1•电机控制系统•智能小车•数据采集与处理系统
3.微机接口扩展设计•A/D、D/A转换接口•串行通信接口•各类传感器接口每位学生需选择一个具体题目,完成从需求分析、方案设计到系统实现的全过程设计流程与要求课程设计需按照以下流程进行需求分析明确设计目标和功能需求方案设计提出总体方案和关键技术方案硬件设计绘制系统原理图和PCB图软件设计编写程序流程图和代码系统调试进行硬件调试和软件测试2撰写报告撰写完整的设计报告设计报告应包含以下内容•设计任务和需求分析•系统总体方案•硬件电路设计含原理图•软件设计含流程图和关键代码•调试过程和结果分析•参考文献评估标准课程设计的评估将从以下几个方面进行设计方案20%方案的合理性、创新性和可行性硬件实现25%电路设计的正确性、可靠性和完整性复习与知识点总结第一章和第二章1微机系统基础知识•微机发展历程从4004到现代多核处理器第三章和第四章2•微机基本组成CPU、存储器、I/O设备、总线系统•微机工作原理存储程序原理,取指令-分析-执行循环8086微机系统计算机中的数•8086内部结构总线接口单元BIU和执行单元EU•二进制与十六进制转换每4位二进制对应1位十六进制•8086寄存器组通用寄存器、段寄存器、指针寄存器、标志寄存器•补码表示法负数的补码=原码按位取反+1•8086寻址方式立即寻址、寄存器寻址、直接寻址、间接寻址等•定点数和浮点数小数点位置固定与浮动的数表示法•物理地址计算段地址×16+偏移地址8086指令系统第五章和第六章3•数据传送指令MOV,PUSH,POP,XCHG等汇编语言程序设计•算术运算指令ADD,SUB,MUL,DIV等•汇编程序结构数据段、代码段、堆栈段•逻辑运算指令AND,OR,XOR,NOT等•伪指令DB,DW,DD,PROC,ENDP等•控制转移指令JMP,JE,JNE,CALL,RET等•汇编程序开发流程编写-汇编-连接-调试•字符串操作指令MOVS,CMPS,SCAS等•常见算法实现排序、查找、数值计算等第七章和第八章Proteus仿真平台4•Proteus基本操作元件放置、连线、仿真控制微机接口技术•8086系统仿真最小系统搭建、接口扩展•8255并行接口三个8位端口,三种工作模式•程序调试断点设置、寄存器观察、单步执行•8253定时器三个16位计数器,六种工作模式•接口电路仿真LED、键盘、数码管等外设连接•8259中断控制器多级中断管理,优先级控制•I/O寻址方式独立I/O寻址和内存映射I/O第九章5单片机与智能控制系统现代微处理器技术•80C51结构内部ROM、RAM、I/O口、定时器等•Pentium及后续处理器超标量、多级流水线、多级缓存•传感器接口模拟量和数字量传感器连接方法•多核与并行计算核心数增加、异构计算、专用加速器•执行器接口继电器、电机、PWM控制等•新型计算架构量子计算、神经形态计算、存内计算等•智能控制系统设计流程需求分析到系统部署总线标准与发展趋势•内部总线PCI、PCI Express等•外部总线USB、SATA、HDMI等•嵌入式系统与物联网应用SoC、边缘计算、智能设备常见问题解析以下是学生在学习微机原理过程中常见的几个疑难问题问题的实模式和保护模式有什么区别?问题为什么要使用分段内存管理?问题中断和轮询方式的优缺点比较1808623课堂互动与答疑典型问题讨论学生提问与讲师解答问为什么采用段偏移的地址方式而不直接使用位地址?以下是学生在课堂上常提出的问题及解答8086+20问题汇编语言在现代编程中还有用吗?答这主要是历史和兼容性原因8086处理器内部是16位结构,寄存器宽度为16位,如果1直接采用20位地址,将无法在单个寄存器中存储完整地址通过段+偏移的方式,可以利用四个段寄存器和四个偏移寄存器组合出20位物理地址,既保持了与8080等早期处理器的虽然高级语言已经成为主流,但汇编语言在特定领域仍然非常重要软件兼容性,又扩展了寻址空间到1MB•系统底层编程操作系统内核、设备驱动等问学习单片机应该从哪个型号入手?还是?•嵌入式系统资源受限的微控制器编程8051STM32•高性能计算关键算法的优化答这取决于你的学习目标和背景8051结构简单,指令集清晰,适合初学者理解微控制•逆向工程与安全分析理解和分析编译后的代码器的基本概念;而STM32基于ARM Cortex-M内核,性能更强,外设更丰富,更接近现代工学习汇编语言能够帮助我们深入理解计算机的工作原理,对于编写高效代码和进行底层优业应用化非常有价值建议的学习路径是先学习8051,掌握单片机的基本概念和编程方法;然后过渡到STM32等更现代的32位微控制器这样可以循序渐进,避免一开始就面对复杂架构的困扰当然,如果你已经有一定的编程基础,也可以直接从STM32开始学习问题学习微机原理对于软件开发有什么帮助?2问课程设计中遇到硬件调试困难怎么办?微机原理知识对软件开发有多方面的帮助答硬件调试是嵌入式系统开发中最具挑战性的部分,建议采取以下方法•理解性能瓶颈了解CPU、内存和I/O的工作原理
1.分模块测试将系统分解为小模块,逐个验证功能•代码优化编写缓存友好的代码,避免不必要的内存访问
2.仿真优先先在Proteus等仿真软件中验证电路和程序•调试能力理解底层原理有助于分析和解决复杂问题
3.使用调试工具逻辑分析仪、示波器、万用表等•系统编程开发操作系统、驱动程序等底层软件
4.简化问题从最简单的功能开始测试,如点亮LED•安全编程理解缓冲区溢出、栈注入等安全漏洞的原理
5.检查基础问题电源、时钟、复位电路等基础部分虽然大多数开发人员不需要直接编写汇编代码,但了解底层原理可以使我们成为更全面的
6.查阅资料参考芯片手册和应用笔记中的推荐电路开发者
7.寻求帮助与同学讨论或向老师请教记住,硬件调试需要耐心和系统性思维,问题往往出在最基本的地方问题如何选择合适的微控制器?3问如何评估一个系统是否需要实时操作系统?选择微控制器时需要考虑多种因素答决定是否需要实时操作系统RTOS需要考虑以下因素•性能需求处理速度、内存大小、功耗•时间要求系统是否有严格的实时响应需求•外设需求I/O口数量、通信接口、A/D转换器等•任务复杂度是否需要管理多个并发任务•开发环境工具链成熟度、技术支持、资料丰富程度•资源管理是否需要复杂的资源分配和调度•成本因素单片价格、配套元器件成本•代码规模系统代码是否已经大到难以用单一循环管理•供应链考虑货源稳定性、生命周期•硬件资源微控制器是否有足够资源运行RTOS对于初学者,建议选择Arduino、STM32等有丰富社区支持和学习资源的平台;对于特定简单的系统可以使用超级循环或状态机方法;而复杂系统,特别是需要处理多个异步事应用,则需要根据实际需求进行选择件的系统,采用RTOS会使代码更结构化、可维护常用的嵌入式RTOS包括FreeRTOS、RT-Thread、uC/OS等结束语微机原理的学习与应用展望鼓励创新与持续学习理论与实践相结合微机技术发展迅速,新的处理器架构、接口标准和编程方法不断涌现微机原理是一门理论性与实践性并重的学科学习过程中,不仅要掌握作为未来的工程师和技术人员,需要保持持续学习的习惯基本概念和原理,更要通过实验和项目设计将知识应用到实际中创新思维对于解决复杂问题至关重要在课程设计和项目实践中,鼓励理论学习能够帮助我们理解系统的工作机制,而实践操作则能够加深对学生知识的理解和记忆建议学生在学习过程中•不拘泥于教材和讲义中的例子•理论学习与动手实践相结合•尝试新的设计方法和技术方案•使用仿真软件验证理论知识•关注前沿技术发展趋势•从简单电路开始,逐步增加复杂度•参与开源社区和技术交流•记录实验过程,总结经验教训微机原理的学习不应止步于课堂,而应该成为终身学习的一部分通过只有将理论知识转化为实际能力,才能真正掌握微机原理这门学科阅读技术文献、参与项目实践和技术社区,不断更新知识和技能微机技术的社会影响未来职业发展方向微处理器技术的发展已经深刻改变了人类社会从个人电脑到智能手微机原理与应用的学习为多种职业发展路径奠定了基础机,从工业自动化到人工智能,微机技术无处不在嵌入式系统开发智能设备、物联网产品、工业控制系统等作为微机技术的学习者和未来的开发者,我们应该意识到技术的社会责计算机硬件设计处理器设计、外设接口、硬件加速器等任系统软件开发操作系统、驱动程序、编译器等•考虑技术应用的伦理问题集成电路设计SoC设计、ASIC/FPGA开发等•关注隐私保护和信息安全人工智能硬件AI加速器、神经网络处理器等•思考如何通过技术解决社会问题无论选择哪个方向,微机原理的基础知识都将发挥重要作用建议学生•促进技术的普惠发展根据个人兴趣和市场需求,选择适合自己的发展方向,并有针对性地深希望每位学生不仅能够掌握微机原理的技术知识,还能够思考技术与社入学习相关知识会的关系,成为负责任的技术人才在这门课程的学习过程中,我们从微机的基本概念和组成,到8086处理器的结构和指令系统,再到接口技术和应用系统设计,系统地学习了微机原理与应用的核心知识相信通过课堂学习和实践,同学们已经建立了对微机系统的整体认识,并掌握了分析和设计简单微机系统的能力微机技术仍在不断发展,希望同学们能够保持学习的热情,在未来的学习和工作中继续探索微机技术的奥秘,并将其应用到实际问题的解决中祝愿每位同学在微机技术的道路上取得更大的成就!。
个人认证
优秀文档
获得点赞 0