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条)