PROTEUS 在“单片机技术基础”教学中的应用
2023-06-06刘春龙
刘春龙
PROTEUS是英国Labcenter Electronics 公司研发的多功能EDA软件,是一个完整的单片机软件、硬件设计仿真平台,其仿真结果与实际硬件非常接近,因此在工程设计和单片机教学中都具有重要的现实意义。本人在课堂教学中已将PROTEUS应用于单片机技术基础课程的课堂教学、实验教学与课程设计中,并取得了很好的教学效果。
一、单片机PROTEUS仿真教学基本内容和步骤
单片机在理论教学和实验验证中,教学内容一般包括:单片机内部资源及周边外围电路设计和装调、控制程序的编写、单元电路的调试和整个应用系统的调试。所以,老师在单片机教学时,要根据单片机课程和学生实际,将课程教学内容合理分配课时,并在课前做好适当充分的准备,使更好的完成单片机教学任务。1.单片机内部资源实验;2.硬件电路的设计和装调;3.Keil软件C程序的编制、调试;4.调试。
二、教学实例
Protues运行于Windows操作系统中,可以仿真、分析各种模拟器件和集成电路。在硬件仿真系统中具有全速、单步、设置断点等调试功能。同时可以观察各个变量、寄存器等的当前状态。下面以一个实际的“单片机控制八路抢答器”仿真例子介绍如何使用PROTEUS软件进行电路设计。
(一)设计任务
设计一个单片机控制八路智能抢答器,使其可以完成竞赛时选手抢答功能。
(二)控制要求
1.设八个抢答按钮,另设一个按钮用来清零。
2.抢答时能够显示队号,具有报警功能。
3.只要有按钮按下,其他选手按钮功能失效。
4.电路具有倒计时功能。
(三)单片机控制八路抢答器硬件电路原理图(略)
(四)软件程序
#include
…… // 单片机引脚定义、数码管数据等程序,此处省略
void main(void){ //主函数
…… // 定时设定等初始化程序,此处省略
while(1){ //大循环
…… // 数码管动态扫描、数码管倒计时闪烁等程序,此处省略
switch(ID){//状态机实现抢答程序
case 0: …… // 状态机初始化等程序,此处省略
ID=1;//交通灯执行流程切换变量赋值1,进入第1步
break;//跳出第0步
case 1: …… // 搶答器复位等程序,此处省略
ID=2;//交通灯执行流程切换变量赋值2,进入第2步
break; //跳出第1步
case 2: …… // 抢答器启动程序,此处省略
ID=3;//交通灯执行流程切换变量赋值3,进入第3步
break; //跳出第2步
case 3://8位选手抢答程序
if(miao==0) {TR0=0;buf[0]=buf[1]=0;ID=0;}//秒为0,停止定时器,同时清除数码管缓存,交通灯执行流程切换变量赋值0,进入第0步
if(P1==0xFE){P0=0xF9;TR0= 0;LED1=1;ID=1;} //选手1抢答
else if(P1==0xFD){P0=0xA4;TR0=0;LED1=1;ID=1;}// 选手2抢答
……// 3~7抢答器程序,此处省略
else if(P1==0x7F){P0=0x80;TR0=0;LED1=1;ID=1;}// 选手8抢答
break; //跳出第3步
}
}
}
void Timer_0(void)interrupt 1 //定时器T0的中断函数
{
…… // 定时中断等程序,此处省略
}
}
在Keil建立项目并编译出“.hex”文件后,将其导入Proteus仿真软件虚拟单片机中,并按F5或单击Proteus软件工具栏的仿真按钮,在Proteus软件里直接进行实验任务操作,直接可以查看到结果。最后,利用单片机下载软件将“.hex”文件传送至单片机进行硬件调试,查看是否满足控制要求。
责任编辑 徐国坚