单片机应用实训总结(精选7篇)
时光飞逝,转眼间我们为期3周的《单片机应用》实训已结束,于是以下是我对过去的三个星期的学习进行总结。
在上这门课程的开始,我们的指导老师首先给我们做课程介绍:①认识什么是单片机,②单片机如何控制8位发光二极管,③单片机的指令及他们的应用,④发光数码管的数字显示,⑤定时器/计数器进行秒计数,⑥中断系统的应用,⑦键盘程序的设计等。然后我们的第一个任务就是对89S51芯片引脚、晶振电路、复位电路的认识及测量。接着第二个任务是单片机内部结构及存储器的认识。然后画晶振电路图,熟悉晶振电路、复位电路图及这些电路的结构。接着老师跟我们讲述单片机复位后各寄存器的值,单片机中使用的数制——二进制、十进制、十六进制等的转换。老师为了让我们更快的熟悉单片机中使用到的数制指导我们接着对这些数制做练习并能掌握它们。
接下来我们学习的是单片机内部结构及存储器的认识、存储器的类型(只读型ROM,可读可写型RAM)。存储器的信息(数据)的存储形式:
1、位:bit(指一位二进制数,0或1),2、字节:B(每8位二进数构成一个字节),3、字:W(两个字节造成一个字,16位二制数),4、双字:D(两个字造成双字,32位二进制数)。存储器的信息(数据)的存储形式,存储器以8位二进数(字节)为一个存储单元。存储容量:存储容量是指存储器能存放二进数的位数。
1、1B(字节)=8bit(位)2、1K=1024B=1024×8bit(位)1K=210=10243、1M=1024K=1024×1024×8bit(位)
4、1G=1024M=1024 ×1024×1024×8(位)
数据存储器的分区:在00H~FFH之间分为:(1)工作寄存器区:地址从00H~1FH,32字节。特殊功能寄存器SFR(专用寄存器):特殊功能寄存器分布在:80H~FFH的区域内,是不连续的。还有P3口的第二功能。
接下来我们学习的是练习编写程序做单片机控制8位发光二极管,在学习编程序的过程中,我们老师进一步地指导我们运用调用延时子程序指令。然后我们老师又给我们介绍了一些单片机中使用的指令和一些常用到的符号并让我们多加练习。老师为了让我们熟悉掌握单片机的程序编写及指令的应用,给我们做了很多练习。比如项目1:由0依次显示到9然后再循环、项目2:从0显示到6然后再循环、项目3:从0显示到F然后再循环、项目4:在十位上显示从F到0减1显示再从头开始循环、项目5:显示
59、项目6:显示1234、项目7:显示从00开始加1到99然后再循环、项目8:定时器中断
1、项目9:
定时器中断
2、项目10:定时器中断进行秒显示、项目11:外部中断的应用、项目12:键盘应用初体验、项目13:篮球记分器的程序设计等。
在做练习的过程当中,我们有顺利的时候也有遇到不少挫折的时候。编程序之所以能够顺利完成任务,是因为我们在课堂上认真听课及课后认真复习和预习反复做练习大胆尝试,在受挫方面,虽然在老师讲课的时候我们认真听讲也做了相应的笔记,但单凭这些还是不够的,还有是因为我们对一些刚接触的新的指令还不够了解,不明白在编程序时如何运用他们。虽然我们小组经过几番讨论及深入研究之后还是得不到解决方法,不过在我们寻求老师和其他同学的耐心指导下,终于百思得到了其解。
单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、存储器、内部和外部总线系统,同时集成通讯接口、定时器,实时时钟等外围设备。单片机及嵌入式处理系统推动了便携式与智能化发展。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑,以及鼠标等电脑配件中都配有单片机。掌握单片机知识对于高职高专电气自动化技术专业十分重要,单片机应用实训室建设是单片机课程实施的基础,只有通过单片机系统实训,学生才能掌握单片机系统的设计、调试,综合分析问题和解决问题的能力。
2. 单片机应用实训室
单片机应用实训室是电气自动化技术专业的专业实训室。主要为《单片机原理与应用》专业课程提供教学、实践、研究场所。学生可以通过实训设备与课程项目加深对单片机系统基本原理的理解,熟悉汇编语言的编程方法,培养单片机系统设计、调试的操作技能。
我院实训室现有设备:TKMCU-2型单片机开发综合实验装置27台及相应配套模块若干;专业计算机27套。
实训室现开设项目:拆字程序、二进制转换到BCD、多分支程序设计、电脑时钟中断综合实验,P1口亮灯实验、8255 A B.C口输出方波、简单I/O扩展、A/D (0809)转换实验、D/A (0832)输出方波实验、电子音响、继电器控制、步进电机控制、串并转换实验、8051单片机串行通信实验(双机通信)、8051单片机串行通信实验(与PC通信)、小直流电机调速实验、2×16LCD液晶显示接口实验、数字温度传感器等多个实训项目。
3. 建设内容
3.1 实训项目开发
单片机应用实训室现有多个基于硬件基础上的实训项目,如P1口亮灯、继电器控制项目等,这些项目都是在硬件基础上完成的。学生在课堂上开展实训时,要花大量的时间在硬件接线上,占用了大量的课堂教学时间,2个课时的教学时间得不到充分利用,不利于教学效率的提高。而单片机实训的核心内容是培养学生根据系统要求,编写汇编语言程序和单片机系统硬件电路的设计能力。为此,单片机应用实训室引入proteus仿真软件和keil-c程序编译软件。在课堂教学时,我们让学生在proteus仿真软件绘制硬件电路,电路绘制完成后,直接在计算机上练习汇编语言程序的编写,教师可以现场指导学生编程,提高课堂教学效率,培养学生在单片机的软硬件上的设计能力,为三年制高职学生的毕业设计打下基础,同时可以作为学生研究与毕业设计的平台。
3.2 实训管理示范
单片机应用实训室是实训教学及科学研究的场所,是进行教学、科研的重要基地,是办好高职院校的基本条件之一。实训室工作是教学、科研工作的重要组成部分。实训室必须贯彻党的教育方针,为培养德、智、体全面发展的人才作贡献。实训室要不断进行改革,求实创新,保证设备的完好率,为提高实训教学的水平提供切实保障。在保证完成实训教学、科研任务前提下,积极开展社会服务,技术开发,学术交流活动,为经济建设与社会发展服务。我们必须完善实训室的各项规章制度,加强实训室队伍的建设,不断从思想教育、业务考核、技术培训等方面,对实训室工作人员进行培养:培养职业道德,树立全心全意为教学、科研服务的思想,刻苦钻研业务,努力提高实训室工作人员的思想水平和业务水平。完善授课计划、教案、实践性教学记录本、实习日记、实训室使用记录本、实训仪器设备使用记录本等的管理工作,建立完善的实训室管理制度与安全规章。
3.3 技能竞赛训练
单片机原理与应用是三年制高职电气自动化、电子信息技术专业学生的核心课程,单片机系统设计与应用能力是该专业学生的核心能力,为了提高学生的学习积极性,我院大幅度提高学生单片机系统设计与应用能力,培养学生的创新能力和团队精神,开展多种形式的技能竞赛,加强对学生单片机硬件操作技能和软件设计能力的培养。我院组织学生参加了“天华杯全国单片机专业人才设计与技能大赛”,加强了对学生的日常训练,形成了良好的竞赛氛围,并开展了省级大学生实践创新训练项目的训练。
4. 结语
单片机应用实训室建设是单片机课程建设的实际需要,是电气自动化技术专业发展的需要。高等职业技术教育培养的是生产、管理、建设、服务第一线需要的高级技术应用型人才,实践教学是培养学生的专业技能、实践能力和职业素质的根本途径。专业实训室的建设在发展高职教育中起着重要作用。
参考文献
[1]姚丽梅, 王玉生.实训基地建设的思考与实践[J].中国职业技术教育, 2006.
[2]吴兴伟.高职院校校外实训基地现状的调查与分析[J].辽宁教育研究, 2005.
摘 要:本文介绍了自主研发的单片机教学成果“单片机嵌入式教学实训平台”在项目教学法中的应用。它把单片机丰富多彩的小型产品作为项目与理论教学、技能实训、课程设计和毕业设计有机的融合在一起,将具体项目涉及的各个知识点融于学生的项目实践过程中,使教学内容更直观、易懂、易掌握。
关键词:单片机 教学实训平台 项目教学法
在单片机基础及应用课程教学中,学生普遍反映内容太抽象、概念多、指令不易记、编写程序难以下手,教师的课堂教学效果也不理想。我们从单片机课程特点出发,开发了“单片机嵌入式教学实训平台”,采用项目教学法进行了应用,取得了良好的教学效果。
一、单片机嵌入式教学实训平台的组成
“单片机嵌入式教学实训平台”由MCS-51系列单片机数据采集、数据处理、数据显示、在线仿真器等多个项目组成,包括6个基本项目:①流水灯控制:通过STC89C52单片机P1口(通过继电器驱动)外接8只220V40W彩灯,使之产生多种亮灭的效果,来模拟霓虹灯的变化情况。②8位数码管数字钟:用加1、减1、设置时间三个按键,使用8位4英寸数码管,采用单片机中断、定时、动态扫描技术,实现一个可以调控时间的实时电子时钟,其显示格式为:时-分-秒 ××-××-××。③单片机电子琴:按下15个按键,分别可以发出C大调的声音,模拟电子琴。按下自动奏乐键,可以播放预先按一定规律编制好程序的乐曲(通过功放驱动扬声器)。④模拟倒计时交通灯:模拟十字路口的交通灯,实现东西与南北两个方向轮流点亮红、绿、黄信号灯,每次持续时间30秒。当绿灯倒计时到6秒时,进行3秒的闪烁,然后再有3秒的黄灯过渡,接着转换为30秒红灯倒计时。用两位4英寸数码管显示倒计时时间。⑤16×16点阵(每个点阵由5mm的发光二极管组成)图形汉字显示:每次显示一个汉字,逐个滚动左移显示“江苏省常州技师学院单片机嵌入式教学实训平台在项目教学法中的应用”。⑥液晶显示(1602 LCD字符显示、12864 LCD图文汉字显示)。3个综合项目:①实时温度湿度测量显示。②超声波测距。③语音控制家电(电灯、电风扇、音乐播放)。
所有基本项目和综合项目都可以通过在线仿真器与PC机的RS232串行口相连,进行在线仿真。
二、单片机嵌入式教学实训平台在项目教学法中的应用
我们将“单片机嵌入式教学实训平台”在单片机基础及其应用课程中,采用项目教学法进行了应用。
当教师在教学中讲解单片机硬件知识和指令时,可以通过演示“单片机嵌入式教学实训平台”上的某些项目,把抽象变成直观,把枯燥变得有趣,将抽象理论和实物演示相互穿插,这种“寓理论于演示中”的教学方法,提高了学生的学习兴趣。例如在讲授单片机并行I/O接口时,就以STC89C51单片机P1口组成的“流水灯控制”项目为实例,向学生详细分析该系统的软、硬件工作原理,分别用“传送指令”“位操作指令”“移位指令”“查表指令”等不同的指令完成流水灯控制。学生们在观看了教师的演示和听讲了有关知识的讲解后,可以利用PC机中的Keil-uVision2仿真软件通过RS-232串行口连接到“单片机嵌入式教学实训平台”上的在线仿真器,现场进行编程,实时仿真程序的运行结果,接受全班同学的评价。学生还可以根据教学计划,模拟“单片机嵌入式教学实训平台”上的某些基本项目或综合项目,用万能板制作项目实物,实现“教、学、做”合一。当看到自己亲手设计、焊接、编程、调试好的项目作品时,学生们充满了内心的喜悦,获得了极大的成就感,更加激发了学好单片机的积极性。
“单片机嵌入式教学实训平台”上的多样化项目(即6个基础项目和3个综合项目)可供不同阶段学习单片机的学生使用。对于学习单片机初、中级阶段的学生,可以选择基本项目,配合在线仿真器,通过编程、仿真和调试,完成单片机基础知识的学习;也可以仿照教学实训平台上的项目提供的原理图和参考程序,在万能板上制作实物,练习电路的设计、安装、焊接、调试和编程。对于课程设计(或毕业设计)阶段的学生,可以在教师指导下,以“单片机嵌入式教学实训平台”上的综合项目为参考,将基础项目进行组合,进行小型单片机电子产品软硬件设计和制作,为将来从事单片机产品设计、开发、检测和维护等工作奠定坚实的基础。
参考文献:
[1]蔡朝洋.单片机控制实习与专题制作[M].北京:北京航空航天大学出版社,2006.
[2]张毅刚,彭喜源,谭晓昀等.MSC-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2009.
[3]吴言.项目教学法[J].职业技术教育,2003(7).
(作者单位:吕宁,江苏省常州技师学院;
学 号:
班 级:
XX级电子信息工程专业本科班 学 院:
计算机电子信息工程学院 时 间:
2010年X月X日——X月X日 指导教师:
目录 一.前言 2 二.单片机及各模块简介 2 1.总体设计方案 2 2.硬件模块简介 3 2.1 S51单片机主控制模块 3 2.2 键盘模块 4 2.3 DS1302时钟模块 4 2.4 串口通信模块 5 2.5 LED数码管显示和流水灯模块 5 2.6下载线模块 6 2.7 蜂鸣器模块 6 2.8 其他模块 7 三.开发板(串口通信模块)设计原理介绍 7 1.实验项目要求 7 1.1元器件功能介绍 7 1.2串口通信原理 8 2.原理图的绘制 10 2.1串口通信模块仿真电路设计 10 3.程序的编写 11 3.1 keil操作过程 11 3.2程序框图 12 3.3USB模块电路原理图的绘制 12 四.印刷板的焊接及流程 14 焊接流程 14 五.调试及遭遇的问题解决方法 14 1.调试 14 1.1程序下载 14 1.2开发板调试 15 2.问题解决 15 六.总结体会 15 附录: 串口通信C语言源程序 16 一.前言近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本次实训的主要目的就是为了学习单片机的基本理论知识,进而进行单片机的开发、实践和扩展,以更好的运用到实际的软硬件开发中去。此次单片机的实训目的如下:
(1)掌握单片机的相关理论知识。
学习单片机相关寄存器的配置,单片机内部结构及特点,存储器组织及外部接口,中断及串口功能,功能寄存器的相关配置,确定软硬件设计总体方案;
(2)掌握硬件设计和软件设计的基本知识,学会使用基本的设计软件,依据总体的设计方案对单片机进行软硬件开发。
在Protel中对单片机的各个功能模块进行外部电路的设计,在实现各个模块的功能的前提下充分合理利用单片机的内部资源和外围接口,以求最大限度的发挥单片机的功能。
学会使用Keil C进行编辑、编译及仿真调试,实现对单片机进行C语言开发。
以Proteus为平台,对单片机外围各个功能模块进行软件仿真验证功能。
(3)开发板板上资源的硬件实现及下载器的制作。
对软硬件设计仿真验证功能无误后,将Protel绘制的PCB进行加工、焊接元器件,制作出S51开发板及下载器。
二.单片机及各模块简介 1.总体设计方案 本开发板共分为十个模块,分别是:S51单片机主控制器模块、键盘模块、DS1302时钟模块、数码管模块、LCDCPS364BR模块、ARK点阵模块、下载器模块、流水灯模块、蜂鸣器模块、电源模块。其中以S51单片机作为核心控制器;
键盘模块用来向单片机输入特定编码的信息;
DS1302时钟模块用来实现实时时钟;
数码管模块用来显示简单的数字、字母;
LCD模块用来显示字母、数字、符号;
点阵模块用来显示图像、符号、汉字;
下载器模块用来实现S51单片机的ISP在线编程;
流水灯模块用来显示单片机I/O口电平的变化;
蜂鸣器模块用来发出声音。总体硬件电路如下图1所示:
图1 总体硬件电路 2.硬件模块简介 2.1 S51单片机主控制模块 S51单片机最小系统包括:MCU、复位电路、晶振电路。S51系列单片机内部具有128字节RAM、5个中断源、32条I/O口线、2个16位定时器、4KB的程序存储器、一个全双工异步串行口,具有ISP在线编程功能,该单片机不需要烧写器,可在开发板上ISP在线编程,S51单片机除兼容C51单片机外,还具有工作频率0至33MHz的高工作频率。
原理图如图2所示:
图2 主控制模块 2.2 键盘模块 按键模块,通过外部中断INT1实现按键功能,并通过软件编程识别按键K0---K3四个按键,进而实现相关功能,例如数码管显示字符数字的加减,LED灯速度的变换等。原理图如图3所示:
2.3 DS1302时钟模块 DS1302 的引脚如图4所示:
图3 按键模块 图4 DS1302引脚图 Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2高于Vcc1 + 0.2V时,Vcc2给DS1302供电。当Vcc2低于Vcc1时,DS1302由Vcc1 供电。X1、X2为振荡源,外接32.768 kHz晶振。I/O为串行数据输入/输出端(双向),SCL K为时钟输入端。RST是复位片选线,通过把RST输入驱动置为高电平来启动所有的数据传送。RST输入有两种功能:RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/ O引脚变为高阻态。上电运行时,在Vcc高于2.5V之前,RST必须保持低电平。只有在SCL K为低电平时,才能将RST置为高电平。DS1302时钟模块的原理图如图5所示:
图5 DS1302时钟原理图 单片机与DS1302通过P1.1、P1.2、P1.3相连,分别为时钟信号线、输入输出线、复位信号线。DS1302的晶振引脚连接32768HZ的晶振。
2.4 串口通信模块 串口通信模块的原理图如图6所示:
图6 串口通信模块的原理图 单片机与MAX232通过P3.0、P3.1相连,分别为发送线、接收线,另外单片机要与MAX232共地。
2.5 LED数码管显示和流水灯模块 LED显示器有静态显示和动态显示两种显示方式。
LED静态显示方式:LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);
每位的段选线(a~dp)分别与一个8位的锁存器输出相连。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。
LED动态显示方式:在多位LED显示时,将所有位的段选线相应的并联在一起,有一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,段选线上输出相应位要显示字节的段码。
流水灯模块包含8个LED灯,单片机的P0口接10K上拉电阻,八个LED的负极依次连接单片机P0口的8个引脚,八个LED的正极依次与510欧姆的排阻的八个端子相连。
LED数码管和流水灯模块原理图如图7:
图8 LCD数码管和流水灯模块 2.6下载线模块 下载器模块实现将USB信号转换为能通过SPI协议传输的信号,从而实现对单片机的编程。下载模块原理图如图9所示:
图9 下载线接口模块 图10 蜂鸣器模块 2.7 蜂鸣器模块 单片机的P1.4与Q1的基极通过1K欧姆电阻连接,当P1.4为高电平时,Q1导通,Q1的发射极与集电极导通,将发射极下拉为低电平,蜂鸣器两端出现电位差,蜂鸣器发声;
当P1.4为低电平时,Q1不导通,蜂鸣器两端没有电流流过,蜂鸣器不发声。
2.8 其他模块 I2C EEPROM模块用于程序或数据存储器的扩展功能,片外可最大扩展到64KB,地址为0000~FFFFH。此存储芯片支持电科擦除,即可写。
电源模块通过整流电桥实现交直流的转换功能,直接供单片机使用。
原理图如图11图12所示:
图11 电源模块 图12 I2C EEPROM模块 三.开发板(串口通信模块)设计原理介绍 1.实验项目要求 实验任务是通过串口通信实现单片机数据的自发自收以及双机通信功能,并且通过数码管循环显示0~F来表现其实现过程。
1.1元器件功能介绍 AT89S51: At89s51 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得AT89S51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S51具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2个数据指针,三16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外AT89S51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器 8K 字节在系统可编程 Flash AT89S51。
RS232:RS232是由电子工业协会(Electronic Industries Association,EIA)所制定的异步传输标准接口。对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS232与TTL电路之间需要进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。MAX232芯片可完成TTL←→RS232双向电平转换。
MAX232:MAX232芯片是RS232标准接口芯片,使用+5v单电源供电。是PC机与单片机串口进行通讯的电平转换芯片。内部结构基本可分三个部分:
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS232数据从T1OUT、T2OUT送到电脑DP9插头;
DP9插头的RS232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚DNG、16脚VCC(+5V)。
图13 RS232芯片引脚图 图14 MAX232芯片引脚图 1.2串口通信原理 S-51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。
S-51单片机串行口专用寄存器。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。S-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。串行通信寄存器SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制。
数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双工和工方式。串行通信的两种通信形式,包括异步通信和同步通信。SCON控制寄存器是一个可寻址的专用寄存器,用于串行数据通信的控制,其结构格式如下:
表1 寄存器SCON结构 SCON D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 8DH 9CH 9BH 9AH 99H 98H 下面我们对个控制位功能介绍如下:
(1)SM0、SM1:串行口工作方式控制位(2)SM2:多机通信控制位 多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。
REN:允许接收控制位。由软件置“1”时,允许接收;
软件置“0”时,不许接收。
TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。
TB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。
TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。必须由软件清“0”。
RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1” B:特殊功能寄存器PCON PCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器 2.原理图的绘制 2.1串口通信模块仿真电路设计(1)打开ISIS7professional窗口,执行菜单命令File new design,新建一个DEFAULT命名为“单片机串口通信自发自收.DSN”。
(2)在器件选择按钮单击“P”按钮,添加如表所示的原件:
单片机 AT89S51 电容CAP-ELEC CAP-POL MAX232 COMPIM 按钮 BUTTON 数码管 7SEG-MPX4-CA 74LS244 排阻 RX8 三极管 NPN 晶振 CRYSTAL(3)在ISIS原理图编辑窗口中,放置电源和地。布好线,设置好相应原件的参数。完成电骡图的设计。
(4)调试与仿真:加载生成的.HEX文件,进行调试,观察是否符合预期效果。
仿真效果图如图15所示:
图15 仿真效果图 3.程序的编写 3.1 keil操作过程 1).打开桌面上的keil软件:,下面新建一个工程,选择project->new新建一个名字叫“单片机串口通信”的工程,保存在事先创建的文件夹下,点击保存按钮。出现选择器件型号对话框:选择实验板上的所用芯片的型号atmel->at89s51 点击确定就建立完毕工程了。
2).添加代码文件到工程中,首先新建一个后缀为.C的源文件,点击开发环境中的file->new,新建c文件,然后点击保存按钮,注意一定要保存为后缀为.C的格式,在开发环境中左边栏找到在source group1上右击选中,弹出添加文件对话框,如图:把单片机串口通信.c选中,点击ADD添加源文件到工程中。
3).点击按钮,编译你的代码,如果下面有错误提示,修改好后再次编译直到顺利通过编译为止。如图16所示:
图16 keil编译图 4).在target1上右击选择,出现如下对话框:.选择output栏,将一栏打上勾,这样编译通过之后就可以生成可以执行的下载文件(可执行文件后缀为hex),再次点击编译,生成可执行的代码串口通信.hex。
3.2程序框图 单片机通过MAX232与单片机通讯程序流程图17所示:
图17 单片机通过MAX232与PC机或单片机通讯程序流程图 单片机通过P3.0.和P3.1发送数据到单片机,单片机接收到数据后发送给单片机,并通过LED数码管显示出。
3.3USB模块电路原理图的绘制 (1)在D盘建立名为Protel的文件夹,在Protel的文件夹中建立名为USB.ddb设计数据库文件,新建原理图文件,命名为USB.sch。
(2)根据提供的usb原理图,自己画出原理图。电路中所有的元器件都可在Miscellaneous Devices.ddb、Protel DOS Schematic Libraries.ddb这两个元器件数据库中找。
(3)画完电路后,要按照图中元件参数逐个设置元件属性,元件要自动编号,并进行电气规则检查。设置某个元器件的属性的方法是双击该元器件出现对话框设置即可。原理图如图18所示:
图18 usb原理图(4)最后形成该电路的网络表,为设计电路板做准备。
(5)根据仿真好的电路图,画出印刷电路板图。新建PCB文件,设置PCB设计环境和绘制印刷电路的版框。
(6)、打开所有要用到的PCB 库文件后,调入网络表文件和修改零件封装。布置零件封装的位置,进行自动布局。
(7)对所有过孔和焊盘补泪滴,放置覆铜区。
敷铜后的效果如图18所示:
图18 PCB原理图 四.印刷板的焊接及流程 焊接流程 1、焊前准备 首先要熟悉所焊印制电路板的装配图,并按图纸配料,检查元器件型号、规格及数量是否符合图纸要求,并做好装配前元器件引线成型等准备工作。
2、焊接顺序 元器件装焊顺序依次为:电阻器、电容器、二极管、三极管、集成电路、大功率管,其它元器件为先小后大。
3、对元器件焊接要求 1)电阻器焊接 按图将电阻器准确装人规定位置。尽量使电阻器的高低一致。焊完后将露在印制电路板表面多余引脚齐根剪去。
2)电容器焊接 将电容器按图装人规定位置,并注意有极性电容器其 “ + ” 与 “ - ” 极不能接错。
3)二极管的焊接 二极管焊接要注意阳极阴极的极性,不能装错;
发光二极管要与印刷版保持0.5cm距离。
4)三极管焊接 注意 e、b、c 三引线位置插接正确;
焊接时间尽可能短,焊接时用镊子夹住引线脚,以利散热。
5)集成电路焊接 首先按图纸要求,检查型号、引脚位置是否符合要求。焊接时先焊边沿的二只引脚,以使其定位,然后再从左到右自上而下逐个焊接。
6)usb接口和电源接口 找到正确位置,注意将其与印刷版焊接牢固,不松动。
五.调试及遭遇的问题解决方法 1.调试 1.1程序下载:开发板和PC机通过下载器连接,使用+5V电源给开发板供电。在PC机上安装ISP在线下载器驱动,打开烧写器软件,选择烧写单片机类型,加载FLASH,点击编程,即可把程序烧录到单片机中。
使用USB isp下载:请安装并打开progisp167\软件,编程器及接口选择USBasp,usb默认,选择器件类型AT89S52,点击调入FLASH按钮,找到你刚才生成的LED.hex文件 将usb下载线一头连接电脑U口,另外一头连接实验板左上方的ISP下载口,(注意方向),点击自动,可以看到,编程成功,1.2开发板调试:
(1)键盘模块实验效果:烧写.HEX文件到单片机,将JP7插上短路帽,按下键盘上的某一个键,LCD1602上显示该键对应的键值;
(2)DS1302时钟模块实验效果:烧写.HEX文件到单片机,插上LCD1602,液晶上显示秒、分、时;
(3)数码管模块实验效果:烧写LED动态显示.HEX文件到单片机,将J3上端插上短路帽,数码管显示从0开始计数 ;
(4)流水灯模块实验效果:烧写流水灯.HEX文件到单片机,流水灯显示几种不同的花型;
(5)蜂鸣器模块实验效果:烧写.HEX文件到单片机,蜂鸣器以一定的声音频率鸣叫。
2.问题解决(1)印刷版焊完之后,无法烧入程序,总是出错。
经过分析后判断可能是单片机有的接口焊点虚焊所致,回去后,用电烙铁把单片机的管口查询焊接了一遍。问题就解决了,能够烧入程序了。
(2)数码管显示的是乱码,并非完整数字。
分析应该是数码管编码与实际所用的编码或引脚不相同。对程序中的数码管显示代码重新编译之后就通过了。
六.总结体会 在老师的指导下,自己找资料、看书,完成了老师布置的任务。通过这次的实训设计,使我对单片机以及智能仪器的结构和功能都有了更深的认识,从理论和实践上都得到了很大的提高,这次的实训真的给我很大的提高。总结经验来说,首先,我丰富了自己的知识面,将以前没能学通的东西深入透彻的学会学懂,具体了解了怎样去完成一个电路的设计:从流程图、电路图、焊接电路板、检查电路板、仿真到烧片一整套东西。没有浪费宝贵的时间,学习到了难得的经验。
自己找资料,了解单片机89S51、数码显示管的有关知识,学习时钟电路、控制电路的设计原理,看不懂的时候就去问老师、同学。和同学们一起探讨不懂得难点之时我仿佛感觉到了真正的大学应该有的学习氛围。在这些都搞得比较明白后就开始画设计流程图和电路图,最后用了很长时间才画出自己的电路图,同学老师都帮我检查,改正了几处有问题的地方。电路的焊接比较难。要细心稳重,应为这是一件很要求技术的工作。但是我克服困难终于完成了但接下来的检测可就费了不少劲,发现并解决了很多问题。在解决完所有问题后,自己又一种成功感,还在想,要是没有这些错误,就不会学会这么多检测电路的方法,而且对自己所做的电路有了进一步的了解。做到这一步满以为不会再有什么错误了,但是仿真的时候却又遇到了马麻烦,先是数码管不亮,在后来就是全亮,按键后没反应,刚有的一点成功感马上就没了,又一次陷入了反复的检测。检测发现了不少问题,解决后仿真成功。在后来就开始烧片,烧片的过程还算顺利。烧好后插上电路板,显示成功了。接下来的工作一切还算顺利,在老师还有同学的帮助下,都一一完成。
这次的实训设计总的来说还是很成功的,自己从中学到很多,也发现了不少问题,为自己以后的学习、进步打下了不错的基础。从实训设计中,学到了单片机AT89C51的内部结构及其工作原理,了解了串口通信的工作原理,还有共阳极数码管的工作原理,巩固了C语言的使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题的能力和创新能力,得到了理论联系实际的机会,做出了成果。使自己在硬件设计方面树立了信心,为以后从事这方面的工作打好了基础,这也是这次实训设计的最大收获。
附录:
原理图
沧州职业技术学院单片机实训报告
双位数码管显示控制程序及说明
START: MOV R0,#0;清零
MOV DPTR,#TABLE;指定查表起始地址 LOOP: ACALL DISPLAY;调用子程序DISPLAY INC R0;R0加1 CJNE R0,#100,LOOP JMP START DISPLAY: MOV A,R0
MOV B,#10 DIV AB
MOV 20H,A MOV 21H,B MOV R3,#50;LOOP1: MOV A,21H
ACALL CHANG CLR P2.4;ACALL DLY SETB P2.4 MOV A,20H ACALL CHANG CLR P2.5;ACALL DLY SETB p2.5 DJNZ R3,LOOP1 RET CHANG: MOVC A,@A+DPTR MOV P0,A;RET;R0未到100则转换;跳转
;把R0里的数据送入A;把10送入B;a b相除;十位送入20H;个位送入21H 把50送入R3;取个位数
;调用子程序CHANG 开个位显示;调用子程序DLY;关闭个位显示;取十位数
;调用子程序CHANG 开十位显示;调用子程序DLY;关闭十位显示;循环50次;子程序返回;查表 查表结果送入P0;子程序返回 沧州职业技术学院单片机实训报告
DLY: MOV R6,#20;典型延时子程序延时
D1: MOV R7,#248;10ms DJNZ R7,$ DJNZ R6,D1 RET TABLE: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90H END
;表数据共阳极数码管显示代码
沧州职业技术学院单片机实训报告
心得体会
为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。
随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。
不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。
说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
沧州职业技术学院单片机实训报告
在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然最后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。
总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。
参考文献
[1]李广弟等
单片机基础[M] 北京航空航天出版社,2001.[2]王东峰等
单片机C语言应用100例[M] 电子工业出版社,2009.[3]陈海宴
51单片机原理及应用[M] 北京航空航天大学出版社,2010.[4]刘守义等
单片机技术基础[M] 西安电子科技大学出版社,2007.[5]钟富昭等
8051单片机典型模块设计与应用[M] 人民邮电出版社,2007.[6]李平等
单片机入门与开发[M] 机械工业出版社,2008.[7]李全利
迟荣强编著 单片机原理及接口技术 高等教育出版社,2004 [8] 楼然苗等
51系列单片机设计实例 北京航空航天出版社,2003 [9]唐俊翟等
单片机原理及应用
冶金工业出版社,2003 5
沧州职业技术学院单片机实训报告
[10]刘瑞新等
单片机原理及应用教程
一、实训目的
1、掌握并理解单片机最小系统的原理及制作, 牢记最小系统中各元器件 的参数及各元器的作用./
2、掌握单片机芯片内部的组成及存储机构。
3、理解常用指令的功能和使用方法。
4、掌握单片机的中断源,中断控制寄存器,中断响应过程,定时/计数器的电路结构、功能我使用方法,定时器/计数控制寄存器.5、复习利用Keil51软件对程序进行编译。
6、用protel软件绘制“单片机最小系统”电路,并用测试程序进行仿真。
7、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果能做出不分析我解释,能学出符合规格的实验报告。
二、实训工具
1、点偏激测试平台:PC机,串口线,并口线,单片机开发板
2、软件:keil51测试软件,protel仿真软件,DXP2004软件。
三、实训要求
通过实训,学生应达到以下经济方面的要求:
素质要求
1、以积极认真的态度对待本次实训,遵章守纪、团结协作。
2、善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立工作能力。
能力要求
1、模拟电路的理论知识
2、脉冲与数字电路的理念知识
3、通过模拟、数字电路实验有一定的动手能力
4、能熟练的制作单片机最小系统
5、嫩熟练的编写8951单片机汇编程序
6、能够熟练的运用仿真软件对单片机最小系统仿真
四、实训内容
1、掌握并理解“单片机最小系统”的原理及制作,牢记最小系统中各元器件的参数及格元器件的作用。
2、用keil51测试元件编写8951单片机汇编程序
3、用peotel软件绘制“单片机最小系统”单路原理图。
4、运用仿真软件对单片机最小系统进行仿真。五.实训基本步骤
1、用peotel乳酸钠几十年绘制“单片机最小系统”单路原理图。
2、根据原理图生成pcb图、GB文件。钻孔文件
3、绘制印刷电路板。
4、根据原理图焊接元件,生成单片机开发板。
5、用keil51软件编写单片机最小系统测试程序。
6、用仿真软件绘制单片机最小系统原理图,测试测量程序。
7、把测试程序拷贝到单片机里进行实物测试。
8、观察测试结果。
六、51单片机C编语言程序测试 测试程序流水灯1: //用定时器做流水灯测试 //为定时显示做准备
//P1-0-----PF1.3
L0-----L3 #include
#define unit unsigned int #define unchar unsigned char
sbit L0 = P1^0;sbit L1 = P1^1;sbit L2 = P1^2;sbit L3 = P1^3;
unsigned char data BUFFER[1]={0};
void main(void){ P2=0X0F;
EA=1;IT0=1;ET0=1;TMOD=0X01;TH0=-5000/256;TL0=-5000%256;TR0=1;
while(1){
};} //定时器0中断服务程序// void timer0(void)interrupt 1 using 1 { TH0=-5000/256;TL0=-5000%256;BUFFER[0]=BUFFER[0]+1;if(BUFFER[0]==100)
{
L3=!L3;
L2=!L2;
L1=!L1;
L0=!L0;
} } 测试程序流水灯2:
//此程序为了做花样流水灯的
//采用了C的宏定义 X 可以实现一改全改 #include
#define X 16 //
unsigned int time=0;
unsigned int a[X]={
0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,0X18,0X24,0X42,0X81,0X42,0X24,0X18,0X00,void main(void){ P1=0X0f;EA=1;IT0=1;ET0=1;TMOD=0X01;TH0=9000/256;TL0=9000%256;TR0=1;
while(1){
P1=a[time];};} //定时器0中断服务程序// void timer0(void)interrupt 1 using 1 { TH0=9000/256;TL0=9000%256;
time++;if(time==X)time=0;
} //此程序来测试数码管
//P0.0--P0.7
A B C D E F G dp //P2.0--P2.7
C0M0--------C0M8 #include
#define unit unsigned int #define unchar unsigned char
unsigned char data BUFFER[1]={0};unsigned char X=0;//共阳极码表数码管
unsigned char leddata[]={
0xC0, //“0”
0xF9, //“1”
0xA4, //“2”
};
0xB0, //“3”
0x99, //“4”
0x92, //“5”
0x82, //“6”
0xF8, //“7”
0x80, //“8”
0x90, //“9”
0x88, //“A”
0x83, //“B”
0xC6, //“C”
0xA1, //“D”
0x86, //“E”
0x8E, //“F”
0x89, //“H”
0xC7, //“L”
0xC8, //“n”
0xC1, //“u”
0x8C, //“P”
0xA3, //“o”
0xBF, //“-”
0xFF, //熄灭
0xFF //自定义
};
unsigned char com[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};void Delay(unsigned char cnt){ while(cnt--);} void xian_shi(unsigned char cp){ unsigned char i;unsigned int z=cp;for(i=0;i<8;i++)
{
P0=leddata[z%10];
P2=com[i];
Delay(200);
z=z/10;
} } void main(void){
P0=0X00;P2=0Xff;EX0=1;IT0=1;EA=1;
while(1){
xian_shi(X);};} //定时器0中断服务程序// void timer0(void)interrupt 1 using 1 { X++;if(X==25){
X=0;} } 此程序测试键盘
//P3.0---P3.3
L0-------L3 //从左到有显示为 0 1 2 3
P3.4/ //上///
5 6 7
P3.5/ //到///
9 A B
P3.6/ //下///
C D E F
P3.7/ //P3.4--=P3.7
H0----H3 #include
#define uchar unsigned char #define uint unsigned int
unsigned char led_data[]={
0xC0, //“0”
0xF9, //“1”
0xA4, //“2”
0xB0, //“3”
0x99, //“4”
0x92, //“5”
0x82, //“6”
0xF8, //“7”
0x80, //“8”
0x90, //“9”
0x88, //“A”
0x83, //“B”
0xC6, //“C”
0xA1, //“D”
0x86, //“E”
0x8E, //“F”
0x89, //“H”
0xC7, //“L”
0xC8, //“n”
0xC1, //“u”
0x8C, //“P”
0xA3, //“o”
0xBF, //“-”
0xFF, //熄灭
0xFF //自定义
};
void delay(uint i)
{ while(i--);}
uchar keyscan(void)// { uchar cord_h,cord_l;//行列值中间变量
P3=0x0f;
//行线输出全为0 cord_h=P3&0x0f;
//读入列线值
if(cord_h!=0x0f)
//先检测有无按键按下
{
delay(100);
//去抖
if(cord_h!=0x0f)
{
cord_h=P3&0x0f;//读入列线值
P3=cord_h|0xf0;//输出当前列线值
cord_l=P3&0xf0;//读入行线值
return(cord_h+cord_l);//键盘最后组合码值
}
}
return 0xFF;}
void main()
{ uchar key;P2=0xbb;
//1数码管亮 按相应的按键,会显示按键上的字符
while(1){ key=keyscan();//调用键盘扫描,switch(key){
case 0xEE:P0=led_data[0];break;//0 按下相应的键显示相对应的码值
case 0xED:P0=led_data[1];break;//1
case 0xEB:P0=led_data[2];break;//2
case 0xE7:P0=led_data[3];break;//3
case 0xDE:P0=led_data[4];break;//4
case 0xDD:P0=led_data[5];break;//5
case 0xDB:P0=led_data[6];break;//6
case 0xD7:P0=led_data[7];break;//7
case 0xBE:P0=led_data[8];break;//8
case 0xBD:P0=led_data[9];break;//9
case 0xBB:P0=led_data[10];break;//a
case 0xB7:P0=led_data[11];break;//b
case 0x7E:P0=led_data[12];break;//c
case 0x7D:P0=led_data[13];break;//d
case 0x7B:P0=led_data[14];break;//e
case 0x77:P0=led_data[15];break;//f } } } //此程序用来测试中断键盘P3.2 INT0 //下跳沿触发 // #include
#define unit unsigned int #define unchar unsigned char
sbit L0=P1^0;sbit L1=P1^1;sbit L2=P1^2;sbit L3=P1^3;
unsigned int times=0;
void delay(unsigned int cp)
{
unsigned int i=cp;
while(i--);
}
unsigned char leddata[]={
0xC0, //“0”
0xF9, //“1”
0xA4, //“2”
0xB0, //“3”
0x99, //“4”
0x92, //“5”
0x82, //“6”
0xF8, //“7”
0x80, //“8”
0x90, //“9”
0x88, //“A”
0x83, //“B”
0xC6, //“C”
0xA1, //“D”
0x86, //“E”
0x8E, //“F”
0x89, //“H”
0xC7, //“L”
0xC8, //“n”
0xC1, //“u”
0x8C, //“P”
0xA3, //“o”
0xBF, //“-”
0xFF, //熄灭
0xFF //自定义
};
unsigned char com[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};
void xian_shi(unsigned char cp){
unsigned char i;unsigned int z=cp;for(i=0;i<8;i++)
{
P0=leddata[z%10];
P2=com[i];
delay(200);
z=z/10;
} }
void main(void){ P1=0Xdd;EX0=1;IT0=1;EA=1;
while(1){
xian_shi(times);};}
//INT0低电平中断服务程序// void intersvr0(void)interrupt 0 using 1 {
L0=!L0;
L1=!L1;
L2=!L2;
L3=!L3;
times ++;}
//最简单的24小时显示 #include
#define unit unsigned int #define unchar unsigned char
unsigned char data BUFFER[1]={0};unsigned char time[3]={0};
unsigned char leddata[]={
0xC0, //“0”
0xF9, //“1”
0xA4, //“2”
0xB0, //“3”
0x99, //“4”
0x92, //“5”
0x82, //“6”
0xF8, //“7”
0x80, //“8”
0x90, //“9”
0x88, //“A”
0x83, //“B”
0xC6, //“C”
0xA1, //“D”
0x86, //“E”
0x8E, //“F”
0x89, //“H”
0xC7, //“L”
0xC8, //“n”
0xC1, //“u”
0x8C, //“P”
0xA3, //“o”
0xBF, //“-”
0xFF, //熄灭
0xFF //自定义
};
unsigned char com[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,};void Delay(unsigned char cnt){ while(cnt--);} void xian_shi(void){ unsigned char i;unsigned int SS=time[0]+100*time[1]+10000*time[2];for(i=0;i<6;i++)
{
P0=leddata[SS%10];
P2=com[i];
Delay(200);
SS=SS/10;
} } void main(void){ P0=0X00;P2=0Xff;EA=1;IT0=1;ET0=1;TMOD=0X01;TH0=0xec;TL0=0x78;
TR0=1;
while(1){
xian_shi();};} //定时器0中断服务程序// void timer0(void)interrupt 1 using 1 { TH0=0xec;TL0=0x78;
BUFFER[0]=BUFFER[0]+1;if(BUFFER[0]==100){
time[0]++;
BUFFER[0]=0;
if(time[0]==60)
{
time[0]=0;
time[1]++;
if(time[1]==60)
{
time[1]=0;
if(time[1]==60)
{
time[1]=0;
time[2]++;
if(time[2]==24)
}
}
}
time[2]=0;
} }
七、实训心得
高职高专教育培养的是技术应用型人才,学校为了陪养我们的创新精神和工程实践能力,提高我们的综合素质,我们进行实训,在实践中相互学习和进步。通过实践我们更清楚的认识了我们所学习专业在实践中的运用。也感觉到理论和实践的差距。
八、附件
关键词:项目超市,单片机,实训平台,移动实验室
1单片机难学难教的困境
单片机是当前应用最广泛的技术。但是,单片机的教学面临重重困难 :1单片机涉及的知识面广,从进制到模电、数电、 传感器再到程序设计,学习起来困难重重。2内容抽象,从内部结构、寻址方式到TMOD、TCON、PSW、TH、TL、IE…… 难以理解。3实践性强,没有经过充足的训练根本无法掌握。4全国教学改革大潮之下,单片机的课时从68节普遍缩减为48节甚至更少,令人颇感巧妇难为无米之炊。在举步维艰的困境中,学生难以真正掌握该技术,难以满足用人单位的需求。
2项目超市和网络实训平台的解决思路
针对该难题,提出设计基于项目超市的网络实训平台的解决方案。该平台中提供覆盖知识点较广、数量较多、种类齐全的单片机项目案例,构建成一个较为完善的项目超市,能够让用户随时随地的训练和学习。 同时,该平台还提供了相关辅助模块。
网络平台具有诸多优点 :1在课时有限的情况下,网络平台能够很好的打破时间和空间的限制,意义非凡。当前,大学生基本上人手一台智能手机,通过校园WIFI访问网络平台轻而易举。2传统的教学模式下,学生实践锻炼机会非常有限 ;而在网络平台环境下,传统实验室变成了移动实验室,学生通过项目超市能够获得充足的训练。3通过提供的系统知识、演示动画等,帮助学生更好的理解。
3实训平台的设计
3.1版块设置
根据需求,实训平台共划分为如下几个个版版块块 : :
3.2平台框架技术
该实训平台采用ASP.NET+C#+Access +IIS+.net 2.0的框架实现。1 ASP.NET是主流的动态网页技术,相比ASP更为稳定可靠,相比JSP运行更快,安全性和性能比PHP略胜一筹。2采用微软的旗舰语言C# 开发,简单易用,设计速度快。3作为一个中小型系统,采用无需驱动、操纵简便的桌面型Access比大型数据库更为合适。4系统部署在Windows,使用IIS。5 .net 2.0通用性更好,对硬件要求不高,运行更快。
3.3虚拟实验技术
该平台的核心——实验项目是基于虚拟技术的。传统的实验方式主要有实验箱和最小系统板两种方式,它们均存在明显的缺陷 :实验箱存在价格昂贵、容易损坏、学生难以理解内部结构的通病,只能按部就班的接线、烧写程序,效果不佳 ;最小系统板需要购买大量的元器件,损耗较大,而且对学习周期太长,一个学期也完成不了几个实验。
为了解决传统实验方式的问题,该平台采用虚拟实验技术,也就是基于Keil编程和Proteus仿真。在虚拟虚拟实验环境中,通过全面覆盖单片机设计所需的数以万计的元器件和虚拟仪器,学生能够自由、灵活的设计单片机系统。而且,虚拟实验中的操作与实际设计开发的过程基本上是一样的。其中在编程方面,为了减低学习难度,以C语言为主。
3.4项目案例的设置
单片机涉及的知识很多,但是,其设计也是符合帕累托的80/20法则的,也就是掌握大约20% 的关键知识,基本上就能够对常规系统游刃有余。根据实际应用的需求,本实训平台的项目案例划分为三个层次 :1核心知识,包括IO控制、中断、定时计数。2接口知识,包括串口通信、常用数字芯片、AD、DA、键盘、LED、LCD、 电机等。3高级应用,包括常见传感器、红外、GPS、PWM、PCA、PID、新型芯片、 阅读厂家Data Sheet等。
为了让学生打好基础,项目超市重点打造核心知识模块。例如,对于入门级的流水灯,本平台就提供了多行语句依次赋值、数组、指针、本征函数移位、C51移位、 译码器、串口通信、串并转换、I2C、SPI等10种方法,基本上实现了一网打尽。因此,学生经过循序渐进的训练,就能够快速上手并掌握单片机的基本使用方法。例如,通过74HC138译码器实现的流水灯效果如图1所示。
3.5其他
该网络实训平台的首页包括其他版块的链接,以及单片机技术概述、平台简介、技术频道、友情链接等内容。如图2。
各个版块都是按照实用的原则设计的,例如串口通信的动画演示如图3。
4实践效果
钦州学院利用该实训平台,在电信、自动化、机械等专业开展教学以来,取得较好的效果。1学生动手实践的机会增加了,能够充分利用课余时间随时随地学习。2通过Flash动画,学生更容易理解那些抽象枯燥的内容,学习门槛降低了,兴趣浓厚了。 3学生水平提高了,能够应付更为复杂的设计。例如他们的毕业设计逐渐从传统的家电控制转向物联网、智能控制系统等。4学生在竞赛、课题等方面取得突破 :钦州学院在2013年取得电子竞赛国家级二等奖的突破,在2014年获得国家级大学生创新项目“基于移动终端与MSP430的智能充电系统的设计”,学生发表了倒立摆、智能多路可调遥控开关等多篇省级论文,在协助教师科研项目上也发挥了不少作用。 例例如如,,学学生生协协助助完完成成的的新新型型两两线线制制11660022模模块块如如图图44所所示示。。55学学生生素素质质提提高高了了,,受受到到了了用人单位的欢迎,就业率逐年提高,近年来稳定保持在93% 左右。
5结束语