基于清华大学TPC-USB系统的《微机原理》典型实验VC++实现教学设计
2009-09-23陈智勇
陈智勇
【摘 要】本文主要探讨了基于清华大学TPC-USB实验系统平台下,高等职业院校计算机类专业《微机原理》实验VC++实现教学设计典型案例。设计了实验教学各环节的组织与衔接,尝试从中总结出部分内在规律,探索出循序渐进的实验教学模式。以提高该课程的实验教学效果,增强学生的学习兴趣,促进我院计算机系该课程教学水平的提升。
【关键词】交通灯 汇编语言 指令 流程图 芯片 TPC-USB VC++ ISP1581 USB2.0
《微机原理与接口技术》是一门理论性和实践性都很强的计算机类专业的主干专业课程。笔者依据高等职业院校培养实用型人才的方针,结合本院计算机系教学实践,针对于以往学生对该课程的理论与试验难以结合,VC++/汇编语言指令与实验流程图脱节,芯片功能引脚理解艰涩等问题,尝试通过循序渐进的实验教学模式,就基于清华大学TPC-USB实验系统的一典型实验案例——交通灯控制,让学生在实验操作,数据验证的过程中,潜移默化将理论知识融汇于实验操作,将实验流程图“翻译“成具体VC++指令,用实验现象佐证芯片引脚功能。
一、实验平台简介
我院微机原理实验室采用的是清华大学TPC-USB实验系统,该系统由一块USB总线接口模块、一个扩展实验台及软件集成实验环境组成。USB总线接口模块通过USB总线电缆与PC机相连,模块与实验台之间由一条50芯扁平电缆连接。其主要特点是USB总线接口使用ISP1581 USB2.0高速接口芯片,完全符合USB2.0规范。提供了高速USB下的通信能力。即插即用、速度快、使用方便。
二、实验过程设计
由于我院微机原理实验室TPC-USB实验设备充足,教师将学生分成每两人一组。并要求学生在实验操作时,一名学生操作,之后另一名学生检查,如此反复。这样既能充分满足学生的实践动手需要,又能培养学生的团队协作精神,有利与实验教学水平的提高。
(一)实验前期准备
1.实验预习
实验前,布置好预习的内容,要求学生必须结合自己所学的理论知识,通过查阅8255A交通灯控制并口芯片有关资料,获得实验的第一手资料,做到实验目的明确,实验原理清楚。
2.布置实验任务
教师不向学生提供具体的、详细的交通灯控制实验电路与VC++程序,只提出具体的实验要求,让学生通过自己的预习以及对实验要求的理解和分析,自行设计实验方案,小组独立完成实验程序编写。
3.连接主机与TPC-USB实验系统(通过50芯线缆的USB2.0接口模块),开机—运行USB2.0接口模块驱动程序,完成实验硬件平台的搭建。运行软件集成实验环境TPC-USB,进入实验环境。完成实验软件平台的搭建。
(二)教师讲解实验项目
着重讲解实验的设计思想、设计方法,并演示实验操作,通过并行接口8255A实现十字路口交通灯的模拟控制,掌握对并行口的使用。让学生能够从教师的示范中获得启发,突出学生的主体地位,实验过程是学生进行思维训练、提高分析问题与解决问题能力的重要实践活动,整个过程应以学生为主体,鼓励学生动手、动脑,采用多种方式去完成实验任务。
(三)芯片功能分析报告
要求学生将查阅的有关资料与实验平台上的8255A并口芯片实物进行对比,分析相关引脚功能,并记录于实验报告中,强化学生深入钻研问题的能力培养。
参考如图-1:L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。
(四)线缆的连接
要求学生自行完成实验芯片8255A的相关通信引脚线的连接。再参照实验指导书的连线规则,进行检查与校正。
(五)VC++编程实现
要求学生先参照TPC-USB实验系统的汇编语言程序, 小组独立自行设计交通灯控制实验方案,绘制实验流程图,完成VC++实验程序对TPC-USB系统自带汇编语言程序的“翻译”编写。并记录与实验报告中。
交通灯控制实验编程提示:十字路口交通灯的变化规律要求:(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。(5)转(1)重复。
(六)运行实验
启动实验箱电源,TPC-USB软件,运行实验,查看实验结果。检查并校正错误。
参考程序JTD.CPP如下(注:为便于读者理解,编者在程序中添加了部分中文注释,上机编程时应删除相应注释)
#include
#include
#include ”…\\ApiEx.h”
#pragma commnet(lib,”…\\ApiEx.h”)
Void main()
{
Int i;
Int portc[]={0x24,0x44,0x04,0x44,0x04,0x44,0x04,0x81,0x82,0x80,0x82,0x80,0x82,0x80,oxff};*六个灯可能的状态数据结束标志*
if(!Startup())*打开设备*
{
Printf(“ERROR:Open Device Error!\n”)
Return;
}
Printf(“Enter any key will return!\n”);
PortWriteByte(0x28b,ox80); *输出一个负脉冲*
for(;;)
{
For(i=0,i<14;i++)
{
PortWriteByte(0x28a,portc[i]);
if(kbhit())*判断是否有键按下*
Exit(0);
If(portc[i]&0x21)
Sleep(30000)*延迟30秒钟*
Else
Sleep(500)*延迟0.5秒钟*
}
}
Cleanup();*关闭设备*
}
三、总结
通过该教学实验设计在我院计算机系学生的执行,学生能够自觉预习实验内容,把握实验原理,操作过程更为准确规范,能够循序渐进的融汇基础性,设计性和综合应用性知识点,建立VC++/汇编语言与实验流程图的沟通学习渠道。部分学生已经开始尝试基于交通灯控制实验的实际项目设计。教学效果得到了明显提高,也历练了教师的教学创新能力。
参考文献:
[1]韩雁.微机原理与接口技术.电子工业出版社,2005,1.
[2]张毅.单片机原理与应用设计.哈尔滨工业大学出版社,2008,7.
[3]杨立.微机原理实验指导书.人民邮电出版社,2008,4.
[4]蒋本珊.微机原理与接口技术实验指导与习题集.人民邮电出版社,2008,08.