高职院校单片机教学改革在实践教学中的应用

2015-04-16 07:11
新技术新工艺 2015年7期
关键词:管脚原件数码管

杨 楠

(西安铁路职业技术学院,陕西 西安 710014)

当前,大多数院校对于电子设计类课程采用的授课方法都是先要求理解(理解原理、实现思路等),然后才是实践编程,这样会学生们对此类课程缺少初步的认知,更谈不上什么兴趣,因此教学效果不好。高职院校强调培养操作型人才,因此在日常授课中,不仅采用了现场教学等方法,还增设了许多实践内容,以提高学生的动手能力;但由于实践教学内容的设计相对薄弱,使得学生本身缺乏兴趣,无法将书本上的理论与实际结合起来,导致效果不明显,严重影响了学生动手能力的提高,甚至成为制约高职发展的瓶颈。为此,提出了一种新的单片机教学模式,即通过详细描述数字钟电路的整个过程设计,让学生自己动手从绘制电路原理图到利用ISIS软件仿真,再到元件焊接以及电路调试,最终生产出一台属于自己的数字钟。通过这一系列连续的工作,使学生切实体会到成就感,提升了动手能力,使学生对单片机技术产生初步的兴趣。

1 方案设计

简易单片机应用大多采用最小应用系统,系统实物如图1所示,主要包括单片机电路模块、振荡电路模块、复位电路模块、电源接口模块以及≥12 MHz频率的晶振(波特率为1 MHz)。最小应用系统是最简单的单片机外围电路,许多功能都可以利用该系统实现,其制作成功后可为后续试验提供平台。

图1 单片机最小应用系统实物图

单片机最小应用系统材料清单见表1,可按表1准备原件即可实现MCS-51最小应用系统电路。

2 电路设计

2.1 单片机电路模块

首先在面包板当中放置40脚的IC芯片[1],用来放置单片机;然后将P0口(管脚32~39)、P1口(管脚1~8)、P2口(管脚21~28)和P3口(管脚10~17)分别引出排阵,用于系统扩展。

表1 单片机最小应用系统材料清单

2.2 复位电路模块

单片机复位电路形式多种多样,本文采用按键式复位电路,电路连接如图2所示。首先将200 Ω电阻的一端、电解电容的负极和1 kΩ电阻的一端均与单片机的9号管脚相连接;然后将电解电容的正极接电源VCC,1 kΩ电阻的另一端接地;最后将200 Ω电阻的另一端与复位开关相接,复位开关的另一端接电源。复位开关共有4个管脚,在接线时选择对角线接法即可[2]。

2.3 振荡电路模块

电路连接如图2所示,首先将12 MHz的晶振两端与单片机的18脚、19脚分别相连接;然后将2个30 pF的电容的一端与晶振的2个管脚相接;最后将2个电容另一端分别接地即可。

2.4 电源接口模块

在单片机最小应用系统板上设计电源接口模块,此模块主要采用4个排针作为电源插口,且均为并联方式连接,其中J1为电源输入端,J2~J4可用于系统扩展,为其他模块提供电源,电路连接如图2所示,单片机的31号管脚应接电源,表示使用片内ROM。

图2 MCS-51最小应用系统原理图

列出制作简易数字钟所需的原件清单(见表2),其中74HC245芯片起到电流放大作用,由于MCS-51端口输出信号的驱动能力有限,因此为了增强信号的驱动能力,需经过74HC245放大,8只PNP型9012三极管作为开关使用配合选通管脚,当某一只引脚输出低电平时,其所接的三极管便导通,使得该管所接引脚的信号传送到数码管的引脚上[3]。

表2 数字钟所需元器件清单

3 程序设计

在软件设计中遵循V模型自顶向下的设计原则[4],先设计好程序总体运行时的逻辑框图,在此阶段可以不考虑具体的实现细节,以免影响整体设计思路,主体程序结构框图如图3所示。

图3 主体程序结构框图

主体程序如下:

1 #include

2 #define uint unsigned int

3 #define uchar unsigned char

4 uint time_t; //毫秒统计值

5 #uchar hour,min,sec; //数码管显示值,小时,分,秒

6 uchar code led[10]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0Xe0, 0xFE,0xF6}//数码管显示0~9

7 void main()

8{

9 sec=56;

10 min=59;;

11 hour=23;//时间初始化为23:59:56

12 while(1){

13 DISPLAY_NUM(sec,0x01);//显示秒

14 DISPLAY_NUM(min,0x08); //显示分

15 DISPLAY_NUM(hour,0x40); //显示小时

16 DISPLAY_CHAR( ); //显示分隔符“—”

17 TIME_TAKE( ); //调用时间调整函数}

18}

程序第一行包含AT89X51.h头文件,该文件包含常用的51系列单片机宏定义,第2和第3行将表述方式较为复杂的无符号整形、无符号字符型2种数据类型采用定义的方法进行简化改写。第4和第5行共定义了4个全局变量,分别用于存储毫秒统计值、小时值、分值和秒值。第6行定义了一个容量为10的一维数组,用于存储能够在数码管上显示0~9这10个数字的十六进制数。主程序一开始对数码管进行了初始化,这里设置为23:59:56,而主程序中被调用最频繁的函数DISPLAY_NUM其函数原型为DISPLAY_NUM(uchar num,dis_w)其中局部变量num传递被送显数值,而dis_w变量则是传递送显数值显示的位置。下述分析时间调整函数TIME_TAKE()。

Void TIME_TAKE()

{ if(time_t>=1000) //当总延时数为1 s时

{ time_t=0; //time_t 清零

sec++; //秒加1

if(60==sec) //当秒值为60时

{ sec=0; //秒值清零

min++; //分加1

if(60==min) //当分值为60时

{ min=0; //分值清零

hour++; //分加1

if(24==hour) hour=0; //当小时为24时,小时清零

} } } }

时间调整函数的处理流程如下:首先判断毫秒累加值是否达到1 000,若是,则秒累加值加1,同时毫秒累加值清零;如果秒值到了60,则分累加值加1,同时秒值清零;若分值到了60,则小时累加值加1,同时分值清零;如果小时累加值到了24,则小时累加值清零;上述判断只要任何一步不满足条件则退出该函数。

4 项目仿真

利用上述源代码及硬件电路图可以在ISIS中进行虚拟仿真测试,此软件可以模拟单片机应用程序的运行结果,在此平台下可以验证硬件电路及代码的正确性,并进行代码的修改以及优化,只有仿真结果正确,才有必要制作电路板实现硬件电路[5]。

启动Proteus仿真软件,根据硬件连接图,在元件库中找出相应原件并连接(见图4),共需用到AT89C51芯片、4009反向器和8位1体7段数码管7seg-mpx8。单击元件库“P”按钮,在弹出对话框中输入所需原件名,并将其布放到位,此处在仿真时做了如下省略:实际电路中,从单片机P0端口引出的8脚首先通过74HC245芯片后,再接入数码管的a~h脚,这是因为需要考虑电流的驱动能力,而仿真只是为了验证程序的正确性,因此在仿真图中可以省略,直接将P0口与数码管管脚相连,减少仿真难度;同时实际电路中数码管8只位选脚同时也是数码管工作时电流的提供脚,因此提供8只PNP三极管做开关管,既可以起到选通作用,也可以提高电流的驱动能力,而仿真中均用4009反相器代替,模拟选通作用。

5 制作电路板

制作电路板应遵循如下原则:1)考虑原件在面包板上布局美观、大方,相关元器件尽量接近;2)考虑原件走线需要,尽可能预留走线空间。

走线时线路尽量布放在原件的背面,如果实在布放困难必须布放在原件侧,则依据“正面走横线,背面走竖线”的原则。

制作步骤如下。

图4 Proteus仿真图

1)找出2个12脚IC底座,放置合适位置,使得2个4位数码管安装完成后正好组成1个8为数码管。

2)确定2个4位数码管的12只引脚,哪8只控制数码管的7段及小数点,哪4只脚是位控制脚并标示。

3)分别将2个4位数码管相应的a-a、b-b、c-c、d-d、e-e、f-f、g-g、dp-dp等8对脚两两连接,并引出到合适位置成为8只段脚。

4)将2个4位数码管的8只位选脚也分别引出到合适位置,成为8只位脚。

5)在8只段脚引出处连接8只电阻,并通过该电阻连接74LS245芯片相应的引脚处,同时将245芯片另8只脚连接到排针处。

6)8只位脚引出到8个PNP型三极管的集电极,发射极连在一起接VCC,基极接电阻后连接到另外的8只排针处。

实际制作好的电路板如图5所示。

图5 电路板实物图

6 结语

考虑到高职院校的特点,单片机教学应该是“模仿—理解—扩展”的过程。模仿阶段主要是“玩”的阶段,通过模仿学习让学生对这门课程产生兴趣,在这个阶段应尽可能地提供详细的资料,如电路图、原理图、操作流程和源代码等,这样初学者即使不懂也能依样画葫芦做出成品,这对提高学习兴趣有着至关重要的作用;之后的理解阶段是真正的学习过程,从单片机的原理到高级应用以及源代码的编写进行融会贯通, 在原来模仿的基础上能够加以改造从而设计出自己的产品;最后的扩展阶段则是没有明确的界限,也是一个长期的过程,能够得心应手地设计解决生活中的问题。

为实现上述目的,设计了一款较为容易实现的单片机应用电路,通过让学生亲自动手参与从电路的设计到项目仿真,再到元件的焊接,最后整体调试。这一整套生产工艺,让学生们了解单片机电路板的开发制作过程及原理, 不仅提高了学生的动手能力,更重要的是提高同学们对本门课程的兴趣,真正做到学以致用,让大家知道平日上课所学的理论知识在现实当中具体的运用。经过两届学生的现场教学发现,同学们通过这样的实训模式后,普遍对单片机的后续功能开发充满了兴趣,并养成了独立思考的能力,动手能力有了明显提升。

[1] 朱可斌.电路基础[M].西安:西安电子科技大学出版社,2005.

[2] 傅丰林.低频电子线路[M].北京:高等教育出版社,2005.

[3] 孙津平.电子技术及其应用[M].北京:北京理工大学出版社,2012.

[4] 丁峰,柳西玲.UML技术及应用[M].北京:高等教育出版社,2004.

[5] 倪志莲.单片机应用技术[M].北京:北京理工大学出版社,2010.

猜你喜欢
管脚原件数码管
面向DSP+FPGA通用处理架构检测的硬件系统设计
微课教学设计之“数码管动态显示”
欠薪条原件遗失,我还能向公司索要工资吗
Arduino编程
MC9S08FL16单片机数码管静态显示分析
一种异步FIFO的Read/Write Data Flow Through功能测试方法∗
单片机控制的四位数码管动态显示编程
不一样的皇冠
《马关条约》原件
基于图像处理的异型电子元器件管脚偏移误差检测方法研究