1、 微机接口课程设计微机接口课程设计 班级: 姓名: 学号: 任课老师: 微机接口课程设计 一设计目标。 二设计所用仪器和器件。 三设计内容。 四设计过程。 1.设计方案 2.所设计系统的硬件连接图 五微机接口实验心得。 六实验代码分析。 一设计目标。 设计一个模拟汽车控制系统,用简单逻辑电平控制车的档位 (前进1,前进2,前进3,后退),用步进电机的转速模拟车的速度(若步 进电机不能用,也可以用流水灯的刷新方向和速度,或数码管显示的 数值来模拟车的速度),用A/D 转换器模拟车的油门大小。用Visual C+ 6.0(推荐使用)编程,并设计程序界面。 二设计所用仪器和器件。 步进电机,A/D转
2、换器,逻辑开关 用所本课程学过的接口芯片,设计一个微机应用系统,要求系统 中包含至少三种不同类型的 接口。 可用接口: 1. 基本I/O 实验(实验箱上的发光管控制、拨键开关) 读、写端口均为:0c860H 无需另外接线(实验箱内部已经连接好) 2. CMOS 实时钟实验(读、写PC 机主板上的CMOS 实时钟) 地址端口:70H 数据端口:71H 没有用到实验箱,只需要PC 机即可,无需接线。 3. 实验箱的定时计数器8253(方波输出,用逻辑笔显示闪烁快慢) 数据端口0:0c820H 数据端口1:0c821H 数据端口2:0c822H 命令端口:0c823H 需要在实验箱上接线,输入时钟由
3、实验箱上B 区的时钟频率输出插孔 引出,输辑笔显示(实验箱M 区),高电平可由实验箱上A 区+5V 插孔 提供。 4. 七段数码管显示(实验箱上的6 个数码管显示) 由并行接口8255 控制 PA 口地址:0c800H PB 口地址:0c801H PC 口地址:0c802H 命令口地址:0c803H 数码管的选通由PB0PB5 控制(从左至右),数码管上的七段和小数点 显示由制,PC 口未使用 无需另外接线(实验箱内部已经连接好) 5. 步进电机的驱动(实验箱右上方的步进电机) PA 口地址:0c800H PB 口地址:0c801H PC 口地址:0c802H 命令口地址:0c803H 任意选
4、择并行接口8255 的PA、 PB 或PC 口之一,用4 根线驱动步进电 机的输入要连线) 6. 小键盘输入显示 PA 口地址:0c800H PB 口地址:0c801H PC 口地址:0c802H 命令口地址:0c803H 从PC0PC3 输入预定的值,从PC4PC7 读出,根据输入和输出的值,判 断小键盘并在PC 机屏幕输出 无需另外接线(实验箱内部已经连接好) 7. A/D 转换接口(查询方式) 启动A/D 转换端口(写任意值):0c880H 读转换结果数据:0c880H(与启动端口相同) 无需另外接线(实验箱内部已经连接好) 三设计内容。 1.设计步进电机的顺时针和逆时针旋转: 2.使用
5、 A/D 转换器转换模拟信号为数字信号. 3.设计电平开关控制输入,并将输入结果显示出来. 四设计过程。 根据拨动的逻辑电平,用 I/O 端口读出数值,来判断并决定小 车的动作。 后退档用步进电机逆时针旋转来模拟, 前进挡用步进电机的顺 时针旋转模拟。 档位的控制用限制 Sleep 的时间乘以一定速率来实现。即 用简单逻辑电平控制车的档位(前进 1,前进 2 ,前进 3,后退) 。 unsigned short a= 0x0c860; int i; while(1) i = _inp(a); _outp(a, i); if(i=128) back(); else if(i=64) move(4
6、); else if(i=32) move(2); else if(i=16) move(1); else stop(); 步进电机顺时针旋转相序表加电代码顺序:05H 15H 14H 54H 50H 51H 41H 45H 步进电机顺时针旋转相序表加电代码顺序:45H 41H 51H 50H 54H 14H 15H 05H 即刚好与顺时针的顺序相反。 A/D 转换器转换的数值模拟车的油门大小数值越高,Sleep 的时间越短,速度越快。 unsigned short b=0x0c880; int t; _outp(b,1); t=_inp(b); Sleep(t); 2.所设计系统的硬件连接图 用四根导线分别将步进电机的四个接口线分别连上 A0, A2, A4, A6。 四实验心得。 在本学期, 我们学习了微机接口这门课程,并在课程学习过后完 成了微机接口课程设计的实践环节。 在这次的微机接口课程设计的过 程中,我更好地了解了微机接口的相关知识,在经过了课本上的理论 知识的学习后, 我也通过自己的实践和努力把所学到的微机接