基于计算机仿真的单片机学习平台的设计与应用

基于计算机仿真的单片机学习平台的设计与应用


2024年5月3日发(作者:)

科技信息 计算机与网络 

基于计算和仿寅硇单片栅学习 台昀设计与应用 

顺德职业技术学院电子与信息工程系 李景照 

[摘要]在单片机教学中,为了让学生了解单片机电路的控制流程,验证自编程序的正确性,需要通过实验进行教学,但考虑到实 

验条件和经费的问题,本文利用Protues仿真软件开发了单片机学习平台。通过Keil软件编写C语言程序,实现仿真电路的相应功 

能,最后采用修正定时初值的方法实现了精确的时钟显示。 

[关键谰】单片机 学习平台 定时中断Proteus C语言 

1.引言 

单片机以其高可靠性、高性价比等优势,在智能家电、办公自动化 

等诸多领域得到了广泛应用。然而单片机编程的复杂难懂,极大地打击 

解决了端口不足的问题。本电路使用了2片74LS164,分别作为数码管 

(指示灯)和LCD显示的数据输入口。 

表1 74L5164功能表 

了初学者的学习兴趣,降低其学习效率。对此,利用实际开发板进行一 

体化教学可以有效地结合教学内容,提高学生动手能力,目前已有大量 

相关文章I一。为了减轻实验室经费要求,可用计算机仿真平台代替实际 

开发板,然而相关文章较少。 

本文采用Proteus仿真软件开发了51单片机的学习平台,成功实 

现一体化教学,让学生更好地了解单片机电路的控制流程。同时采用简 

单的C语言编程,大大地提高了学生的学习和开发效率。最后重点介绍 

了精确时钟显示的程序设计及调试过程,以此为例说明学习平台的开 

发应用。 

2.硬件电路设计 

本电路作为51单片机的学习平台,包括4个基本功能模块:键盘 

输入模块、LED指示灯模块、液晶显示模块、数码管显示模块,如图l所 

示。在此基础上利用I ̄D显示精确的时间,并采用键盘进行时间的调 

整。 

图1系统原理框图 

图2系统仿真电路图 

并 

口 

输 

出 

图3 74LS164逻辑电路图 

图2为学习平台的仿真电路。4个功能模块需要占用多个单片机 

10口,因此有必要对其进行扩展。图中使用74LS164芯片来扩展10口, 

它是一个串行输入、并行输出的8位移位寄存器,逻辑图和功能表分别 

如图3、表l 。可见,时钟脉冲上升沿时,并口数据往高位移1位,同时 

AB输入端数据移入Q0,如此经过8个时钟脉冲过后,8位的二进制数 

全部变为并口数据。这样单片机的2个10口就被扩展为8个,有效地 

230一 

输入 输出 

CP AB Qo Q- Q: Q3 Q Q5 Q6 Q 

T D, D 

f 1)6 D, 

下 D5 D5 D6 D, 

t D1 

乍 D3 D3 D D5 D6 D 

f D2 D2 D3 Dd D6 D 

t Dl Dl D2 D3 D5 D6 D 

f D0 D0 Dl D2 D3 D5 D, 

2.1指示灯和数码管模块电路 

仿真电路中8个LED指示灯和8个数码管共用8位数据口,由1 

片74LS164产生。指示灯模块的使能控制由1个PNP三极管实现,如 

图4所示,P07口为低电平时指示灯才工作。 

图4指示灯模块电路 

8个数码管的使能控制和片选由3—8线译码器74HC138实现,其 

逻辑电路图和功能表分别如图5、表2闱。当其控制端s。为高电平时,输 

人端(A A,A0)的二进制编码就会在相应的输出端以低电平译出。输出 

端接非门后进入数码管的8个片选端,因此片选信号只有l位为高电 

平,也就是每次只能打开1个数码管。而当控制端S。为低电平时,片选 

信号全为低电平,所有数码管被关闭。因此,译码器的s。端就是数码管 

的使能控制口,而输入端(A A。A0)成为了数码管的片选口。 

输 

A 

入 

Y2 

输 

138 

出 

控 

YJ 

S 

制 

端 

S 

图5 74HC138逻辑电路图 

2.2液晶显示模块电路 

LCD1602液晶模块可显示数字、英文字母等常用字符 。模块的3 

科技信息 计算机与网络 

出了4次调用中断函数的断点时间,可看出,每中断一次就比预设定时 

值长14 S,结果1s的定时实际上就长了280 S。那么要想得到精确 

的定时,只要把定时初值减去14个机器周期即可,修正后的断点调试 

个功能端直接与单片机相接,而8位数据口与移位寄存器74LS164的 

并口相接。通过74LS164,单片机数据只能单方向地传送到LCD,故单 

片机只能进行LCD的写操作,而不能进行读操作。 

表2 74HC138功能表 

输入 输出 

S1 A2 A1 A0 Y Y6 Y5 Yd Y3 Y2 Yl Y0 

0 0 O O 0 0 0 0 0 

1 0 0 0 0 O 0 0 0 0 0 1 

1 O O 1 O O 0 O 0 0 1 O 

1 O 1 0 0 O 0 O 0 1 0 O 

1 O 1 l O O O 0 1 0 0 O 

1 l O O O O O 1 0 0 0 O 

1 l O 1 O 0 l O 0 O 0 0 

1 l 1 O O 1 O 0 0 O O 0 

1 1 l l l 0 O O 0 O O 0 

2.3键盘输入模块电路 

为了便于学习,仿真板上包含两种键盘电路:独立式和矩阵式。其 

中矩阵式键盘为3 X 3接法,利用6个IO口控制9个按键。与独立式键 

盘相比,矩阵式键盘少用了一半的IO口,节约硬件资源。设计中两个键 

盘电路利用了相同的P2口,所以编程时不能同时使用。 

3.系统程序设计 

为了介绍学习平台的实用性,本文以精确时钟显示为例,详细介绍 

仿真平台在程序设计与调试中的应用。 

时钟的精确显示,首先要有准确的1s定时,这就需要用到定时中 

断。51单片机内部有2个定时器rr0和T1,最大定时为16位计数方式, 

即65536个周期 。对于12MHz的晶振,每个机器周期为1IxS,可实现 

的最大定时只有65.536ms,要得到1s的定时就需要通过多次定时中断 

来实现。为了减少中断对主函数的影响,保证数据的准确,中断的次数 

越少越好,即尽量增加定时时间,但又为了简化计数初值的计算,比较 

合适的定时为50ms。要定时1s需要经过20次的50ms的定时,采用软 

件计数的方法便可实现20次的计数。图6为定时器的定时流程。 

l单片机初始化l 

LcD模块初始化I 

l 

定时器TO初始化I 

(THO、TLO ̄A.初值)I 

l 

IYfsoms ̄ I

l键盘处理函数l 

图6精确时钟的程序流程图 

t 

: 

;‘ 时问『s I 霉 Tlfo=(65 36- 600)/256 ^计数 栅埴 

图7 keil编程调试窗口 

实际上,定时的时间间隔除了定时器的计数时间,还包括调用中断 

函数时的一些指令执行时间,如函数调用、重置定时器初值、中断返回 

等,所以实际的定时值会比预定值长I I。为研究程序运行的时序,本文利 

用keil编程软件进行调试,如图7所示。在定时中断函数中设置了两个 

断点:50mS和1s。调试时,从图左侧的窗口中,便可记录下程序每次运 

行到断点的时间,而断点的时间差就是定时器的中断时间间隔。表3列 

时间如表4所示。 

表3程序运行至断点的时间(单位S) 

50mS断点 1s断点(20次中断) 

第1次 O.051843 1.0H02119 

第2次 O.101857 2.0H02399 

第3次 O.15l87l 3.(=)02679 

第4次 0.201885 4.0H02959 

时间间隔 0.05o014 1.00028 

与预定值的偏差( s) 14 280 

表4修正后程序运行至断点的时间(单位S) 

l 50mS断点 1s断点(2O次中断) 

第1次 O.051829 1 o01839 

第2次 O.10l829 2.()o1839 

第3次 0.15 l829 3.001839 

第4次 0.2O1829 4.OH01839 

时间间隔 0.05 1 

利用proteus仿真中的示波器观察1s定时的脉冲波形,如图8所 

示,其周期为准确的1s,可作为时钟的秒脉冲。图9为液晶1602模块显 

示时钟的效果。 

H:n:5 

10:20:52 

§望 嚣毒 8占g8苫8卷鑫 

图8 1S定时脉冲 

图9时钟显示效果 

4.结论 

为了增强学生动手能力,提升学习兴趣,改善教学效果,节约教学 

硬件成本,本文使用Proteus软件仿真了51单片机学习平台,现实一体 

化教学。利用仿真电路,通过c语言编程,在keil环境里修正定时初值, 

最终成功实现了精确的时钟显示。该程序的设计与实现充分地证明了 

仿真平台的实用性,同时也展示了单片机程序的开发过程,积极推动今 

后的单片机教学。 

参考文献 

[1]孙振华,许刚.基于串行接口7289的单片机学习板设计[T]西安 

航空技术高等专科学校学报,2010,28(03):27—29. 

[2]庄建清,徐玮.单片机控制肋超声波字习板….电子制作,2009, 

f011:16-18 

[3]张铮,苏旭武,张道德.多功能单片机实验板的开发与应用[I].湖 

北工业大学学报,2005,20(01):21—23. 

 14 lFairchild semiconductor corporation 74LS164 8-bit serial in/parM— 

lel out shi8 re‘百ster lEB/OLj.(2000—04一O1)l2011—03—31 J.http://www. 

fairchildsemi.com/. 

[5]Philips semiconductor manufacturing Inc.74HC138 3-to一8 line 

decoder/demultiplexer,inverting lEB/OLj.(1993-09-01)l2011-03-31 J. 

http://www.philips.com cn/. 

[6]长沙太阳人电子有限公司.SMC1602A使用说明书[EB/OL]. 

(2011—03一O1)[2011—03—31].http://www.sunman.cn/. 

[7]胡杰,吴磊,赵鸣.51单片机c语言应用与开发[M].北京:北京 

航空航天大学出版社,2010:50—53. 

[8]方飞,谢丽春刑用KeilC51实现TO的精确定时[EB/oL].(201卜 

03—01)[2011—03—31]http://www symcuk ̄com/index.htm. 

231— 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714727865a2503884.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信