单片机软硬件协同可视化虚拟仿真开发及应用*

2023-01-25 03:14吴晨曦王少力
新教育时代电子杂志(教师版) 2022年31期
关键词:存储器时序原理

吴晨曦 蒋 嵘 王少力

(湖南工程学院 湖南湘潭 411101)

引言

《微机原理及接口技术》是湖南省一流本科专业建设点—湖南工程学院机械电子工程专业的核心专业基础课之一,本课程贯穿于专业学习、能力与素质培养的全过程,在机电特色的高水平应用型人才培养中起骨干支撑作用。课程内容主要包括:单片机结构与原理、程序设计基础、中断与定时计数系统、微机应用系统设计等。单片微机技术广泛用于信号检测采集、数据处理、实时控制等方面,已成为智能制造、机器人工程、人工智能等技术的重要组成部分,以及推动这些技术不断发展的重要力量[1]。

一、存在的问题与开发目标

以往的教学实践表明,本课程整体上抽象难懂,需综合运用数学、模拟电子技术、数字电子技术、计算机技术等学科知识,让初学者学习难度陡增[2]。加上课时少、内容多、进度快,以及其他不利因素的影响,导致最终教学效果往往不尽人意。一些突出的教学难点问题表现为:单片机内部结构原理复杂抽象,学生对系统软硬件协同工作认识模糊,对控制流程及程序编写缺乏清晰思路、逻辑性不强,对案例教学无亲历参与感等。

其中,单片机的存储结构、工作原理、时序逻辑是直接影响本课程乃至机电专业全局教学的首要难点问题,属于最基础最重要的内容。任何一个单片机应用系统都离不开它们,必须在此基础上,由单片机执行程序指令、按一定时空关系访问存储器,实现计算与控制功能[3]。因此,这些内容教学效果的好坏至关重要,可谓牵一发而动全身,必须弄懂吃透。然而,由于单片机内部结构复杂、工作原理抽象,教师在常规讲授或实验过程中缺乏有效的教学方法与手段,难以阐明指令操作时序、执行机制、软硬件协同工作过程,学生感到晦涩难懂、枯燥乏味,逐渐失去学习兴趣,导致教学效果不佳。在实际教学中,对这部分内容往往一带而过,结果影响后续学习与实际应用。因此,教师要求打破现有教学习惯的束缚,积极运用新技术新方法进行改革探索,以激发学生的学习兴趣,实现课程教学目标。

为破解单片机存储结构、工作原理、时序逻辑方面的教学难题,拟运用虚拟仿真技术,开发单片机软硬件协同可视化虚拟仿真教学项目,通过可视化单片机的结构原理,直观形象展现单片机存储结构、操作时序、软硬件协同过程。

二、设计开发内容

以51单片机片内外RAM数据传送为目标开发虚拟仿真项目,利用虚拟仿真技术,将真实单片机中无法观测到的指令执行与片内外存储器读写过程,通过程序调试运行、数据传送、存储器访问、硬件仿真驱动的有机结合,以直观清晰、精准透明、软硬协同、可视化的方式呈现出来,深化学生对单片机存储结构、工作原理、时序逻辑的理解应用。

数据传送的具体要求为:向51单片机片内RAM数据存储器写入数据、从片内RAM数据存储器向片外RAM数据存储器写入数据、CPU从片外RAM数据存储器读取数据。项目开发环境如下:①个人电脑配置:CPU3.7GHz,内存8GB以上,显卡4GB 以上,硬盘500G以上;②开发工具软件:Keil4编程仿真软件、proteus7.8硬件仿真软件。内容包括硬件仿真设计、程序设计仿真和仿真调试三部分。

1.硬件仿真设计

采用proteus7.8软件设计、搭建硬件仿真原理。由单片机AT89C51、地址锁存器74LS373、8K片外扩展RAM、逻辑分析仪Logic Analsyer和数字分析仪DIGITAL ANALYSIS等虚拟仿真元件按要求连接而成,这些虚拟仿真元件都从proteus元件库中选取,与实物元件功能相同。

由proteus提供的外部时钟脉冲信号CLOCK,经引脚XTAL2进入单片机作为系统时钟,频率为12MHZ。单片机的P0口作为片外RAM共用的数据线和地址线,作数据线时直接与RAM数据引脚D0-D7连接,作地址线时要经过地址锁存器74LS373再与RAM地址引脚A0-A7连接;地址锁存器74LS373对P0口起分时复用的作用,即CPU在访问片外RAM时,P0口先发出某地址信号给74LS373,在地址锁存控制信号ALE的下降沿时刻,该地址信号锁存在74LS373中,选定该地址的片外RAM单元且保持不变,然后再作为数据口对所选RAM单元进行读写操作。单片机的P2口作为高8位地址线与片外RAM其余地址引脚直接连接,这里与RAM的高5位地址引脚A8-A12相连,因此只占用了P2.0-P2.4地址线。P0口与P2口的低5位共同组成片外RAM的13位地址总线,寻址范围为8KB。

单片机的写/WR和读/RD控制信号分别与片外RAM地写引脚WR和读引脚RD相连,低电平有效。写信号/WR低电平时,CPU将数据从单片机写入片外RAM。读信号/RD低电平时,CPU将数据从片外RAM读入单片机。

逻辑和数据分析仪用于输出待观测的片外RAM读写时序逻辑图。在执行程序指令时,能以图形方式直观形象显示系统时钟、地址信号、控制信号、数据的时序分配与逻辑变化关系,有利于进一步分析、理解与应用。

2.程序设计仿真

采用Keil4软件编写程序、仿真调试。根据前述数据传送的要求,程序设计可分为三部分:①设置要传送的数据块长度,数据块的值保存在数表中,这里预设5个字节的数据块,其值为01H,02H,03H,04H,05H;②对片内RAM置数,用查表方式向片内RAM 30H-34H区写入该数据块的值;③对片外RAM置数、读数,将片内RAM 30H-34H区的值写入片外RAM 1234H-1238H区以及CPU从该片外RAM区读取数据。

参考程序如下所示:

通过Keil编译、仿真调试、运行程序,观察Keil窗口片内外存储器的数值及变化,能直观展现程序指令的执行过程及片内外RAM读写操作过程、结果等核心要素。

3.仿真调试

通过Keil与proteus联调实现RAM数据传送虚拟仿真。在Keil中编写好RAM数据传送程序,经编译、链接、创建可执行程序后,再将可执行程序加载到proteus仿真中的单片机AT89C51,然后设置Keil与proteus的连接,建立联调仿真监控系统。在Keil窗口调试运行程序,从三方面体现仿真过程与结果:①结合Keil与proteus,从两者的窗口观察RAM的内容,并相互印证;②从proteus窗口的地址、数据、控制总线端点颜色动态变化,形象展示程序与硬件的协同作用,实现特定的功能。③在proteus窗口探测各种总线,用逻辑分析仪、数据分析仪显示片外RAM读写操作时序逻辑,直观具体地展现单片机的工作原理、指令详细执行过程、时序分配关系。

全速调试程序后,向片外RAM写入数据的联调界面与仿真结果。以向片外地址为1234H的RAM单元写入数据01H的指令执行为例,先由P2、P0口发出16位地址信号0001001000110100,选中地址为1234H的片外RAM单元;然后写信号/WR由高电平变为低电平的时间内,开始对选定的RAM单元进行写操作,通过P0口将数据01H写入该RAM单元;当/WR、ALE信号低电平变为高电平后,该指令执行完毕;指令执行过程中伴随总线逻辑颜色的实时同步变化,高电平显示红色,低电平显示蓝色。由此可见,能从RAM的内容、指令时序图和总线逻辑值的变化等多方面直观清晰、精准透明、软硬协同、可视化单片机的内部结构与工作原理。

三、应用与成效

51单片机片内外RAM数据传送虚拟仿真项目,较好诠释了单片机存储结构、操作时序、软硬件协同的普遍规律。本项目除了用于基本的课堂教学与实验教学外,还经过拓展广泛用于课程设计、毕业设计、创新创业竞赛等方面,效果理想。

1.课堂教学应用

在讲授单片机内部结构组成与工作原理时,除用51单片机实物开发板简单演示外,主要基于51单片机片内外RAM数据传送虚拟仿真,在Keil窗口清楚地看到RAM数据传送汇编语言源程序经编译后,生成的目标程序在程序存储空间以机器码存贮及分配的地址、占用的字节数,以及汇编指令与机器指令的对应关系;CPU怎样一步步执行程序存储器ROM的机器代码,给片内数据存储器赋值,在proteus窗口通过地址总线、控制总线、数据总线对片外RAM进行读写操作,以具体形象的方式揭示单片机内部结构、抽象原理、硬件和程序协同工作。

以此为基础进行适当改变,即可推广基本输入输出、中断与定时计数系统,如蜂鸣器报警、LED灯闪烁控制、LED数码管显示、独立式键盘输入、4×4矩阵键盘键输入与数码管显示、单一外部中断控制循环移位灯、中断嵌套的应用、用定时器计数器功能制作LED秒表、用定时器计数器编写单片机音乐程序、外部程序存储器和其他I/O口的扩展;以及其他微机综合应用系统,如基于单片机的智能宿舍控制系统设计、51单片机的智能火灾报警系统设计等简单系统的开发设计与验证优化。

紧紧围绕案例虚拟仿真为主展开课堂教学,通过讲授、研讨、演示实操以及布置需仿真验证的课后作业等,掌握单片机的基本组成、引脚功能、CPU、存储器、输入输出接口、时钟与复位电路等基础知识;掌握编程语言及程序设计的方法步骤;掌握中断、定时器计数器的基础知识及应用;掌握程序存储器的扩展、数据存储器的扩展及I/O接口的扩展。打破常规教学硬件、程序、接口之间相互割裂模式,明确统一协调的应用系统概念和实际工程应用意义。

2.实验教学应用

在实验室,采用实物实验平台与虚拟实验平台比较和线上线下结合的实验教学方法。先按实验要求,在单片机实物平台上演示,简要指出单片机工作原理抽象、过程不透明、结果难于理解等不足。然后创建“51单片机软硬件协同可视化虚拟仿真实验”平台,要求学生人人动手。步骤如下:首先用Keil编写对片内外RAM读写操作的程序;其次用proteus搭建扩展电路和时序检测电路;再次设置Keil和proteus联调监控关系;最后编译、调试、运行程序并观察RAM的数值及片外RAM读写时序图,并分析比较仿真RAM数值变化和时序图与理论结果是否相符。虚拟仿真实验平台能将程序调试运行、数据传送、存储器访问、硬件原理仿真模型有机结合,以直观清晰、精准透明的方式呈现在学生面前,在此基础上,再开展探索研究型虚拟仿真实验,将虚拟实验代码、实验过程和结果以视频图像形式上传给指定的实验教学网络学习平台,供老师评阅,给出实验成绩评分。

其他实验,如判断统计正负数个数、找最大数程序设计、急救车通行交通信号灯的外部中断控制实验、内部定时器/外部计数器的基本功能实验、通用并行口输入输出扩展实验、可编程并行口芯片扩展实验、D/A数模转换扩展实验、A/D模数转换扩展实验、键盘与显示器应用实验、温度测量与显示综合应用实验等,按照类似“51单片机软硬件协同可视化虚拟仿真实验”的要求,完成虚拟仿真设计与调试验证。

3.课程设计应用

基于虚拟仿真的单片机系统在步进电机调速控制、直流电机速度检测、智能云家居系统设计等课程设计中得到成功推广应用。

步进电机调速控制包括以下内容:①采用四相单四拍、四相双四拍工作方式、四相八拍工作方式。②用proteus设计51单片机控制的硬件仿真原理,采用总线扩展,用74LS244接启、停、方向输入信号与加减速信号经P0口输入单片机,由P2口经74LS273锁存输出脉冲信号,再经ULN2003A放大驱动步进电机。③用Keil编写汇编程序。④仿真调试。能实现启动时步进电机转速由慢到快加速过程、接着匀速运行、停止时步进电机由快到慢减速过程以及正反转切换的仿真效果。

直流电机速度检测通过改变电机电枢电压调节速度,用编码器测速或采集电枢电压测速方法显示速度。具体设计内容为:①用proteus设计51单片机控制的硬件仿真原理,用8255作I/O口,接速度给定输入信号和8位LED数码管及直流电机的驱动信号,ADC0808芯片将电枢电压转换为数字量速度信号,DAC0832芯片进行D/A转换给电机供电;②在第7、6、5位LED显示给定速度值,第2、1、0位LED显示实际速度值;③用Keil编写汇编程序。经仿真调试能验证直流电机速度检测设计的有效性。

智能家居系统用STM32处理器采集烟雾传感器、红外传感器、火焰传感器、门磁传感器等多路传感器信息并进行处理,以监测家庭环境,并预警和自动消除隐患。仿真设计与调试验证了其可行性。

4.毕业设计应用

基于虚拟仿真的单片机系统成功应用智能台灯控制、光照度测量仪、学生宿舍智能控制系统设计等毕业设计课题。

智能台灯控制系统通过检测台灯使用者所处的位置控制台灯的开与关。以STC89C51单片机作为处理器,首先利用红外传感器检测是否有人在,然后利用超声波传感器检测人和台灯的距离,再利用光敏电阻检测周围环境的亮度,由ADC0832模数转化后输入单片机,经分析判断自动进行光控。通过仿真设计与调试,能实现人员、距离、亮度检测与调节功能。此毕业设计获校优秀毕业设计。

光照度测量仪是一款能自动测量光照强度并显示测量值及环境参考值范围的测量仪器。光照度测量仪以STC89C52RC单片机为微控制器,通过光照传感器BH1750FVI处理光信号,利用I2C总线接口对由光强度传感器光电转换、信号放大及A/D转换之后的数据进行读写,再经串口通信将数据输送至上位PC机来进行特性曲线的拟合,单片机再利用此特性曲线关系来处理未知光信号,最后再将测量值输出在LCD屏上实时显示。此毕业设计获校优秀毕业设计。

在创新创业竞赛等方面,虚拟仿真的微机系统也发挥了重要作用。如:基于STM32的物联网预警灭火机器人项目获省大学生机械创新大赛一等奖。又如:用于课堂教学的微型数控平台由上位机与单片机、步进电机控制的微型X-Y平台,该项目获省大学生机械创新大赛二等奖。

结语

通过开发51单片机片内外RAM数据传送的虚拟仿真项目,得出单片机应用系统的普遍规律,以直观清晰、精准透明、软硬协同、可视化方式呈现出来,解决了常规教学中单片机原理抽象晦涩的难题。这种可视化虚拟仿真技术已深入运用到课堂教学、实验教学、课程设计、毕业设计、创新创业竞赛等各个方面,通过直观形象的仿真场景,学生以真实般的体验自主学习,以此激发学习兴趣、培养创新精神,提升专业能力。同时培养学生缜密守时、精准控制、精益求精的职业精神。

猜你喜欢
存储器时序原理
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于包络解调原理的低转速滚动轴承故障诊断
静态随机存储器在轨自检算法
了解咳嗽祛痰原理,有效维护健康
基于不同建设时序的地铁互联互通方案分析
基于FPGA 的时序信号光纤传输系统
任意2~k点存储器结构傅里叶处理器
存储器——安格尔(墨西哥)▲
一种存储器容错设计方法