资源描述
学 号:
课 程 设 计
题 目
存储器扩展分析与设计
学 院
自动化学院
专 业
自动化专业
班 级
姓 名
指导教师
向馗 副教授
2013
年
1
月
10
日
武汉理工大学《微机原理与接口技术》课程设计说明书
课程设计任务书
学生姓名: 专业班级:
指导教师: 向馗 副教授 工作单位: 自动化学院
题 目: 存储器扩展分析与设计
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1. 画出简要的硬件原理图,编写程序。
2.完成以下任务:
(1).设计一个EEPROM扩展电路,由两片2864扩展为16KB容量, 并编程信息检索程序。
(2). 编程内容:在扩展的ROM中存入有9个不同的信息,编号0到8,每个信息包括40个字字符。从键盘接收0到8之间的一个编号,然后在屏幕上显示出相应的编号的信息内容,按“q”键退出。
3. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:
2012年12月30 日----- 12月 31日 查阅资料及方案设计
2013年01月 01日----- 01月 05日 编程
2013年01月 06日----- 01月 08日 调试程序
2013年01月 09日----- 01月 10日 撰写课程设计报告
指导教师签名: 2013年 1月 11日
系主任(或责任教师)签名: 年 月 日
目录
摘要 1
1设计意义及任务 2
1.1设计意义 2
1.2设计任务 2
2 EEPROM扩展电路设计 3
2.1方案设计 3
2.2芯片选择 3
2.3连线说明 4
2.4硬件电路图 5
3程序设计 6
3.1设计思路 6
3.2程序框图 6
3.2.1主程序流程图 6
3.2.2输入程序流程图 6
3.2.3输出程序流程图 6
3.3设计程序一 8
3.4设计程序二 10
3.5调试过程 12
3.5.1调试过程 12
3.5.2结果记录 12
3.5.3调试过程中遇到的问题 13
结束语 14
参考文献 15
附录一 16
附录二 19
武汉理工大学《微机原理与接口技术》课程设计说明书
摘要
存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。有了存储器,计算机才有记忆功能,才能保证正常工作。按存储介质分可分为半导体存储器和磁表面存储器。按存储器的读写功能分可分为只读存储器(ROM)和随机读写存储器(RAM)。
只读存储器ROM是一种对其内容只能读,不能写的存储器。随着半导体技术的发展,只读存储器也根据不同需要设计出不同的种类。其中电可擦除只读存储器(EEPROM)是一种可用电气方法在线擦除和再编程的只读存储器,它既有RAM可读可改写的特性,又有非易失性存储器ROM在掉电后仍能保持所存数据的优点。因此,EEPROM在单片机存储器扩展中可以作程序存储器,也可以用作数据存储器,基于EEPROM存储器的扩展设计有十分重要的意义。
建立一个信息检索系统,每个序号对应一个不同的信息。通过键盘输入不同的指令序号,在电脑屏幕上会输出想要得到的信息。当超出序号范围的时候,屏幕会显示错误。程序还附加一个进一步查询的子程序。在输出信息后,可以对该信息进行查寻,当输入信息与序号相对应的信息完全相同时,会在屏幕上显示NO字样,然后继续进行下一次的提示输入。
关键字:存储器 EEPROM 信息检索
1设计意义及任务
1.1设计意义
《微机原理与接口技术》主要培养统筹运用课本所学的理论知识,掌握程序设计模块化基本理论和基本方法。EEPROM(电可擦写可编程只读存储器)是用户可更改的只读存储器(ROM),其可通过高于普通 电压的作用来擦除和重编程(重写)。EEPROM在单片机存储器扩展中可以作程序存储器,也可以用作数据存储器。建立一个信息检索系统,然后通过键盘输入不同的指令,输出想要得到的信息。信息检索是为了满足用户的查询需求,本次课程设计是针对我们平时学习的理论知识的检验,在实践中考察我们的掌握能力,更好的存储器的一些问题。
1.2设计任务
要求完成的主要任务:
(1)画出简要的硬件原理图,编写程序。
(2)完成以下任务:
1)设计一个EEPROM扩展电路,由两片2864扩展为16KB容量,并编程信息检索程序。
2)编程内容:在扩展的ROM中存入有9个不同的信息,编号0到8,每个信息包括40个字字符。从键盘接收0到8之间的一个编号,然后在屏幕上显示出相应的编号的信息内容,按‘Q’或‘q’键退出。
2 EEPROM扩展电路设计
2.1方案设计
8086通过控制138译码器来实现控制EEPROM扩展电路,即两片2864芯片。通过D0D7数据总线来传输数据,通过地址总线来实现读写的输入输出,同时数据可以先放在74LS373锁存器中存放来保护数据。
硬件原理图如图2-1所示。
8086CPU
138地址译码器
数据总线D7~D0
2864
CS
地址总线A0~A19
2864
CS
图2-1硬件原理图
2.2芯片选择
EEPROM芯片在写入时能自动完成擦除,而且不需要专用的编程电源,可直接使用5V电源。在芯片引脚设计上,2KB的EEPROM2816与相同容量的EPROM2716和静态RAM6116兼容,8KB的EEPROM2864A与相同容量的EPROM2764A和静态RAM6264兼容,这些特点给硬件电路设计和调试带来了方便。
常用的并行EEPROM芯片有2816/2816A、2817/2817A、2864A等, 本次设计要形成16KB容量,若采用2816/2816A、2817/2817A,需用8块芯片,连接线麻烦,所以采用2864芯片扩展。
2816、2817、2864的读出数据时间均为250ns,写入时间为10ms。
2864引脚图如图2-2所示。
图2-2 2864引脚图
计算芯片数量:
2864芯片容量是64/8=8,即8KB。,所以需用两片2864芯片。
2.3连线说明
数据线:
2864的8位数据线直接与8086的数据线相连。
地址线:
根据选择的芯片进行地址分配,由于选择芯片分别是8KB,这样片内寻址需要的地址线是13根,因使用138译码器来片选,所以8086上的地址线作为片内寻址与8KB的ROM的地址连接。
通过一片74LS138译码器来控制片选。将控制低8位的2864(1)的,控制高8位的2864(2)的,138译码器的输入端连接到8086的地址线的高位,地址分配表如表2-1所示。
所以2864(1)的地址范围为0000H至1FFFH,2864(2)的地址范围为2000H至3FFFH,两片加起来一共是16KB。
为了防止CPU在读取数据时,数据发生变化,在硬件电路上采用了74LS373锁存器。
控制线:
取中的两根地址线如和分别控制两片2864的读写端。
地址分配表如表2-1所示。
表2-1 地址分配表
C
B
A
0000
0
0
0
0
0000
0000
0000
0000
0
0
0
1
1111
1111
1111
0000
0
0
1
0
0000
0000
0000
0000
0
0
1
1
1111
1111
1111
2.4硬件电路图
存储器扩展硬件电路图如图2-3所示。
图2-3存储器扩展硬件电路图
3程序设计
3.1设计思路
在存储器的数据段里分配10个小数据段,每个小数据段分配40个字符,0-8这9个信息存储信息内容,另外一个输出错误信息,Q或q退出。取MSG0的首地址作为整个信息段的首地址,根据输入的信号的不同,用序号乘40再加到首地址上找到相应序号的信息内容。
步骤为:
(1)开始,等待信息输入;
(2)输入序号,判断是否为Q。若是转(7),否则转(3);
(3)判断是否满足要求的序号范围。满足转(4),否则转(6);
(4)根据输入的序号,计算出相关信息的物理地址;
(5)输出结果,跳转到(2);
(6)输出错误信息提示,转(2);
(7)结束,退出程序。
3.2程序框图
3.2.1主程序流程图
主程序流程图如图3-1所示。
3.2.2输入程序流程图
输入程序流程图如图3-2所示。
程序中需使用DOS调用程序来显示一串字符串:
MOV AH,9
INT 21H
3.2.3输出程序流程图
输出程序流程图如图3-3所示。
结束
开始
错误信息提示
输出结果
计算出相应信息的物理地址
是
否
否
是
判断是否为Q或q?
输入序号
判断是否为0-8?
提示输入信息
图3-1主程序流程图
按要求显示提示语句
键盘输入序号
DOS调用输入指令
放入指定缓冲区
图3-2输入程序流程图
按要求显示提示语句
显示在屏幕
DOS调用输出指令
提示继续输入
图3-3输出程序流程图
从键盘输入序号,并运用DOS命令将所得结果显示在屏幕上,随后返回输入序号提示语句。
3.3设计程序一
根据题目,尝试编写了一个简单程序。为与最后的程序作比较,将此程序列出,如下:
DATA SEGMENT
n0 db '0000000000000000000000000000000000000000'
n1 db'1111111111111111111111111111111111111111'
n2 db '2222222222222222222222222222222222222222'
n3 db '3333333333333333333333333333333333333333'
n4 db '4444444444444444444444444444444444444444'
n5 db '5555555555555555555555555555555555555555'
n6 db'6666666666666666666666666666666666666666'
n7 db '777'
n8 db '888'
Errmsg DB 'No! Input 0-8! Q or q , Exit $' ;输出错误信息
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ;段属性说明
START:
MOV AX,DATA ;初始化DS
MOV DS,AX
LOP:
MOV AH,01H ;输入一个数字
INT 21H
CMP AL,'Q' ;判断是否输入字符与Q相等,相等跳到EXIT退出
JZ EXIT
CMP AL,'q' ;判断是否输入字符与q相等,相等跳到EXIT退出
JZ EXIT
CMP AL,'0' ;输入不在0-8范围则退出
JB ERR ;小于0跳转
CMP AL,'8'
JA ERR ;大于8跳转
SUB AL,30H ;计算字符串的地址
MOV DH,28H ;28H=40
MUL DH
MOV BX,AX ;数据放入BX
CALL DISP
JMP LOP ;输出错误信息后,继续输入序号
ERR:
MOV DL,0DH ;输出提示错误语句
MOV AH,02
INT 21H
MOV DX,OFFSET Errmsg
MOV AH,9
INT 21H
MOV DL,0DH ;回车和换行
MOV AH,02
INT 21H
JMP LOP ;返回LOP继续输入序号
EXIT:
MOV AH,4CH ;返回DOS
INT 21
DISP PROC NEAR
MOV DL,0DH ;回车换行
MOV AH,02
INT 21H
MOV DL,0AH ;多字符输入
MOV AH,02
INT 21H
MOV CX,28H ;28H=40 控制循环次数即输出的信息字符个数
LOP1:
MOV DL,[BX] ;循环输出字符串
MOV AH,02H
INT 21H
INC BX ;BX打印字符
LOOP LOP1
MOV DL,0DH
MOV AH,02
INT 21H
MOV DL,0AH
MOV AH,02
INT 21H
RET
DISP ENDP
CODE ENDS
END START ;源程序结束
调试结果如图3-4所示。
图3-4调试结果
出现的问题有:
问题1:开始输入序号时,只能显示在屏幕的第一个空间。
问题2:在输出没有写满40个字符的字符串时,输出是乱码。
问题3:按Q或q退出时,还会显示一串数字再退出。
3.4设计程序二
在程序一调试的基础上,检查程序发现一些问题,在输入不是Q或q或0至8的数字时,没有写输出显示字符的程序;输入是应该是字符串,因为有回车。在此基础上,继续改善设计的程序,设计出程序二,即最终程序。
输入一个序号,首先判断是否是Q或q。如果是,则直接跳出,结束程序。如果不是,就在已设定好的信息库中检索相应信息,并将信息显示在屏幕上,紧接着跳入下一次序号输入界面。如果没有相应的序号所对应的信息,即超出序号范围会自动报错,并跳到下一次序号输入界面。
主体部分程序如下:
BEGIN:
CALL CRLF ;回车换行
LEA DX,MSG ;输出提示语句Please input a number:
MOV AH,09H
INT 21H
MOV AH,1 ;输入序号
INT 21H
CMP AL,'Q' ;判断为‘Q’退出
JE EXIT
CMP AL,'q' ;判断为‘q’退出
JE EXIT
SUB AL,'0' ;小于0跳转ERROR
JB ERROR
CMP AL,8 ;大于9跳转ERROR
JA ERROR
MOV BX,OFFSET MSG0 ;取第一个字符串的首地址
MUL FORTY
ADD BX,AX ;找到相应字符串的地址
CALL DISPLAY ;调用DISPLAY子程序
定义ERROR程序:提示错误,重新要求输入序号,再次检测。
ERROR:
CALL CRLF ;回车换行
LEA DX,ERRMSG ;提示错误语句
MOV AH,09H
INT 21H
CALL CRLF
JMP BEGIN ;返回BEGIN程序
定义显示信息程序:将字符信息一个个输出。
DISPLAY PROC NEAR
CALL CRLF
LEA DX,MSG9 ;提示语The message is:
MOV AH,09H
INT 21H
MOV CX,40 ;设置循环次数
DISP1:
MOV DL,[BX] ;输出字符串
MOV AH,2
INT 21H
INC BX
LOOP DISP1
CALL CRLF
JMP BEGIN
CALL CRLF
RET ;返回程序
DISPLAY ENDP
完整程序见附录一。
3.5调试过程
3.5.1调试过程
调试过程主要由编辑、汇编、链接和执行等几个步骤组成。当编辑好汇编语言源程序后,将其保存为.ASM文件。再调用汇编程序对源程序进行翻译,生成.OBJ的目标文件。在汇编过程中,源程序有错误则不能生成目标文件,经过多次修改最终生成无错误目标文件。之后,调用链接程序(LINK)将用户目标程序和库文件进行链接、定位,生成.EXE可执行文件。如果刚开始可执行程序运行之后没有得到预想的结果,又要重新检查源程序的算法错误,重新编辑、汇编、链接和执行,最终得到预期的结果。
3.5.2结果记录
经过多次调试、修改、测试结果,最后基本符合要求。
调试最终结果如图3-5所示。
完整的调试见附录二。
图3-5调试最终结果
3.5.3调试过程中遇到的问题
(1)问题1:程序运行后无法生成.obj文件。
首先,由于软件缺陷,要先运行一遍软件自带的程序之后,运行自己编写的程序,才能运行。另外,在程序有错误时,当错误被改正之后,即能正常生成.obj文件。
(2)问题2:开始输入序号时,只能显示在屏幕的第一个空间。
检查程序发现一些问题,在输入不是Q或0至8的数字时,没有写输出显示字符的程序;输入是应该是字符串而不是字,因为需要有回车。
(3)问题3:选择序号后,屏幕上出现错误附加信息。
这是由于,设计的是40个字符空间,当某一条序号所对应的信息达不到四十个字符时,由于是顺序存储,计算机会自动用下一个序号所对应的信息填补上一条信息未满40个字符的空间,保证输出一定是40个字符。于是,当调整每个信息的字符数均为40个字符时,即将空白写上空格符,将不会再出现错误的附加信息。
(4)问题4:输入正确的序号后,会输出两个字符串。
这是由于在显示程序的问题,在显示程序块结束的地方加入返回BEGIN语句,程序可以运行处正确的结果。
结束语
通过本次课程设计让我学到了很多东西,受益匪浅。虽然刚才拿到任务,不知从何下手,对编程也是一头雾水,但在通过看书和网上查阅了相关芯片资料,了解了一些设计原理,对硬件设计有了一定了想法,顺利用PROTUS软件画出硬件电路图,编写程序时,先简化了题目,从简单的开始写,再不断加入新的功能,逐渐完善所设计的程序。通过运用微机原理专用汇编程序软件MF2KP,大大提高了我们的程序设计部分的效率,可见,这次课程设计,还锻炼了我们在短期内熟练掌握新软件,新知识的能力。
当然,通过这次课程设计,我还发现了自己的不少问题。首先是理论知识掌握得不够牢固,常常忘记一些知识点,对设计的过程和效率有很大影响。其次是动手能力还有待提高,虽然这次没有操纵实物,但在计算机上编程和发现问题解决问题的能力上有所欠缺。
设计过程中不仅要求我对知识的掌握能力,还要细心和耐心。在几天的时间中,我感到自己的知识还是比较匮乏,所以平时还是需要多锻炼自己,加深对所学的知识的了解。本次设计涉及到了书本的绝大部分内容,将课本中所学的知识一一串联起来,考验了自己的基础知识,也提升了学会串联知识的能力。
在今后的学习中我要锻炼自己独立分析问题,解决问题的能力,端正态度努力学习,不断的完善自己,充实自己。
参考文献
[1] 彭虎.微机原理与接口技术(第三版).电子工业出版社.2011
[2] 张小鸣.微机原理与接口技术(第一版).清华大学出版社.2009
[3] 康华光.电子技术基础数字部分(第五版).高等教育出版社.2005
[4] 李志明.计算机原理与汇编语言程序设计.中南大学出版社.2005
[5] 潘名莲.微计算机原理.电子工业出版社.2004
附录一
DATA SEGMENT
MESS DB '----------------------------------',0DH,0AH
DB '| Input a number between 0 and 8|',0DH,0AH
DB '| Press Q OR q to quit |',0DH,0AH
DB '---------------------------------',0DH,0AH,'$' ;提示语句
FORTY DB 40
MSG0 DB 'I am very happy '
MSG1 DB 'Today is Monday '
MSG2 DB 'Today is Tuesday '
MSG3 DB 'Today is Wesnesday '
MSG4 DB 'Today is Thursday '
MSG5 DB 'Today is Friday '
MSG6 DB 'Today is Saturday '
MSG7 DB 'Today is Sunday '
MSG8 DB 'Today is a good day '
MSG DB 'Please input a number:$'
MSG9 DB 'The message is: $'
MESS1 DB 'no!$'
CRLF1 DB 0DH,0AH,'$'
ERRMSG DB 'error! invalied parameter!!' ;错误信息
DATA ENDS
STACK SEGMENT
DB 256 DUP(0) ;256字节堆栈空间
TOS LABEL WORD
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK ;段属性说明
START:
MOV AX,STACK ;初始化SS
MOV SS,AX
MOV SP,OFFSET TOS ;取TOS首地址
PUSH DS ;保存旧数据段
SUB AX,AX ;AX清零
PUSH AX ;保存在堆栈中
MOV AX,DATA ;初始化DS
MOV DS,AX
CALL SHOW ;调用子程序SHOW
BEGIN:
CALL CRLF ;回车换行
LEA DX,MSG ;输出提示语句Please input a number:
MOV AH,09H
INT 21H
MOV AH,1 ;输入序号
INT 21H
CMP AL,'Q' ;判断为‘Q’退出
JE EXIT
CMP AL,'q' ;判断为‘q’退出
JE EXIT
SUB AL,'0' ;小于0跳转error
JB ERROR
CMP AL,8 ;大于9跳转error
JA ERROR
MOV BX,OFFSET MSG0 ;取第一个字符串的首地址
MUL FORTY
ADD BX,AX ;找到相应字符串的地址
CALL DISPLAY
ERROR:
CALL CRLF ;回车换行
LEA DX,ERRMSG ;提示错误语
MOV AH,09H
INT 21H
CALL CRLF
CALL CRLF
JMP BEGIN ;返回BEGIN程序
DISPLAY PROC NEAR
CALL CRLF
LEA DX,MSG9 ;提示语The message is:
MOV AH,09H
INT 21H
MOV CX,40 ;设置循环次数
DISP1: ;输出字符串子程序
MOV DL,[BX]
MOV AH,2
INT 21H
INC BX
LOOP DISP1
CALL CRLF
JMP BEGIN
CALL CRLF
RET ;返回程序
DISPLAY ENDP
CRLF PROC NAER ;定义CRLF子程序
MOV DX,OFFSET CRLF1
MOV AH,9H
INT 21H
RET
CRLF ENDP
SHOW PROC NEAR ;定义SHOW子程序
LEA DX,MESS ;输出开始提示性语句
MOV AH,09H
INT 21H
RET
SHOW ENDP
EXIT: ;返回DOS子程序
MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END START
附录二
图1显示语句结果1
图2显示语句结果2
1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究
2. 基于单片机的嵌入式Web服务器的研究
3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究
4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制
5. 基于MCS-51系列单片机的通用控制模块的研究
6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器
7. 单片机控制的二级倒立摆系统的研究
8. 基于增强型51系列单片机的TCP/IP协议栈的实现
9. 基于单片机的蓄电池自动监测系统
10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究
11. 基于单片机的作物营养诊断专家系统的研究
12. 基于单片机的交流伺服电机运动控制系统研究与开发
13. 基于单片机的泵管内壁硬度测试仪的研制
14. 基于单片机的自动找平控制系统研究
15. 基于C8051F040单片机的嵌入式系统开发
16. 基于单片机的液压动力系统状态监测仪开发
17. 模糊Smith智能控制方法的研究及其单片机实现
18. 一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制
19. 基于双单片机冲床数控系统的研究
20. 基于CYGNAL单片机的在线间歇式浊度仪的研制
21. 基于单片机的喷油泵试验台控制器的研制
22. 基于单片机的软起动器的研究和设计
23. 基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究
24. 基于单片机的机电产品控制系统开发
25. 基于PIC单片机的智能手机充电器
26. 基于单片机的实时内核设计及其应用研究
27. 基于单片机的远程抄表系统的设计与研究
28. 基于单片机的烟气二氧化硫浓度检测仪的研制
29. 基于微型光谱仪的单片机系统
30. 单片机系统软件构件开发的技术研究
31. 基于单片机的液体点滴速度自动检测仪的研制
32. 基于单片机系统的多功能温度测量仪的研制
33. 基于PIC单片机的电能采集终端的设计和应用
34. 基于单片机的光纤光栅解调仪的研制
35. 气压式线性摩擦焊机单片机控制系统的研制
36. 基于单片机的数字磁通门传感器
37. 基于单片机的旋转变压器-数字转换器的研究
38. 基于单片机的光纤Bragg光栅解调系统的研究
39. 单片机控制的便携式多功能乳腺治疗仪的研制
40. 基于C8051F020单片机的多生理信号检测仪
41. 基于单片机的电机运动控制系统设计
42. Pico专用单片机核的可测性设计研究
43. 基于MCS-51单片机的热量计
44. 基于双单片机的智能遥测微型气象站
45. MCS-51单片机构建机器人的实践研究
46. 基于单片机的轮轨力检测
47. 基于单片机的GPS定位仪的研究与实现
48. 基于单片机的电液伺服控制系统
49. 用于单片机系统的MMC卡文件系统研制
50. 基于单片机的时控和计数系统性能优化的研究
51. 基于单片机和CPLD的粗光栅位移测量系统研究
52. 单片机控制的后备式方波UPS
53. 提升高职学生单片机应用能力的探究
54. 基于单片机控制的自动低频减载装置研究
55. 基于单片机控制的水下焊接电源的研究
56. 基于单片机的多通道数据采集系统
57. 基于uPSD3234单片机的氚表面污染测量仪的研制
58. 基于单片机的红外测油仪的研究
59. 96系列单片机仿真器研究与设计
60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造
61. 基于单片机的温度智能控制系统的设计与实现
62. 基于MSP430单片机的电梯门机控制器的研制
63. 基于单片机的气体测漏仪的研究
64. 基于三菱M16C/6N系列单片机的CAN/USB协议转换器
65. 基于单片机和DSP的变压器油色谱在线监测技术研究
66. 基于单片机的膛壁温度报警系统设计
67. 基于AVR单片机的低压无功补偿控制器的设计
68. 基于单片机船舶电力推进电机监测系统
69. 基于单片机网络的振动信号的采集系统
70. 基于单片机的大容量数据存储技术的应用研究
71. 基于单片机的叠图机研究与教学方法实践
72. 基于单片机嵌入式Web服务器技术的研究及实现
73. 基于AT89S52单片机的通用数据采集系统
74. 基于单片机的多道脉冲
展开阅读全文