单片机c语言范文
时间:2023-03-17 00:51:48
导语:如何才能写好一篇单片机c语言,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
Abstract: Combining 8051, the paper introduces the advantages of C-language and the programming design of C-language's relization of MCU digital blink. Though 8051 could embed assembly code at C-language programming, the complicity is obviously improved. The practice proves that if we use C-language resonablely, the equal precision with assembler language could be got at practice.
Key words: MCU; C-language; application
中图分类号:TP31 文献标识码:A文章编号:1006-4311(2010)36-0146-01
1问题的提出
将C向MCU(俗称单片机)8051上的移植始于20世纪80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。经过Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艰若不懈的努力,终于于20世纪90年代开始而趋成熟,成为专业化的MCU高级语言了。过去长期困扰人们的所谓“高级语言产生代码太长,运行速度太慢,因此不适合单片机使用”的致使缺点已被大幅度地克服。
2单片机C语言的优越性
2.1 不懂得单片机的指令集,也能够编写完美的单片机程序;
2.2 无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;
2.3 不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
2.4 程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
2.5 C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
2.6 提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
2.7 提供small、compact、large等编译模式,以适应片上存储器的大小;
2.8 中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
2.9 提供常用的标准函数库,以供用户直接使用;
2.10 头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
2.11 有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
2.12 可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成。
3应用案例:C语言实现单片机数码管闪烁
本应用案例中(/*此函数主要是C语言实现单片机数码管闪烁功能。效果:1――数码管显示0123;2――停顿;3――数码管显示4567;4――无穷循环1,2,3步。*/),程序为:
#include
#include
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定义数组
int delay(int x)//声明延迟函数
{
int j=0;
for(j;j
}
main() //主函数
{
int i,j;//定义i,j
unsigned char seg;//定义seg,用于数码管的初始化
seg= 0xfe ;//定义seg为0xfe,即11111110;使数码管为第一个显示
while (1)//无穷循环
{
{ for(j=0;j
{
for(i=0;i
{
P2=seg;//初始化P2
P0=dis_code[i]; //显示数字
delay(200);//延迟约1ms
seg=_crol_(seg,1);//数码管右移一位
if (seg==0xef) seg=0xfe; //输出四个数字之后停止
}
}
P2=0xff;//数码管全不接通,把0,1,2,3消去
delay(2000000); //延迟
for(j=0;j
{
for(i=4;i
{
P2=seg; //初始化P2
P0=dis_code[i]; //显示数字
delay(200);//延迟约1ms
seg=_crol_(seg,1);//数码管右移一位
if (seg==0xef) seg=0xfe;//输出四个数字之后停止
}
}
}
}
}//函数结束
篇2
关键词:Protues; 密码锁; 单片机; C语言
中图分类号:TN433-34文献标识码:A
文章编号:1004-373X(2010)19-0176-03
Design and Simulation of Electronic Code Lock Using STC89C52 MCU Based on C Language
JIN Gui, XIANG Guo-liang
(Department of Physics & Electronic Information Engineering, Xiangnan University, Chenzhou 423000, China)
Abstract: The implementation of an electronic code lock which was successfully simulated by Protues is introduced. It uses high reliable microcontroller STC89C52 to achieve the unlocking and identification of the code, adopts I2C bus-based E2PROM chip to complete the code′s storage, uses LCD1602 to prompt the program′s running state and working procedures, adopts buzzer to imitate the alarm and LED to imitate the switch. It is convenient to modify and add function by using C language program,which is more transplantable and reliable compared to assembly language.
Keywords: Protues; code lock; single chip microcomputer; C language
0 引 言
电子密码锁是现代生活中常用的加密工具。它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是微控制器的智能电子密码锁,不仅具有电子密码锁的功能,还可引入智能化管理功能,从而使密码锁具有更高的安全性和可靠性。
电子密码锁通常使用ARM和单片机控制[1],单片机相对ARM实现较为简单,功能较为完善,因此使用单片机控制较多。用单片机控制的密码锁常使用汇编语言编写程序,显示器多数用数码管[2-3]。而本文所介绍的电子密码锁使用移植性及可读性强的高级语言C语言编写,便于修改和增减功能;同时采用显示清楚,功率消耗小而且寿命长的1602液晶显示器,显示更加直观,使用更加方便。从经济实用的角度出发, 采用STC89C52[4]单片机设计出一种具有密码设置、报警和防止多次试探密码功能的电子密码锁,通过Protues软件成功地进行了仿真。
1 系统工作原理
本系统以STC89C52单片机为核心,使用4×4矩阵键盘作为数据输入方式,驱动1602显示器提示程序运行过程和开锁的步骤。本系统的密码判断过程如下:
当使用者输入6位密码后按下BESURE键,单片机通过密码逐个比较,如果输入的6位密码和设定的密码完全相同,那么能成功驱动开锁模拟灯将锁打开。若输入6位密码与设定的密码不相同,按下BESURE键后,模拟灯不亮,可以按BACK键重新输入。由于输入密码过程中难免输入失误,如果密码输错,可直接按下BACK键重新输入,但是系统不允许无限次地按BACK键,以免密码被套用,当3次密码输入都错误,单片机将驱动蜂鸣器报警[5]。并且本系统输入密码还有时间限制,若在规定的时间内没有将正确密码输入也会报警。
修改密码功能如下:当密码输入正确后,按下SET键可新设置密码。每设定一位新密码,单片机将其送给E2PROM,当6位新密码都输入完毕,系统将自动回到程序开始,重新读取密码并保存,使用者需输入新的密码才能将锁打开。
2 系统设计
2.1 硬件支持
使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602、矩阵键盘、报警蜂鸣器、独立按键(模拟门的开关)、发光二极管(模拟锁的开关)和┤极管(放大电流)。
2.2 软件设计
本系统软件包括主程序模块、密码比较判断模块、修改密码模块、键盘扫描模块、液晶显示模块及定时程序等模块。系统程序流程如图1所示。
图1 系统程序流程图
2.2.1 主程序模块
主程序主要用于定义全局变量,给全局变量赋初值,初始化E2PROM,启动定时器以及从AT24C02[6]中读取密码,为整个程序提供数据。
2.2.2 密码比较判断模块
该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则按下BACK键,重新输入密码,每按下BACK键一次,输入次数将自加1,当3次都出错则报警。
2.2.3 密码修改模块
在密码输入正确情况下,可以按下SET对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。
STC89C52向AT24C02写入密码子程序:
void write_byte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i
{
temp=temp
scl=0;
delay1();
sda=CY;
delay1();
scl=1;
delay1();
}
scl=0;
delay1( );
sda=1;
delay1( );
}
STC89C52从AT24C02读取密码子程序:
uchar read_byte()
{
uchar i,k;
scl=0;
delay1();
sda=1;
delay1();
for(i=0;i
{
scl=1;
delay1();
k=(k
scl=0;
delay1( );
}
return k;
}
2.2.4 键盘扫描模块[7]
该模块具备功能有:逐列扫描键盘确定被按键的具置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能。
2.2.5 定时模块[8]
本模块用于对密码输入时间控制。在程序开始运行时首先对定时器进行了初始化,从按下PUT IN键开始,系统开始计时,当输入的时间达到规定的时间将立即报警。
2.2.6 液晶显示模块[9]
此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令是用于控制液晶状态是否显示光标,光标是否闪烁,是否清除原来数据以及显示的具置。数据显示主要是将要显示的信息按需要准时显示出来。
3 系统仿真
为了方便程序调试,本文采用了Proteus仿真[10],仿真图如图2所示。
图2 系统仿真图
3.1 系统介绍
图2中U1为STC89C52是整个系统的核心,编写的程序以二进制的文件导入其中;U2为AT24C02,┑5和第6个引脚分别与单片机的P1.2和P1.3相连;LCD1为1602液晶显示器,引脚连接如图2所示;独立按键DOOR,当门关上为键按下状态;D1为模拟开锁灯,当密码正确,按下BESURE键D1将亮;BUZ1为蜂鸣器报警。当程序编写好并导入到单片机里后,按下┩2最下面的开始按钮,1602液晶显示器将提示密码锁的运行状态,系统开始工作。
3.2 开锁功能
当电源开启时,1602液晶显示Welcome欢迎界面,当按下PUT IN键后,显示器显示PUT IN CODES提示使用者输入密码,如图3所示。几秒后液晶显示器上提示将自动消失。此时可输入正确密码,且密码输入时显示*而不会将输入的数据显示出来。当输入密码完毕后,按下BESURE键,如果输入的密码正确D1将亮(D1作为开锁的模拟开关)。若密码错误,可以按下BACK键,程序将跳到loop(开始界面),重新输入密码,同时输入次数将增加一次。当3次都输入错误则自动报警,并且输入密码的时间必须在规定的时间完成,否则也会报警。
图3 液晶显示
3.3 密码设定
在密码输入正确后,按下SET键可对密码进行重新设置,液晶显示器显示SET CODS。同样几秒后提示信息将自动消失,此时开始重设密码。在密码设定过程中会将设定的数字显示出来,每输入一位密码需按下YES键确定,当设置的密码达到6位将自动回到启动界面。
4 结 论
(1) 成功仿真实现了1602液晶显示,密码开锁,密码设置,防止多次试探,报警等功能。
(2) 采用C语言编写程序,具有很强的移植性,为系统增减和修改功能带来了方便。
参考文献
[1]郭海英.基于单片机的电子安全密码锁的设计[J].现代电子技术,2005,28(13):95-97.
[2]赵益丹,徐晓林,周振峰.电子密码锁的系统原理、设计程序及流程图[J].嘉兴学院学报,2003(15):103-105.
[3]曾高荣,胡宁,高扬.一种新型电子安全密码锁的设计[J].电子科技,2003(8):44-45.
[4]张天凡.完全手册51单片机C语言开发详解[M].北京:电子工业出版社,2008.
[5]周功明.基于AT89C2051单片机的防盗自动报警电子密码锁系统的设计[J].绵阳师范学院学报,2007(4):112-115.
[6]刘振栋.EPROM芯片的特殊应用[J].电子工程师,1999(6):26-27.
[7]唐德礼,王襄.单片机学习机及编程器的设计与制作[J].现代电子技术,2005,28(12):117-120.
[8]倪淑艳,李晓波,于涵.单片机C8051F303在数字锁相式频率合成器中的应用[J].现代电子技术,2006,29(4):19-21.
篇3
关键词:单片机;温湿度采集;串行通讯;生态监控
中图分类号:TP311.1 文献标识码:A文章编号:1007-9599 (2010) 09-0000-02
The Research of Flower Automation System Based on AT89C51 SCM
Jiang Chen,Lai Yuanzhi,Xie Heping,Zhu Tianlong
(Harbin Institute of Technology,Harbin150006,China)
Abstract:This thesis is relied on the automation of Single Chip Micyoco and related to the latest communication technology of the network.We construct a close-loop negative feedback system based on the SCM technology and provide a creative and efficient method used for the intelligent mangement of flowers. Besides,in order to attest the function of the system we conduct the experiment under the practical environment and attain the reliable data.We hope that this instrument can bring up some impressive benefits for the intelligent control and mangement of the ecology as well as supply some constructive advice for nourishing the plants
Keywords:SCM;Collection of the temperature and humidity;Serial communication;Ecology control
生态环境是人类赖以生存的根本,它是一个极其复杂的整体,因此研发一套高效、科学、智能的生态管理系统具有深远意义。同时,现代信息技术和自动控制技术得到了飞速的发展和应用,将网络通信技术运用到工程控制中也成为一大热点。本课题正是利用目前计算机自动控制技术以及新兴的网络通信技术,开发一套应用于诸如为花卉生长或储藏环境的控制及远程操控系统,实现智能控制和调节环境因素(如温度、湿度、光照等条件)的功能,以解决目前花卉运输时限短、成本高的难题。
一、花卉控制系统的总体分析与设计
(一)花卉智能控制系统的总体功能
本系统主要由Atmel公司的AT89C51单片机作为总控下位机,通过其对环境参数的采集以及分析,完成数据处理,数据传输,外设控制以及安全报警等功能。系统主要完成以下功能:
采集环境参数:通过传感器采集周围环境的温度湿度,通过光敏电阻以及模数转换芯片完成对周围光强的采集。
接收数据:由C51单片机的P0-P3口实时接受采集到的数据,并进行分析,筛选合理数据。
数据传送:通过RS232协议以及RS232总线与上位计算机进行串口通讯,进行实时数据的保存,方便查阅分析。
数据显示:将采集到的数据分时显示在LCD屏幕上。
安全报警:对于超过阙值的环境参数,采取一定的操作进行报警。
(二)花卉智能控制系统的总体分析设计
系统整体框架如图1-1所示。
二、花卉控制系统实现
(一)程序设计及实现
本系统程序部分采用C51语言,C51源程序结构与一般的C语言基本一致,利用C语言开发单片机程序,具有效率高,可读性强,可移植性强等特点。编程使用的软件是Keil u Vision3集成开发环境,它自带C51优化交叉编译器。生成可执行代码快速、紧凑,在运行效率和速度上均可与汇编代码媲美。
(二)仿真设计及实现
本系统在Proteus7.5环境下进行的仿真,针对51单片机,完成集测温,测湿,显示,报警于一体的闭环负反馈系统。系统主要包括一片AT89C51单片机,一个LCD屏(LM016L),两个数字温湿度传感器(SHT10),一条光敏电阻,一片A/D转换芯片(ADC0808),一片直流电机驱动器(L298),一台电机(MOTOR),MAX232串口驱动以及若干电阻,电容,门电路,译码器等。在实际仿真中由于Proteus器件库的限制,一些元件被替代为Proteus库中功能完全相同的元件,程序设计保持不变。
1.温湿度测量及显示
单片机P1口连接两个LCD显示屏,P2.0,P2.1作为LCD的RS与RW控制信号。两个LCD的使能端通过一个二四译码器控制,使得某一时刻只选通一个LCD屏。P2.5 P2.7分别连接两个SHT10的SCK与DATA端,SCK端通过三态门控制,使某一时刻只有一个SHT10向单片机发送数据。当片选LCD1生效时,同时选通SHT10 1的SCK,使其工作,LCD2同理,通过分时工作,达到实时显示两个传感器的温湿度值。
2.光强测量
光强测量这里选用了光敏电阻,在proteus中选择了元件TORCH_LDR,随着光源的远近距离变化,光敏电阻的阻值变化,引起电压变化,在仿真时可看到volts表数据的变化。同时采用ADC0808模数转化芯片进行模数转换,IN0作为模拟量数据输入,OUT1~OUT8作为数字量输出,传送到单片机的P1口进行接收。
3.安全报警电路
如图2-2所示,D6代表BUZZER,程序中,设置4个标志alarm1,alarm2,alarm3,alarm4。4个标识分别用来标识两个温湿度传感器的温度和湿度,同时两个温度都需要报警时候,D3常亮,当只有一个温度需要报警时候,D3闪烁,否则D3灭,湿度LED也是同样原理,当两个湿度都需要报警,则D4常亮,有且只有一个需要报警时候,D4闪烁,否则D4灭。D5是用来标识光强的LED,当光强过大时候D5亮,BUZZER响。只有当四个标识都不为1时候,BUZZER关,否则BUZZER鸣响。
4.电机控制
此部分电机控制风扇转动,风扇相应SHT90 2的环境参数。由于单片机输出电流的驱动力不足,这里采用L298直流电机驱动芯片。L298的ENA,IN1,IN2分别接在单片机的P0.0,P0.1,P0.2,由于P0口是三态口,所以连接上拉电阻以便使其正常工作。程序中通过延时实现定时。当温度过高时,电机正转。当湿度过高时,电机反转。
5.串口调试
使用RS232与计算机串行通信,MAX232串口驱动。MAX232的R1OUT和T1IN分别连接单片机的P3.0/RXD , P3.1/TXD。波特率设置9600bps,单片机晶振选用11.0592MHZ。
6.晶振与复位电路
晶振选择11.0592MHZ,方便单片机与串口RS232通信。
三、实际环境测试与应用
为了进一步检测和提升花卉控制系统的稳定性和可靠性,我项目组与北京植物园合作,在仙人掌及多浆植物温室进行了实地测量和研究。在实地研究中,我们修正了系统所遇到的问题,同时还在对植物的实时培育监控中得到了宝贵的数据。
在此次实地测控中,我们首先分别在温室的不同位置进行了测量,并且与温室的原电子温湿度计进行了比较,验证了数据的准确性.以下为测量中所得到的数据:
另外在测试过程中还对温室的特殊环境进行了有针对性的测量,在温室的风扇,湿帘处以及温室苗床等等位置记录了多组数据,与此同时也与原文温湿度计进行了比较得到了相符合的数据。
在此次测控中发现硬件控制系统与某些温湿度计存在数据不一致的问题,与所配备的新式设备进行比较后发现是原有温湿度计存在灵敏度下降,数据有误的问题。温室领导随即利用我系统修正了环境实时参数,保证了植物能够在适宜环境下成长。
在解决问题后,我们利用本系统对产于肯尼亚,索马里一带的隐刺麒麟以及绮丽角两种世界二级濒危植物进行实时监控。采取我系统培育之前发现隐刺麒麟已存在一定枝条萎缩的情况,经过分析我们认为是原温湿度计所测数据有误导致了温室环境调控延迟等现象,另外北京遭遇了近十年不遇的炎热天气,使得枝条萎缩情况加剧。在接下来的时间里,我们利用花卉温室控制系统进行严密监控,利用所得数据,实时对温室环境进行调整,隐刺麒麟枝条逐渐变粗,生长状况有所改善。
结论:
本文通过对单片机技术,传感技术以及通信技术的利用,整合信息采集模块、控制模块、LCD显示模块、安全报警模块,完成基于单片机的集测温,测湿,显示,报警于一体的闭环负反馈系统。
系统在实时环境下灵敏度高,可靠性强,测量准确,适合于花卉培育等对环境条件要求较高的场合。在实际环镜下监控植物生长,给出合理的培育调整方案,并取得了良好的结果。系统一些扩展功能还可需进一步提升,应尝试挂接的一些更复杂的外设。如果进行功能上的完善和细化,可以运用到生态管理以及工业生产中。
参考文献:
[1]梁凯琳.单片机技术的发展及应用[M].中小企业管理与科技,2009年12期
[2]刘攀.俞杰.张海明.基于单片机的温度测控系统 [J].兰州交通大学学报,2005年
篇4
关键词:超声波 测距仪 单片机
0 引言
超声波检测速度快、方便、计算简单、易于实时控制,测量精度高;结合单片机及电路,通过超声换能器,设计了具有较高重复频率,精度高的超声测距仪的软硬件系统。并通过RS232串行通讯将报告测距结果传送给计算机显示。
1 硬件设计
MCS-51系列单片机属于8位单片计算机,因其品种齐全,兼容性强,软硬件资源丰富等特点,而成为8为位单片机中的主流。在此选用了MCS8751单片机。
8155芯片介绍 8155H芯片内包含有256个字节的RAM存储器,两个可编程的8位并行口PA和PB,一个可编程的6位并行口PC,以及一个14位减法定时器/计数器。PA口和PB口可工作于基本输入输出方式或选通输入输出方式。
数码显示电路 LED显示器分为:共阴极LED显示器的发光二极管阴极相连并接地;共阳极LED显示器的发光二极管的阳极相连接正电压,当某发光二极管的阴极接低电平时,二极管被点亮,显示相应字段。
点亮显示器有静态和动态两种。静态显示是指显示器显示某一字符时,相应的发光二极管恒定导通或截止;动态显示就是一位一位地轮流点亮显示器各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
若显示器的位数不大于八位,显示器公共极电位只需一个I/O口称为扫描口,显示器各位所显示的字型也需要一个八位口称为段数据口。4位共阴极显示器与8155的A口相连作为扫描口,经反向驱动器75452接显示器公共极,B口作为段数据口,经同向驱动器7407接显示器的各个极。
RS232接口电路在PC机中一般有两个标准RS-232C串行接口COM1和COM2.MCS8751单片机片内含一个全双工的串行接口,通过编程即可实现串行通信。然而PC机的RS-232C标准的电平采用负逻辑,规定+3V~+15V之间的任意电平为逻辑“0”,-3V~-15V之间的任意电平为逻辑“1”,计算机接口芯片大都为TTL或CMOS电平,在通信时,须进行电平转换,以便与RS-232C标准的电平匹配。选用了MAX232芯片完成电平转换工作。
超声波换能器 压电式超声波发生器实际上是利用压电晶体的谐振来工作的,内部有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,产生超声波。
超声波传感器采用UCM40的压电陶瓷传感器,它的工作电压是40kHz的脉冲信号,发射头为UCM40T和接收头UCM40R配套使用。单片机在P1.0端口输出一个40kHz的脉冲信号,经过三极管T放大,驱动超声波发射头UCM40T,发出40kHz的脉冲超声波,且持续发射200ms。接收头UCM40R,将超声波调制脉冲变为交变电压信号,经放大整形后加至单片机中断入口,当信号电平由高电平跃变为低电平,作为中断请求信号,送至单片机处理。
硬件电路 MCS8751单片机接6M晶振,同时具有上电复位和手动复位功能,P1.0口作为输出口,输出40KHz方波。方波信号经晶体管T放大后,送给超声波发射头UCM40T,驱动UCM40T发出40KHz超声波。超声波反射回来后,被超声波接收头UCM40R接收。UCM40R将超声波信号转换为交变电压信号,信号由差动放大器两级放大后送给音频译码器LM567,经LM567分频后,40KHz方波信号被选出来,此信号作为中断输入信号接到单片机的外部中断入口INT0。
为了接四位LED数码显示,单片机需外扩一片I/O接口芯片8155。8155加上电复位电路,数据口接单片机P0口,单片机P2.0,P2.7分别接8155的CE和IO/M端。8155的PA口作为输出口,扫描四位LED显示器。PB口作为显示器的段数据口。同时PA口和PB口分别加反向驱动器75452和同向驱动器7407。LED显示器接为共阴极型。
2 软件设计
方波发生 MCS-51单片机内有两个可编程的定时器/计数器,具有计数器、定时器两种工作模式及4种工作方式通过对特殊功能寄存器TCON的编程,可选择适当的工作模式和工作方式。特殊功能寄存器用于控制T0,T1的启动和停止计数,同时包含了T0,T1的状态。TMOD,TCON这两个寄存器的内容由软件设置。
在本设计中,时钟频率采用6MHZ,要在P1.0上输出一个周期为2ms的方波,方波的周期用定时器T0来确定,采用中断的方法来实现。首先确定定时常数,根据13位定时器特性,初值应为:TH0=0F0H TL0=OCH;其次对IP,IE,TCON,TMOD的相应位进行初始化设置,并将时间常数送入定时器中。
计时程序 当M1,M0为10时,定时器/计数器工作于方式2,方式2为自动恢复初值(常数重装入)的8位定时器/计数器,TLX作为常数缓冲器,当TLX计数溢出时,在置1溢出标志TFX的同时,还自动的将THX中的常数送至TLX,使TLX从初值开始重新计数。将T1定义方式2计数,计数初值为00H,计数从0开始。把T0(P3.4),作为外部中断请求输入线,即T0引脚发生负跳变时,向CPU请求中断。
3 结论
基于MCS8751单片机利用超声波原理设计的测距仪能完成远距离的测量,满足测量精度的要求,在数据通信方面还有待改进和提高,尤其是远距离通信方面。
参考文献:
[1]童峰,许天增.一种用于移动机器人导航的全向高精度超声测距处理方法[J].中南工业大学学报,2000.
[2]杨劲松,王敏,黄心汉.超声波可变阈值测距装置[J].电子技术应用,1998(7):7-9.
篇5
关键词:AT89C52;LCD显示终端;工业控制现场
中图分类号:TP39 文献标识码:A 文章编号:1674-7712 (2013) 02-0007-02
随着工业应用环境的变化,在工业生产中应用LCD显示技术得到了广泛的关注。通过LCD显示终端,可以将远程指令进行编码转换,以汉字或者ASCII码的方式显示出来。该系统的实现需要综合利用单片机控制系统以及相关连接器件或者芯片来完成。
一、LCD显示终端的功能分析
为满足工业控制和应用中的需求,通常LCD显示终端需要具有如下几个功能。
(1)LCD终端可以与控制部分组成一个完整系统,控制部分主要通过单片机实现。LCD终端与控制系统通过RS-485芯片实现与远程控制主机的通信与指令接收发送。为保证工业使用需求,显示模块可采用单色可显示汉字屏。
(2)LCD终端应该具有对1,2级汉字字库和任意ASCII码的显示功能,为满足该需求,终端应该具有外接图形点阵信息存储芯片。
(3)LCD终端应该具有缓冲区,以便于对远程控制指令进行及时有效的更新和执行。同时,远程指令存在不确定性,设置缓冲区可以有效预防大量信息同时涌入时所带来的影响。
(4)为有效应对多指令同时执行需求或者分模块控制功能,可以再终端的设计方案中引入多任务处理机制,此功能还可以很好的解决多模块的独立开发与调试需求。
二、LCD显示终端的硬件设计
按照设计需求,显示终端的硬件结构图如下:
其中,核心部件为单片机,本系统采用AT89C52单片机,该型号单片机内置了8KB的ROM空间、256B的RAM空间,基本可以满足功能需求。
对于译码器部分的硬件选择为GAL16V8D,该逻辑编程器件可以在RTX51实时操作系统中工作,对地址进行译码。
工业应用中的信息显示相对较为简单,一块单色320×240分辨率的LCD模块已经可以满足显示需求,该模块与单片机之间的数据和指令传输主要通过SED1335芯片实现。
字库则使用27C020 OTP存储芯片,该芯片最大存储量为256KB,可以存储全部系统所使用的点阵汉字库。但是需要注意的是,该芯片的存储容量超出了单片机的直接寻址范围,为保证全部字库的正常访问,在硬件部分还要由单片机进行芯片地址线模拟扩展,具体实现方式可以使用单片机的一个I/O端口的低4位控制4-16位转换器进行地址转换器。
缓冲区需要采用静态随机存储RAM,可使用HD62256实现。
通信电路主要用于与远程控制端进行通信,发送当前工作状态,接收远程控制指令。但是单片机无法直接与计算机连接,需要使用一片RS-485芯片进行电平转换。
蜂鸣器主要用于设定情况下的蜂鸣。
复位及看门口部分硬件电路主要是在系统出现死机或者故障时起作用。本系统使用看门狗芯片为MAX813L,可实现上电复位、手动复位、看门狗、掉电报警等功能。
三、系统的软件实现
本功能实现使用RTX51实时操作系统,该操作系统对于按照MCS0851标准开发的单片机都可以实现有效控制,同时该系统属于实时多任务操作系统。按照功能实现对软件设计进行任务分解。系统任务流程如图2所示。
(1)按照RTX51系统的使用规则,软件任务的执行需要从0号任务开始,因此将0号任务设定为系统初始化。鉴于多任务执行时对RAM的需求较高,而0号任务执行完毕后系统处于空闲状态,故可以将看门狗的电路控制功能添加到0号任务中。宏定义0号任务为:#define TASK_ID_INIT 0。
任务主要内容为硬件初始化,检查62256存储芯片是否连接,设置SED1335的工作模式。
(2)在0号任务执行完毕后开始执行系统任务即LCD显示任务,该任务为系统运行的核心任务,故设定为任务1。该任务在执行时,LCD显示内容和显示时间均需由远程控制端决定,因而该任务在实际执行时存在诸多不确定性,单独设定该任务可以及时有效完成对显示控制命令的解释与执行,LCD屏幕绘制等功能。宏定义1号任务为#define TASK_DISPLAY 1
(3)系统默认提供蜂鸣报警功能。此时多任务操作系统的优势就体现出来了,在系统中建立一个单独的发生任务,该任务不按照单任务操作模式进行顺序执行,而是可以被随时调用相应,实现连续蜂鸣报警的目的。宏定义任务为#define TASK_ID_INIT 2。
(4)通信任务则是由远程控制端控制的,不属于LCD终端系统,该任务通过中断的方式更改LCD显示终端系统的任务属性。
由图2可知,系统运行时首先需要对硬件进行初始化,对各硬件进行检查和配置,该过程完毕后系统开始建立上文所述任务,任务建立完毕后系统进入等待状态。若远程控制终端发来显示控制指令,则该指令通过单片机的中断服务程序进入系统内核。系统内核根据指令进行任务分配,同时检测是否需要执行看门狗。各任务接到控制指令后进入执行阶段,例如出现显示任务时,系统首先从缓存区读取显示指令,根据指令从字库中选取相应的显示信息,该信息经过译码后传递给LCD显示屏进行显示。任务执行完毕后系统重新进入等待。
四、总结
基于单片机的LCD显示终端可以将远程控制端传递到工业现场的信息进行编译和显示,以便于工作人员了解当前工作状态或者执行其他任务。该终端成本较低,稳定性和可靠性较高,可满足一般的工业现场显示需求,具有广泛的应用环境。
参考文献:
[1]李佳立.单片机的LCD显示终端没计分析[J].华人时刊(中旬刊),2012,2.
[2]陈京培,徐永梅.基于AT89S52单片机的液晶显示控制电路设计[J].现代电子技术,2008,31(22).
[3]胡晓颖.基于单片机的LCD的滚动显示[J].硅谷,2012,3.
篇6
关键词:RFID 单片机 超高频
【分类号】:TP391.44
1 引言
RFID无线射频识别系统是一种非接触自动识别技术,其基本原理是利用射频信号的空间耦合的传输特性,实现对识别物体所带信息的自动化读取和识别。本文从硬件电路设计和软件设计方面介绍了一种RFID系统中读写器(Reader)的实现方案,该方案以AS399x射频芯片为核心,辅以C8051F340单片机和其他相关模块实现。由于AS399x射频芯片的集成资源丰富,使得外置芯片减少,电路简单。
2 系统总体方案
2.1 RFID系统
RFID系统主要由三部分组成:
电子标签:由天线、耦合元件及芯片组成,作为物体所带信息的识别编码,一般附着在目标对象上。
读写器:由天线、射频电路、基带处理电路、电源模块以及必要的接口电路组成,对电子标签内的信息进行采集并传给上位机进行处理。
应用系统软件:作为应用层软件,对读写器收集来的数据进行存储和处理。
读写器与电子标签之间通过询问、应答的方式进行双向数据通信,读写器发出询问信号,附着电子标签的物体进入到读写器的工作距离范围内后对读写器进行应答。读写通过天线接收电子便签存储的物体信息并上传给上位机应用软件进行信息存储和处理,然后上位机把处理结果或者相关控制命令通过读写器和天线发回给电子标签。
2.2 RFID读写器
RFID读写器作为中间媒介,实现电子标签与上位机应用软件之间的信息交流。
振荡器:振荡器电路产生符合RFID系统要求的射频振荡频率,一路经过时钟电路产生MCU所需要的时钟信号,另外一路经过载波形成电路产生读写器工作的载波信号。
发送通道:发送通道包括编码、调制和功率放大电路,用于向电子标签传送命令和写数据。
接收通道:接收通道包括解调、解码电路,用于接收电子标签返回的应答信息和数据。同时还应该考虑防碰撞电路的设计。微控制器(MCU):MCU是读写器工作的核心,完成收发控制、向标签发送命令和写数据、标签数据读取和处理、与应用系统的高层进行通信等任务。
3 硬件电路组成
3.1射频收发模块
射频收发部分是读写器很重要的部分,负责接收上位机系统发送到主控芯片的命令,读写器根据命令对数据信息进行编码和调制,发送到电子标签中以实现数据通信。同时,读写器接收来自电子标签的信号并进行解调和解码,再根据上位机的命令对接收的数据进行处理。
在发射电路端,集成了功率放大器(PA)、锁相环(PLL)、压控振荡器(VCO)、频率合成器、调制器等模块;在接收电路端集成了低噪声放大器(LNA)、混频器(Mixer)、中频放大器、解调器等模块。同时还集成了电源电压管理、协议控制等工作模块,从而使芯片电路大大简化。芯片控制通过32个寄存器的设置来实现全部RF、滤波及协议控制功能。收发模块支持自动生成帧头和CRC校验码,组装成帧的数据块通过片上的24字节FIFO寄存器传输到上位机系统中。电源管理模块可以对片外MCU以及其他芯片供1.5~3.3伏电压以及提供时钟输出。
片上的功率放大器(PA)具有高达20dBm的输出功率,片上VCO和PLL可产生840MHz-960MHz的振荡频率。
3.2主控制器
RFID读写器一般使用单片机作为主控制器,主要功能是与应用系统软件进行通信;执行从应用系统软件发来的动作命令;控制射频模块与标签的通信过程;基带信号的编码和解码;执行防冲突算法:对读写器和标签之间传输的数据进行加密和解密;进行读写器和标签之间的身份认证等等。本方案中采用的是Silicon Labs公司推出的C8051F系列单片机。
C8051F340单芯片集成度十分高,片上集成了晶振电路、复位电路以及电路等丰富的模拟和数字资源。同时,C8051F340单片机内集成了电源管理模块、USB管理模块、JTAG接口、SPI以及UART串行接口。具有与8051兼容的高速CIP-51内核,单片机处理速度和性能都有很大的提升。高集成度使得系统所需要的芯片以及电路得到减少和简化,从而有效降低系统功耗和成本。
3.3 其他电路
为了实现读写器与上位机之间通信以及扩展应用,本方案采用USB接口,并且引出TTL/UART 接口和与AS3991相连的MCU I/O口,电源3.3V、5V、GND。
此外,由AS3991射频芯片引脚输出的差分数据,需要转化为单端信号并且滤波后才能通过耦合器发送出去。本方案中采用的是Balum平衡变压器用于将双端差分输出转化为单端输出,然后经过LFCN1000 LC低通滤波器滤除噪声,最后通过定向耦合器RCP890A05发送出去。
4 工作程序设计
4.1总体程序结构
射频识别系统是一种实时系统。在软件结构上,可以分成两部分:主程序和中断程序。主程序的主要任务是不断进行系统自检,和等待上位机发送信息包,若UART或USB收到正确的数据包,则发送中断标志,处理上位机发送过来的指令,一般为启动RFID操作标签流程。若UART或USB没有接收到有效的命令,则继续循环等待。
本系统RFID读写器程序结构如图5所示。系统应用层运行相关应用程序,在本设计中,集中表现为UART串口通信程序。协议层初始化读写器通信协议,包括IS018000 6B和EPC Gen2,确定调制编码方式和数据格式。AS399x驱动包括初始化32个芯片寄存器和包括内部VCO和PLL、内部PA等在内的所有工作模块。硬件底层驱动包括初始化串口和USB口,以及相关底层硬件。
4.2 程序设计
底层软件主要是PC机通过USB接口、串口等接口与上位机进行数据交换,对读写器进行读标签信息、读标签或寄存器数据、写标签或寄存器数据、上锁/解锁、灭活标签等操作。
单片机控制读写器持续对有效范围进行扫描,直到出现有标签的信息传回,暂时停止扫描,对传回的信息进行处理。若标签能与读写器能进行匹配,则继续对标签的操作,包括对标签工作状态的转变和数据的读取、写入。处理完毕后,读写器继续进行扫描,重复上述步骤。则基本软件部分应要有主控制程序控制硬件电路进行扫描,还要有中断程序控制读写器对标签的处理,另外就是通信协议部分和防碰撞算法。
5 结束语
随着物联网的发展,RFID技术将会有越来越大的应用空间。本文介绍了以AS399x射频芯片为核心,配合C8051F340单片机辅以其他电路的读写器实现方案,由于这两款芯片具有较高的集成度,使得系统所需要的芯片以及电路得到减少和简化,从而有效降低系统的功耗和成本。由于一个完整的RFID系统涉及多学科交叉,如电磁场学,集成电路,高频电路等,要完成一个完整的RFID系统,并且做到高性能指标是有很大难度的,需要大量的时间学习、实践和改进。
参考文献
篇7
【关键词】单片机 理论与实验 课程设计 协同教学
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2016)31-0243-01
引言
单片机理论、实验和课程设计相关课程体系是各高等院校电子电气信息类工科专业基础专业课程设置的重要组成部分,为大学生深入学习掌握单片机的基本原理,设计方法,实践应用等打下基础。大多数理工科高校开设这些课程,对学生进行综合培养。对于单片机的理论与实践教学,既可以选择汇编语言,也可以选择C语言进行。在高校的实际教学工作中,大多数老师是选择汇编语言进行教学的,因为从汇编语言入手能更好的掌握单片机的硬件资源使用原理等,也有部分老师是直接使用C语言进行教学,认为汇编语言编程过于繁琐,而C语言编程能够在将来的实践工作中得到更好的应用。本文通过总结作者多年来在单片机相关课程教学积累的经验和教学研究心得,以51单片机理论、实验和课程设计教学为例,对如何在使用不同编程语言进行繁琐和复杂的教学中使学生更好地掌握单片机知识体系进行了探讨。
1.单片机理论教学
1.1 汇编语言理论教学
单片机是一个把中央处理器CPU、数据存储器RAM、程序存储器ROM、并行IO接口、串行IO接口、定时器计数器、时钟振荡电路等集成在一起的控制芯片,硬件资源简单且丰富,也易于扩展电路,所以单片机的学习侧重点首先在于掌握硬件资源使用方法。因为汇编语言实际上是CPU能够识别的机器码的助记符,从汇编语言入手开始教学,能够使学生更好地掌握单片机的硬件资源使用原理。使用汇编语言编程可以很方便地对单片机存储器地址直接进行存取操作,也能很方便地对存储器地址进行整体安排分配,前提是对单片机硬件资源非常熟悉,能够灵活调用。比如指令MOV、MOVC和MOVX可以分别访问单片机内部的数据存储器、程序存储器和外部扩展的数据存储器。汇编编程的缺点在于进行算术运算和逻辑判断跳转等比较繁琐。
1.2 C语言理论教学
国内的单片机C语言程序设计教程多数的编排都会在前面开始的章节介绍单片机硬件资源以及汇编语言指令系统,然后以更大篇幅讲述C语言程序设计语法和针对硬件资源的编程。针对单片机的C语言程序设计语法与计算机C语言高级程序设计编程语法基本一致,而针对硬件资源的指令又类似于汇编语言指令系统,所以应该可以说单片机C语言程序设计是计算机C语言高级程序设计和汇编语言指令结合体。要掌握好C语言编程依然要对于单片机的硬件资源理解透彻并能灵活调用。但是C语言针对硬件资源的指令与汇编语言指令比较起来却不如汇编那么直观,也不如汇编指令那样更加有助于单片机硬件体系结构的理解。
为了使初学者能够更好地理解单片机硬件体系结构,掌握硬件资源的调用,选择汇编语言进行教学显然是更加合适的。
2.单片机实验教学
单片机作为电子电气信息类专业的一门专业基础核心课程,比某些专业基础课程如电路原理、数字电子技术、模拟电子技术等更加注重编程实践的练习。单片机实验课程一般都是配套安排在单片机理论课程的下半学期,这样能够更加有助于理论的理解和掌握。作为理论课程的配套课程,单片机实验课程在教学上必须与理论课程保持一致性,选择汇编语言进行实验教学就是必然和最好的选择。
在实验设备的选择上,学院实验室早期购置过星研单片机Star ES51实验箱,后来又购置了大批光佑STC开发板,可以两者选其一。
早期的单片机实验都是集中在实验室进行,两人共用一台实验箱,通过连线和读写配套程序仿真运行来进行实验。这样的实验有一些明显的不足,比如配套程序调用了很多键盘显示的子程序,而这些子程序没有直接给出来,实验箱的很多硬件电路连接也没有给出详细原理图,所以造成了实验结束后多数学生也是对实验原理和编程似懂非懂的结果。
有了STC开发板后,每个学生可以分配一块开发板,各自进行单片机的编程仿真实验,还可以将开发板带回宿舍课后继续练习,实验可以更方便地进行。实验开发板的原理图清晰,例子程序丰富,通过读写配套例程可以较好的掌握单片机的基本原理。
显然使用汇编语言选择STC开发板进行单片机实验是实验教学的最好安排。实验课程的要求注重于单片机基础知识的掌握和硬件资源的调用。
3.单片机课程设计教学
单片机课程设计的安排是为了进一步提高学生的实践能力,所以课程设计的教学就不再局限于基本原理的掌握,而是必须达到更高程度的实践效果。汇编语言编程有利于对基础知识的理解和单片机硬件资源的掌握,却不利于复杂逻辑的处理。所以在学生已经基本掌握了基础理论的情况下,课程设计选择C语言编程,可以让学生更加方便的进行复杂程序的编写。
单片机课程设计实践项目内容的安排上,必须注重单片机内部和外部硬件资源的综合调用,以便完成具有实际意义的综合程序的编写。课程设计实践项目安排了可以综合调用单片机I/O口资源进行键盘扫描数码管显示以及中断处理的实现计算器功能的程序编写,和能够使用I2C总线进行通讯的AD/DA处理的程序编写。这两种程序的综合度和复杂度都远远大于单片机实验题目的要求。从实践结果来看,通过这种综合性复杂程序的编写练习,能够大大提高学生的开发设计实际项目的动手实践能力。
结束语
在我国大力实行人才战略强调人才培养的大环境下,本文作者所在高校也响应国家号召加强本科生培养,实施卓越工程教育,取得了积极可喜的成绩。本文积极探索和提高单片机理论实验课程设计协同教学的方法,取得了长足的进步和发展,也得到了学生的高度认同。以此方法培养出来的本科生在参加全国大学生电子设计竞赛的过程中也取得了骄人的成绩。本文作者经验和方法也可以为兄弟院校相关专业的教学提供参考和借鉴。
参考文献:
[1]李朝青.单片机原理及接口技术(第4版),北京航空航天大学出版社,2013.7
[2]郭天祥.新概念51单片机C语言教程――入门、提高、开发、拓展, 电子工业出版社,2009.1
[3]彭伟.单片机C语言程序设计实训100例――基于8051+Proteus仿真(第2版), 电子工业出版社,2012.10
篇8
关键词:单片机技术;教学改革;培养兴趣;教学手段;实践应用
【中图分类号】TP368.1-4
1引言
“单片机技术及应用”是大学计算机科学与技术专业的一门专业必修课程,对于高校学生来说,学习该课程是初步认识单片机的整体设计过程,为将来从事信息系统工作及电子产品的设计、检测和维修奠定坚实的基础,具有不可替代的作用和意义。
2培养学习兴趣
单片机技术与应用课程是大四学生需要学习的一门专业课程,因此在课堂教学过程中,教师要结合学生的培养目标、就业方向,从实际出发,注重理论基础与实际应用的结合,多给学生展示单片机广阔的应用前景和具体产品,使他们体会到单片机技术在以后的工作生活中都具有很强的实用性,认识到单片机技术强大的潜能和发展空间,从而激发他们学习的兴趣和求知欲。
2.1 联系实际
为使学生更好的接受抽象的知识,在讲述具体内容之前,可以列举大量单片机的应用实例。如在日常生活中常见的洗衣机、冰箱、热水器和空调等家用电器的智能化控制[1],这些都离不开单片机。抽象的教学内容与身边活生生的应用实例相结合,给学生一个看得到、听得见、摸得着的学习目标,大大提高了学生学习单片机的兴趣。
2.2 组织竞赛
学以致用是教学的根本目标,结合新形势下教育目标模式转型,对学生的培B重在能力的培养,这就需要给学生一个平台,让学生自己去动手、去实践。单片机课程为学生安排了对应的实验课程,但这在实际应用中是远远不够的,因此可以组织一些电子设计大赛,让学生积极的参与其中,为其学习兴趣的培养提供一个积极的推进作用,大大激发学生的学习主动性。
3优化教学内容
3.1 紧跟时代步伐
在课堂教学中,教师应选用应用广泛、实用性好、易学易懂易掌握的优秀教材。但教材往往是落后于科技发展的,所以教师还要了解单片机技术的发展现状以及前沿技术,根据实际需要,在课堂上适时适当地向学生补充当前使用比较热门的硬件接口和软件编程技术,了解当前有关单片机的新信息、新技术和新发展,来拓宽学生的知识面,延伸和补充课堂之外的教学内容,让学生紧跟时代步伐。
3.2 选取合适的编程语言
单片机课堂教学注重的不只是基本原理的讲解,更多的是应用设计。单片机教学通常采用纯汇编语言教学,这需要有前导课程“微机原理及应用”所学习的汇编语言作支撑,而在教学过程中,学生普遍认为汇编语言不易掌握,并且目前在实际的单片机应用项目开发中,使用较多的开发语言并不是汇编语言,而是单片机C51语言。单片机C51语言是由C语言继承而来的。因此,可以将“微机原理及应用”与“单片机技术及应用”进行整合,在单片机编程设计上以C51语言为主,特别注意C51与C语言的区别,以汇编语言为辅的形式进行讲解,降低由语言选择带来的编程难度,提高教学质量。
3.3 选取适合的软件平台
与C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。因此,可以采用专门针对MSC-51系列单片机的软件开发平台Keil C51,以加强培养学生对C51的编程能力。在选用实验箱时,还要考虑到培养学生的创新能力要求,尽量使用具有现在先进技术接口的实验箱,通过课程设计或毕业设计积极引导学生使用C51开发语言进行相关软件设计,设计难度明显减小,程序也更加简洁清晰[2]。
4丰富教学手段
新型人才的培养最重要的是能力的培养。知识转化为能力必须通过实践,实践性教学结合理论与实际、综合思维和感官、提高个性与社会化水平,是培养学生创新意识和创新能力的重要途径。因此,在高校单片机的课程教学中,一定要从实际需要出发。
4.1 借助多媒体教学手段
单片机课程内容抽象,要在有限的课时内讲深懂、讲透课程内容,依靠传统的教学手段很难实现,这就需要教师精心设计讲解内容,制作生动形象的多媒体课件,将抽象难懂的概念具体化、形象化,单调枯燥的理论多样化、生动化,将重难点知识内容通过多媒体进行演示,可以加深理解,便于记忆。
4.2 利用仿真软件演示
在单片机应用开发过程中,更侧重于硬件设计。而在单片机教学过程中,由于硬件条件或时间条件的限制,教师在课堂上很难向学生直接具体的展示硬件设计的整个过程。而在实践教学过程中,可以有效利用仿真软件来达到更好的教学效果。Keil-C51和Proteus professional的出现可以满足对单片机进行随堂编程和电路仿真的需求。Keil软件为项目的开发制定了一套完整的方案,学生在使用时可以直接进行编程,编译和仿真方面的练习;Proteus是集电路分析和硬件电路仿真于一体的软件,可以很好的实现一个完整的电路设计系统。
5 提高教师的业务能力
5.1 及时补充新知识
要培养高素质的学生,必须要有高素质的教师队伍,授课教师应紧跟软硬件技术的发展动态,不断学习充实自己,才能够胜任工作的需要,才能跟上时代的步伐。单片机的发展速度较快,利用单片机技术来进行产品开发、控制系统设计的过程中,需要用的知识较多,这就需要教师具有电子产品研发和工程实践的经验,否则就无法使学生对该课程产生深刻的理解。
5.2 提高科研能力
教师在课堂上的旁征博引,大都以科研经验为背景,正所谓见多识广,见得多用得多,自然能够讲的深入浅出、得心应手。教学和科研是相辅相成的,教学是科研的基础,科研是教学的提高,教学与科研的这种关系,反映了教学与科研的内在联系,决定了高校离不开科研的职能。用科研实例的形式来调动学生学习的积极性、主动性,培养学生的创新能力。
6 总结
“单片机技术及应用”是一门应用性极强的课程,随着单片机新技术的飞速发展,给单片机课程内容本身增了很多新的元素。而对于高校来说,教育的基本任务是从学生原有基础和身心发展特点出发,使他们的素质获得发展,逐步适应社会建设和发展的客观需要。因此高校教师在教学过程中,要不断探索研究行之有效的方法措施,紧紧抓住“应用”这个纲领,注重学生实际设计能力的培养,实现教与学的最佳统一。
参考文献:
篇9
关键词:单片机 教学改革 单片机开发板 单片机课程设计
0 引言
单片机因体积小、功能强、可靠性高和价格低廉等一系列优点,已渗入到人们工作和生活的各个角落,应用前景广阔[1]。目前多数高职院校的机械专业都开设了单片机课程,但大多院校的教学思路仍然借鉴本科先基础后应用的常规教学模式,理论教学与实际应用结合较少。对于高职学生,课程入门比较困难,知识不易掌握,实际应用较少,学习兴趣不高,该课程的实际教学效果并不理想。因此,单片机的教学模式亟需改革,改变原来以知识传授为目标的教学方式,要理论与实践并重,以实践入门来吸引学生学习的兴趣,提高教学质量。
1 高职机械专业单片机教学现存的难点
单片机是一门理论性很强的专业基础课程,同时也是一门实践性和技术性很强的学科。要求学生掌握一定的电子电路知识,还要熟练掌握计算机的相关知识,掌握编程的思维和方法。高职学生的基础知识相对薄弱,对于单片机的学习有一定的困难。
1.1 对于单片机中的专业术语和电路很难理解
学习单片机要以电路原理、模拟电子技术、数字电子技术、计算机基础知识等相关课程的理论知识为基础。与电子专业学生不同的是,我校机械专业学生只开设一门电工电子课程,所有的电路、模电和数电的相关知识都集中在一门课程中讲授,知识点多且课时量偏少,知识点讲授较为粗浅,不能深入展开。因此,学生对于单片机中遇到的一些专业术语和电路,如集电极开路、上拉电阻、存储器地址、D触发器、555振荡电路等,很难理解。这些知识都需要重新讲授,且讲授效果不佳。学生往往在学到单片机的硬件电路部分时,突然间觉得很难,学习的积极性下降,甚至有了厌学的情绪。
1.2 对于汇编指令不易理解
像所有其他的指令一样,汇编指令也是英文的,我校机械专业大部分学生的英语能力比较差,遇到有英文的地方,本能地会回避,更不要说进行深入的研究。单片机中要求他们短时间记忆和理解数十条甚至上百条指令的格式和功能,他们觉得比较有压力,很多学生达不到这个目标。
汇编语言是一种低级语言,每一条汇编指令都与机器的硬件结构密切相关,
如果学生对于硬件结构没有掌握好,那么对于汇编语言的指令也很难完全理解。即使学生勉强知道每条指令的大概意思,但由于没有充分理解其内涵,不能做到融会贯通,常常错误地运用指令,即使在一个程序里运用正确,可能题型改变,就做不出来了。
1.3 对于单片机的应用比较陌生
我们在学校的教学中,受制于课时量的不足和传统教学思维和方法的限制,通常都以传授理论知识为主,实际应用提到的比较少。因此,出现一些学生直到学完这门课程,都不知道单片机能干什么。有些学生告诉老师,以前我们学过的课程,如机械制图,很有实用性,单片机讲的这么多、这么复杂,到底有什么用,我们机械专业为什么要学这一门课程。学生不能深入理解该门课程的实际应用,认为学了无用知识。
2 高职机械专业单片机教学改革的具体措施
学习单片机的最终目标是能运用单片机进行一些项目的开发,解决生产和生活中遇到的实际问题。人才市场需要的不是只懂理论、不懂实践的研究型人才,而是既懂理论,又能实践的应用型人才。因此,单片机的改革也要以就业市场为导向,结合高职机械类学生的特点,做一些针对性的调整,使学生既能学好,又能快速地适应社会的需求。本文针对单片机课程在教学方面现有的种种弊端,提出了单片机课程教学改革实施的一些具体措施。
2.1 实施“项目任务驱动法”,理论教学紧扣实践应用
单片机教学应该采用工程实际应用课题或实践案例进行教学的方法,实施“项目任务驱动法”,即课程教学以单片机应用技术的典型实用案例进行分析讲授的一种教学方法。授课时以单片机技术“案例”演示作为引入,以实现“案例”为主线讲述各相关理论知识。为巩固理论知识的学习和培养学生实际动手的能力,理论教学应与实际“案例”实验教学穿行,以实验教学充实理论内容,使两者融会贯通。整个教学过程的思路设计如下:
例如,在第一次上单片机的课时,就应该给学生演示单片机的用途,如单片机驱动流水灯、驱动数码管显示数字,驱动16×16点阵显示汉字,驱动蜂鸣器演奏一段铃声等,让学生了解单片机的应用,领略单片机的妙处,激发学生学习的兴趣。兴趣对一个学生学习一门课程很重要,如果学生对某门课程失去兴趣,即使再好的老师也教不好。第二次上课可以选择一个简单的应用,如单片机驱动一个LED的亮灭,通过仿真软件,当堂给学生画电路图,编写软件,使学生感到单片机并不是很难,自己也可以学会,打消他学不好的顾虑。后面每次课都以项目任务为导向,每次课时可以先将我们要实现的功能给学生演示一遍,然后告诉学生我们实现这个功能的思路是什么,我们要实现这个功能,需要学习哪些基础知识,让学生有一个清晰的概况和热切学习的期盼。下表为四个常用的典型项目的实验任务设置:
每个项目的设计都要以实践应用为导向,让学生感觉到能学以致用。任务的设计应遵循由浅到深、循序渐进的手法,与理论章节知识的进度遥相呼应,使学生能够逐步接受并加深理解。同一个知识点,可以举不同项目中的相近任务反复讲解,使学生对所学知识点理解透彻,达到举一反三的目的。
2.2 以C语言为主,汇编语言为辅,讲授单片机的指令系统
目前单片机的实际项目开发多采用C语言程序编写,传统的单片机教材和教学,大多采用汇编语言讲授单片机的指令系统[2]。为了改变传统所学与实际所用的差别,单片机指令系统的教学,应在汇编语言的基础上,增加单片机C语言程序设计内容,采用以C语言为主,汇编语言为辅的编程方式。这样可以使学生尽快与实践接轨,提高单片机的开发效率,使学生毕业后更快更好地适应工作环境。例如:在采用案例教学过程中,同一程序分别用汇编语言和C语言编写,通过比较二者的优缺点,可以真正理解两种语言在实际应用中的效果。Keil C51程序编译工具,既可以实现汇编语言的编程,又可以实现C语言的编程。因此,在我们实际教学工作中,完全可以用Keil C51软件实现了单片机软件开发和应用案例的日常教学,简化理论课学习的内容,降低学习难度,使学生能尽快上手单片机,这样就提高了同学们学习单片机的热情,同时也非常适合实践应用的需求,为将来工作中单片机的开发应用奠定了良好的软件基础。
2.3 单片机仿真软件和实验开发板并重的双重实验教学模式
实验教学中应实施单片机仿真软件和实验开发板并重的双重实验教学模式。开发板是在一块电路板上集成了单片机常用功能模块,虽然体积小,但涵盖了绝大多数单片机常用的实验,并可以根据教学需求,开发扩展相关功能模块[3]。课堂教学结束后,学生可将开发板带回宿舍,只需要一台电脑、一根USB下载线,就可在开发板上自学单片机或是做一些小项目锻炼实际动手能力,充分调动学生学习单片机的积极性。开发板价格便宜,现在市面上简单通用的单片机开发板(适用入门者学习),每套均价不到200元,完全满足初学者做一些常用的开发应用。实验教学中,可先让学生在Keil C51和Proteus软件中编写和仿真单片机案例程序,程序仿真正确无误后,将程序下载到单片机开发板中,在开发板上实现实际电路功能的运行,强化对实际电路的认识和理解。
2.4 增添单片机课程设计专项实训,实施理论与实践并重的考核方案
在单片机课程结束前,可在临近期末设置3周的单片机课程设计专项实训,一周调研选题,一周设计软硬件、一周焊接电路板,完成作品。具体实施的方法是让学生独立在单片机开发板上完成自选项目的设计与实现,如“数字钟”、“LED显示器”、“数字温度显示计”等智能化小产品。3-4人一组,查阅资料,自选题目,自行设计电路图、编辑程序,然后选择并购买相应的元器件,亲自焊接并完成电路,提交课题设计报告。该课程设计的开展,可以使学生了解市场行情,培养学生开发项目的能力,团队合作能力等,同时也可以作为学生期末考试实践环节的考核成绩。
为防止学生原搬照抄网上和有关资料的单片机实验设计,达不到课程考核的初衷,单片机的考核还应保留原有的理论考试。应将传统的以理论考核为主的期末闭卷考试与以实践开发应用为主的单片机课程设计考核相结合,将二者的成绩共同作为单片机课程的最终考核成绩。这样,能同时对学生的理论基础知识和实践动手开发能力做出合理的考核评价。
3 结语
单片机是高职机械专业学生的重要基础课程,目前教学效果普遍不佳。在分析高职机械专业学生单片机教学难点的基础上,针对传统教学模式的弊端,提出了该课程教学改革的具体实施措施。在教学方法上,实施了“项目任务驱动法”,较好地融合了理论与实践教学;在教学内容上,紧贴能实际运用的教学理论与技术,如以C语言为主,汇编语言为辅的单片机编程语言;在教学手段上,实行单片机仿真软件和实验开发板并重的双重实验教学模式;在考核方式上,采用理论与实践并重的考核方案。实践教学结果表明,改进后的教学模式要优于过去传统教学模式的教学效果,达到了单片机课程教学改革的预期目标。
参考文献:
[1]王效华,张咏梅.单片机原理与应用[M].北京:北京交通大学出版社,2007:5.
[2]谢维成.单片机原理及应用C51程序设计[M].北京:清华大学出版社,2008.
[3]周润景,张丽娜.基于Proteus的电路及单片机系统的设计与仿真[M].北京:北京航空航天大学出版社,2006.
篇10
关键词:C+PROTEUS;科技创新;单片机综合设计
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)30-0094-02
《单片机应用技术》课程是一门理论与实践性均很强的学科,是工科电类专业一门很重要的专业基础课,它将数字电路和模拟电路的基础知识、汇编语言及C语言编程技术、通信原理和微处理器知识等综合在一起,属于技术性、工程性、实践性很强的一门课程。
《单片机原理及应用》课程的特点是涉及硬件结构复杂,涉及知识面较广,经常涉及到电子技术基础、电路原理及编程C语言等知识,因此,要想将课堂所学的单片机系统结构及应用技术与所学知识有机融合,能够在实践中游刃有余地应用,还需要反复的实际设计与实践。针对《单片机原理及应用》课程抽象难学,尤其难于应用于实践开发的现状,我们在教学中注意做到理论联系实际,将课堂教学与科研开发和科技创新紧密结合。
在课堂教学中,初期阶段,采用C+PROTEUS的教学模式,引导学生应用C语言编写应用驱动程序,然后在PROTEUS环境下仿真运行,逐步理解和领会单片机的设计思路。在综合应用阶段,通过引入实际工程应用实例,接触实际科研项目中设计开发产品,使学生了解所学知识的应用价值,激发学生的学习兴趣,深化学生对知识点的理解。
在实践环节,由专业课教师指导,学生设计为主,带动学生自己设计单片机课程的实验开发平台,并在所设计的开发系统基础上,增设大量综合性、设计性实验,启发学生的思维,以提高学生综合分析问题和解决问题的能力。同时,在大学生科技创新和各类电子设计竞赛活动中,积极引导学生应用所学单片机技术进行开发设计,进而培养学生实践能力、创新能力。
通过上述各个环节,分层次、分阶段,层层深入,真正在单片机课程教学中做到理论与实践紧密结合,真正实现提高学生应用单片机技术解决实际问题能力,进而探索一条在课程教学中如何提高大学生科技创新能力的可行之路。
一、改革教学环节
1.初期的课堂教学中,将C语言与PROTEUS软件有机结合,提高学生对单片机的实际应用能力。从目前单片机技术应用层面上看,对单片机系统的开发一般采用C语言完成,因此,在课堂教学中强化推广采用C语言进行编程设计的技术,并逐步取代原来采用汇编语言进行设计的模式。从而,提高学生对单片机技术的实际应用水平。PROTEUS软件是一种近年来逐渐流行的单片机系统设计的专业仿真软件,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。在单片机教学初期,采用C语言+PROTEUS仿真的教学模式,引导学生应用C语言编写应用驱动程序,然后在PROTEUS环境下,绘制原理图并仿真运行,观察设计效果是否正确,发现问题在修正编写的C语言程序,如此反复,逐步提高学生控制单片机和设计单片机系统的能力。
2.综合应用阶段,通过工程设计实例,深化学生对知识点的理解。作为多年从事单片机课程教学的教师,具备多年来单片机开发与实践的工作经验,在应用单片机技术进行智能仪器仪表开发上有许多成功的设计项目,如基于单片机系统设计的大庆油田的井地电位成像监测系统、开关磁阻电机设计、过套管电阻率测量仪开发设计等等,都是应用单片机处理器进行设计的,在课堂教学中,结合上述实际开发项目,讲述单片机的设计及应用技术,使学生直接接触实际科研项目中设计开发产品,深化学生对知识点的理解,认识到所学知识的应用价值,从而,激发学生的学习兴趣,启发学生思维。以单片机中应用IO端口控制数据采集芯片为例:模数转换器是实际工程应用中较为常用的一种数据采集芯片,目前,主流的控制数据采集芯片的技术是通过单片机IO引脚控制方式实现,通过单片机的引脚模拟数据采集芯片的工作时序,再通过C语言编程,完成对数据采集芯片的控制。在学习中,学生对于模数转换芯片的工作时序图始终感到很抽象,因此,在编程设计上往往不知从何入手。我们在教学中,结合横向科研项目“过套管数据采集”中数据采集,通过实物演示、数据读取实际设计案例讲解,从工程数据采集需求,到硬件电路设计原理,以及最终程序上的编程实现,在讲解中,学生不仅了解了数据采集芯片的工作时序逻辑,而且也能够独立应用单片机IO端口进行数据采集接口的设计。
二、改革实践环节
1.在单片机课程实验内容上更多增设综合性、设计性实验,提高系统设计能力。由专业课教师指导,学生设计为主,更多增设综合性、设计性实验,以提高学生的系统设计能力。预计增加设计性、综合性实验:8_8LED点阵扫描输出实验、直流电机正反转调速实验、基于I2C通信接口的数据采集显示实验和基于串行通信接口的智能远程数字钟实验等。通过大量综合性设计性实验,要求学生自行设计电路,编写驱动控制程序,不仅可以帮助学生加深对单片机知识结构的理解,而且可以提高基于单片机处理器的系统设计能力,培养学生的实际动手能力、学习兴趣和创新精神。
2.强化单片机综合课程设计环节,提高应用单片机综合设计能力。在完成单片机基本课程及实践基础上,对机电、自动化、仪器类专业应强化安排综合课程设计,以课题项目的形式要求学生组队共同完成,采取开放式管理的模式,在2~4周内,首先运用所学电子技术基础知识,查阅相关文献资料、电子线路参考设计手册、电子元器件手册,进行电路设计、程序编制,在设计过程中,锻炼自己熟练掌握和使用先进的计算机电路仿真软件工具,提高设计效率;其次进行电子市场调研、购买相应元器件,完成电路设计制作、功能调试、参数测定、写出设计总结报告;最后由教师组织全班进行设计交流、现场功能演示和提问答辩,同时教师完成每组的成绩评定和设计总结,为下次的课程设计提出合理化建议。在课程设计的选题上,发挥广大教师的积极参与,不断对课程设计的题目进行更新,修改课程设计的内容,增加设计性、综合性设计内容。目前,开设的新增加的课程设计题目包括:模拟交通信号灯控制系统;基于P89C51RD2单片机数据采集板卡设计实现;基于凌阳单片机的音乐播放器设计开发实例;公交语音报站播放器设计;简单计算器设计实现;通过大量新颖的具有高技术含量的综合设计,充分调动学生的热情,让学生从实验中既学到知识,由学会探索问题进而解决问题,发挥潜能,提高创造能力。
3.积极引导学生将所学单片机技术应用于大学生科技创新和各类电子设计竞赛活动。单片机技术是现代电子系统设计开发的主流技术,在科技创新和电子设计竞赛中应用这些技术,往往有事半功倍的效果。鼓励单片机课程学习好的同学积极参与科技创新和电子竞赛,应用单片机技术进行相关项目和题目的设计,以2013年为例,我校学生参加北京市电子设计竞赛,设计中采用单片机技术进行设计开发,获得二等奖2项、三等奖3项,为学校争光。通过学生间影响,激发学生学习单片机技术的热情,形成一个较好的学习氛围。
三、结束语
单片机原理及应用课程是一门应用性和实践性很强的专业课,把握课程特点,了解学生理解上的薄弱环节,通过课堂教学和实验环节的改革与创新,各个环节,分层次、分阶段,层层深入,真正在单片机课程教学中做到理论与实践紧密结合,激发学生学习的兴趣,启发学生的创造力,将单片机课程教学中所亟待解决的提高学生应用单片机技术解决实际问题能力落到实处,进而,使学生创新能力和综合实践能力得到提高。
参考文献:
[1]潘言全.单片机教学改革的思考[J].湖南师范学院学报:自然科学版,2007,(27).
[2]张琪,李菲,柴新.构建高职院校开放式电子实验室的研究[J].科技信息,2009,(10):18-21.
[3]王英红.浅析开放式电工电子实验室的建设[J].电气电子教学学报,2012,(8):24-27.
[4]江锦花,大学生科技创新与开放实验室管理模式[J].实验室研究与探索,2009,(12):32-48.
[5]李丽宏.《单片机原理及应用》课程教学改革尝试[J].太原理工大学学报:社会科学版,2001,(02).
[6]覃金昌,王为庆.机械类单片机应用实践能力培养体系的构建[J].考试周刊,2010,(47).
[7]曹建树,薛龙,蒋力培,焦向东,俞建荣,黄爱峰.单片机创新实践教学改革与实验室建设[J].实验室研究与探索,2005,(09).
- 上一篇:单片机原理与接口技术
- 下一篇:单片机设计