单片机实验报告

2024-10-27

单片机实验报告(10篇)

1.单片机实验报告 篇一

实验

四、中断交通灯实验

林立强

1000850116

一、实验目的

1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。

2、掌握中断响应及处理的编程方法。

二、实验原理

MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。如表:

IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。

三、实验电路

电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS

四、实验内容

参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。

1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;

2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。

五、程序流程图

仿真图:

紧急情况:

源程序:

ORG 0000H

AJMP START

ORG 0023H //串口中断地址

AJMP SBR1

START:MOV TMOD,#00100000B

//定时器方式2

MOV TL1,#0FDH //9600bps/11.0592MHz

MOV TH1,#0FDH

SETB TR1

MOV SCON,#01100000B //方式1

MOV R0,#20H

MOV R1,#40H

ACALL SOUT

SJMP $

SBR1: JNB RI,SEND

ACALL SIN

SJMP NEXT SEND: ACALL SOUT NEXT: RETI

SOUT: MOV A,@R0

MOV C,P

CPL C

MOV ACC.7,C

INC R0

MOV SBUF,A

CLR TI

RET

SIN: MOV A,SBUF

MOV C,P

CPL C

ANL A,#7FH

MOV @R1,A

INC R1

CLR RI

RET

PLAY: MOV A,R7

MOV B,#10

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

// 0

A B C D E F

END

2.单片机实验报告 篇二

(一)模拟实验平台的建立

近年来,随着FLASH型单片机的广泛应用,采用软件模拟加写片验证成为一种经济实用的实验方法。要使学生能够真正掌握单片机技术,需要他们亲自动手焊制单片机实验板,亲自动手烧录程序,而且实验过程不能复杂,通过亲自做实验,把课堂上学习的概念性知识转换成视觉可以观察到的物理现象所发生的各种变化,提高学生的感性认识和激发他们学习的兴趣。下面是广西理工职业技术学校在教学中单片机模拟实验平台的建立:

1. 合理配置公共实验平台。

过去的单片机实验设备,主要以专用的单片机开发系统为主,投资较大而设备的利用率低(中职教学很多功能没用上),编写程序和修改程序很不方便,对初学单片机的学生来说很难掌握复杂的操作界面。由于以上种种原因,教学单位常配置为数不多的单片机开发系统,因此,学生上机实验受到了极大的限制,很难达到理论课与实验课“交替”的教学效果(实验课无法与理论课同步)。广西理工职业技术学校使用30台电脑局域网连接(和PLC实验共用),每台电脑配置一个TOP853编程器,采用MedWin仿真软件和TopWin烧写软件,不算电脑费用,每个工位330元就可以开展单片机实验!TOP853编程器体积小巧,采用USB通用串口与PC机连接通信,传输速率高, 抗干扰性能好,可靠性能极高,特别适合烧写各种电擦除器件。MedWin仿真软件和TopWin烧写软件,全中文界面,操作方法简单易学,学生很容易就掌握了单片机的编程→汇编→固化等等操作界面的使用,大大提高了单片机的实验教学效率。

2. 配置学生专用的单片机模拟实验板。

单片机实验板是单片机实验板是单片机教学中每个学生的必备学习工具,由学生自己购买散件组装一块带LED(发光二极管)的单片机实验板(参考价20元),如图1,人手一套,单片机实验板是一块由89C51单片机和32只LED组成的发光条(发光二极管)及两组三极管输出驱动电路组成(一组驱动0.25W扬声器,另一组驱动5V微型继电器),原理图如图2,让学生第一时间感受到单片机系统是怎么样的,如何进行工作的。其它实验板,如点阵实验板(参考价20元)、单片机控制强电实验板(参考价80元)等由实验室自行设计组装多套,供学生使用,总价格还不到一个单片机开发系统实验箱!这样,人人拥有实训设备,大大缓解中职扩招而造成的实验资源紧缺的压力,实训空间得到了无形的拓展。

(二)根据模拟实验平台,选择适合学生学习的知识点

单片机技术是一门比较难学的课程,它包括了数字电路技术、模拟电路技术、传感器技术、通讯技术、计算机硬件接口技术、计算机软件编程技术等等基础知识,众多的相关内容,对中专层次的学生是难以接受的。根据广西理工职业技术学校多年的单片机教学实践,中等职业学校的培养目标制订在初级目标较为合适,简述如下:掌握通用型MCS-51单片机的基本结构(主要是单片机的内部ROM和RAM及管脚功能和定义);掌握单片机的最小硬件设计系统(单片机最少需要连接几个外围元件才能正常工作);初步掌握单片机的程序设计(利用汇编指令系统进行模仿性编程、程序的烧录)。掌握了单片机以上三个方面的基础知识,学生基本上可以独立的承担单片机系统的维护。

(三)改革教学方法,合理安排授课内容

传统的单片机教学,均是以单片机的结构为主线,先讲单片机的硬件结构,然后是指令、编程、单片机系统的扩展和各种外围器件的应用,最后再讲一些实例,按照这种教学结构,中等职业学校的学生普遍感到难学,一个从未接触过计算机结构的人,甚至数字电路也是刚刚接触的人,要他去理解单片机内部结构,这实在是不容易。以8051系列单片机为例,它是一种大规模的集成电路芯片,具有111条汇编指令系统。许多单片机教科书都是按照内部结构→指令系统→设计实例进行逐步介绍,在讲解单片机内部硬件结构和指令系统的理论概念时,只能按照硬件等效框图、指令书写格式、使用文字说明方法表达它们的功能及作用,当8051单片机的111条汇编指令学完后,学生还是没有弄明白MOVP1,#00H和MOV P1,#0FFH怎么就能使接在单片机P1端口的8只LED点亮或熄灭,如果学习中出现的问题太多,而又没有得到及时解决,学生就会丧失学习单片机技术的信心,也就越学越没有兴趣。基于这种情况,在教学中尝试职业教育倡导的任务驱动教学法。任务驱动教学,就是突出实践在课程中的主体地位,用工作任务引领理论,使理论从属于实践。主要的教学思路是以任务为教学单元,打破原有界限,不管硬件结构、指令、编程的先后顺序,将各部分知识分解成一个个知识点,为了完成一个任务抽取每个部份的不同知识点,加以组合。

1.

以多种形式的点亮LED灯为学习任务,配置为完成该任务而必须掌握的指令、硬件结构知识、软件操作知识等,学完这些知识以后完成该任务,然后较为系统地学习一些硬件结构知识及常用指令,通过这种方式将学生普遍感到比较困难的该部分知识分解,把一个高的台阶变成若干低的台阶,使得学习者从一开始就能体会到成功的喜悦,有利于学习的顺利进行。

2.

用单片机控制点阵动态扫描显示字形,在单片机P0口和P2口分别接入一只8×8 LED点阵显示屏(列共阴极、行共阳极显示屏),在P0口接入显示屏的8列管脚、在P2口接入显示屏的8行管脚,如图3。采用动态扫描显示方式在显示屏上显示字形为学习任务,让学生很直观地学习查表,调用延时子程序等相关指令。

3.

用单片机模拟音频信号输出,使用图1单片机实验板中音频信号驱动电路,其中三极管驱动电路如图4,以单片机模拟警笛音频信号输出、单片机模拟消防车音频信号输出和用单片机模拟音阶音频信号输出(单片机音乐编程)等为学习任务,让学习在快乐、有趣中学习单片机相关指令。

4.

用单片机控制改造继电—接触器控制系统,通过单片机控制继电器电路板,以电力拖动控制线路基本环节为任务,如电动机正反转控制、星—三角降压启动及多台电动机联锁控制等,配置为完成该任务而必须掌握的指令、中断、定时器及查表程序的应用,为学生搭建弱电控制强电的桥梁,如图5为用单片机控制电动机星—三角降压启动控制I/O硬件接线示意。以往单片机教学就是写汇编语言,枯燥无味,现从实际应用的角度来学习单片机,而且是学生正在学习的感受较深的电力拖动控制中的应用,通过横向联系、比较学习,加深对电力拖动控制线路、PLC控制和单片机控制的理解。

唯有实际地做了才能学得更多,通过建立单片机模拟实验平台,拓展了实训空间,让单片机技能实训能人人参与。

摘要:《微机控制技术及应用》 (单片机技术) 是中等职业学校“机电技术应用专业”的主干课程, 单片机难学难教在中职教学中尤为突出。通过单片机模拟实验平台的建立, 提出实验设备、教学内容、教学方法三位一体的解决方案, 探索适合现代职业教育的新路子。

关键词:单片机技术,任务驱动教学法,单片机实验

参考文献

[1]姜大源.单片机技术[M].北京:高等教育出版社, 2005.

[2]周坚.单片机轻松入门[M].北京:北京航空航天大学出版社, 2004.

3.单片机实验教学模式改革及研究 篇三

摘要:单片机实验是一门重要课程,优化其教学模式具有重要意义。首先分析了單片机实验教学中存在的问题,提出了加强实践教学认识,优化实验项目,进行开放化、自由化、游戏化教学模式的探索。经过实践,发现改革后的教学模式,提高了教学效果,培养了学生的实践能力。

关键词:单片机实验,教学模式,强能力,重应用

中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2014)32-0123-02

单片机课程是众多电类专业所必修的专业实验课程,涉及的专业课程众多。通过单片机的实验教学,才能够让学生熟练的运用汇编语言进行编程,设计出满足某种特定功能的单片机应用电路[1],今天各高校充分认识到对学生实践能力培养的重要性,传统的教学理念已不能满足当今行业企业的对应用型人才的需求。因此,如何优化单片机实验教学模式,提升单片机实验教学质量是相关专业改革的重点。

一、传统单片机实验教学存在的问题与不足

1.重理论轻实践

实验教学是高校人才培养的重要环节,是理论学习与创新能力培养的桥梁,同时也是企业对人才需求的要求。[2]今天,衡量一个学生能力的标准已经不再是卷面成绩,企业最关注的也不再是一纸成绩单,而是学生实践创新能力与动手探索能力。当今和许多综合性和理工类院校对实验课程的设置存在一定的不足,许多专业课程没有实验环节,个别课程实验课时少之又少,单独开设的实验课程屈指可数。可见,大部分院校依然偏重于理论的教学,在单片机试验的实践性教学环节重依然采用的是偏重验证性和演示性的实验,仅仅是为了完成实验环节而设立的实验课程,为了做实验而做实验,长期下来会导致学生对实践能力的掌握严重不足,学生发现问题、理解问题、解决问题的实践能力严重欠缺。

2.学生对实验的感性认识不足

大部分学生由于受到传统的教学模式的影响,以及今天的考研模式的推动,把大部分时间和精力投入到理论学习中,远远超过对实验课程的重视程度,甚至很多学生认为实验就是玩玩而已,只要按流程操作完成就可以了,缺乏主动的探索意识。

3.实验教学滞后现象严重

由于实验设备和实验教师等软件和硬件等原因,导致今天各高校的实验课程教学严重滞后于理论教学,尤其作为单片机实验,滞后性尤为明显,这里既有客观原因也有主观因素。首先,由于教学手段、实验设备的落后,明显不能满足日益先进的试验程序;其次,实验教师的观念未能与时俱进,及时更新,依然依靠多年的实验项目和教学案例以及固有的经验进行教学,不能结合社会行业需求安排实验项目及程序;第三,电工与电子技术发展迅猛,出现许多新工艺新技术,理论教学中及时增加了新的内容,而实验教学并未更新,内容长期不变,成为实验教学的瓶颈。上述因素均造成理论与实验脱节,对于更新的技术和内容来说变成了纸上谈兵,学生的实践能力不能适应日益发展变化的市场需求。

二、单片机实验教学优化方案

随着社会对行业需求人才要求的日益提高,高校对工程类专业人才的培养渐渐开始从理论型、学术型人才转向技术型、应用型高技能人才。这就要求高校课堂中对实验、实践环节要越来越重视,尤其在单片机实验中的投入应力度加大,不断更新实验内容,运用各种现代化教学手段,这样才能提高学生的动手能力和实践分析能力。[3]这就要求单片机实验要改变传统软件、硬件分离的状态,提高软件和硬件的结合。为了加强能力型、应用型人才的培养,应该从以下几方面进行改善:

1.加强对实践教学的认识

提高对单片机实践教学的认识要从根本做起,从学校对实验硬件设备的投入,到学院对培养方案计划的修改,再到实验教师对单片机实验的设置,最后到学生对实验兴趣的提升,通过优化实践课程,让实践不再是一种形式,而是与企业需求项目有密切关联的必经过程。只要从软、硬件同时改善单片机实验,学生一定会对实验课程引起很大兴趣,同时可以用企业来说话,往往企业人员的影响力远远大于老师和课堂的说服力度,这样学生从根本上认识到实践的重要性。

2.优化实验项目,建立单片机实验数据库

单片机实验项目要做到以设计性、创新性为主,系统的在经典理论的实验基础上融入设计行为和创新意识,将原本纯粹的验证性实验变成学生自主参与、自主设计与开发的创新型项目,提高学生的主观性即主动的设计创新能力,同时适当的引入企业项目编程,利用学校的硬件接线与程序的编写相结合,完成各种电路的绘制与搭接。学生对企项目的兴趣比虚拟的课程实验兴趣更大,因此可以通过建立以项目为载体的单片机实验数据库,根据学生对不同项目的兴趣点有选择性的进行试验训练,这种方式对学生主观能动性的提高有极大的帮助,不但加强了学生对技能的操作能力和创造力,也提前培养了学生对企业行业知识技能的掌握力。

3.开放化、自由化单片机实验教学模式的尝试

当代大学生存在不喜欢受约束、受限制的性格特点,对课堂教学有着更强烈自由的渴望。对于单片机实验来说,仅限在课程安排的限制时间内完成实验过程,对于很多学生来说是比较局限的,时间不充足,不能更好的达到实验目的。因此,会存在有些学生为了在下课前能够完成实验而匆忙操作,导致出现错误现象。[4]因此开放性实验教学模式可以让学生随时可以来实验室完善它们的作品,也可以让更加有兴趣的同学利用课余时间创造开发他们自己的产品,这样可以促进学生大胆地去创造,去改革,去实践。这种模式有助于实验室设备利用率的提高,充分利用实验室的资源,为学生创造更多的机会提高他们学习的能力及操作技能。在学院的支持下建立了开放性实验室,由任课教师及学生统一管理,购买单片机及常规的元器件,并配备单片机实验箱;任课教师都不定时地进行指导,并组织学生讨论。

4.让单片机实验“游戏化”

以“游戏性”为驱动力可以有效提升学生的创造能力,以学生感兴趣的方向为切入点,让学生在有兴趣的“游戏”中完成任务。游戏化实验教学在最大程度激发学生的学习兴趣上很有效果,渗透性强,现在的学生不喜欢枯燥的学习模式,在实验过程添加“游戏”的成分——学生感兴趣的实验项目。单片机实验打破传统的集成式的实验板,让学生根据自己的兴趣去实验数据库自行选择实验项目,改变传统单片机实验教学中只注重学生动手能力培养、注重某一个单一功能的电路设计的教学方法。这种“游戏”模式可以让学生自己动脑对自己的兴趣项目进行电路设计,自己思考采用何种方案、何种结构、何种功能的电路来实现预期目标。根据自己选择的项目和制定的方案选定具体元器件设计具体电路。这种模式就像学生们在根据自己的思维去完成一个游戏一样,整个实验成为有交互、有自主权的游戏过程。既锻炼了他们手脑结合的能力,同时激发了学生主观能动性和创造性。[5]

三、效果分析

在经过2个学期的教学实践,效果较以前有较大提高。首先,学生从本质上认识到单片机实验的重要性。课堂上不清楚的、不太明白的,很多同学课后主动去单片机开放性实验室做实验,在实验过程中寻求帮助,加强对新知识的理解。其次,学生对单片机实验有了极大的兴趣。学生经常讨论实验过程及结果,甚至有一定的创新思维,积极思考,进行探索。最后,新教学模式下的学生,单片机方面的理论知识、动手能力都比传统模式的学生要强,而且给学生主动学习单片机知识的提供了动力。

四、结语

单片机实验是一项综合性、设计性较强的实验教学模式,学生在实验过程中真正做到理解实验目的,了解行业需求,自己动手、动脑,不依赖老师,试验中学生能根据具体项目需求自主完成实验方案的选择和设计,这种强能力、重应用的单片机实验教学模式不仅提升了学生的理论与实践相结合的能力,提高了学校培养创新人才的效率,同时使学生毕业后能尽快的融入社会,为学生进行高层次的研究和工作打下良好的基础。

参考文献:

[1]凌忠兴.基MCS-51单片机实践教学平台的构建[J].实验室科学,2012,(1).

[2]高庆华.单片机实验教学模式改革探索[J].实验室科学,

2013,(10).

[3]瓮嘉民.周成虎.电子创新开放实验室建设的探索研究[J].实验技术与管理,2012,(1).

[4]田运生.刘维华,王景春.综合性设计性实验项目建设的探索与实践[J].实验技术与管理,2012,(2).

[5]周家婕.浅谈优化单片机实验教学提高实验教学质量[J].计算机光盘软件与应用,2012,(13).

4.单片机实验报告大全 篇四

学校:合肥工业大学

班级:计算机科学与技术

学号:

姓名:

验报告

第一章MC51 单片机原理及应用软件实验

实验1:系统认识实验

1. 实验目的

(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。(3)教育学生爱抚实验装置,养成良好的实验习惯。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。(4)在uVision2开发平台上建立并编辑示例程序:

计算N个数求和程序。其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。

题目:

1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。

(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。(7)实验结束,撤出接线,将一切整理复原。

4.实验源程序

ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R2,#06H MOV R3,#03H MOV R4,#04H MOV R0,#50H L1: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END

5.实验结果截图

6.实验总结

这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? 实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。

实验六.数据排序实验

1. 实验目的

(1)理解并掌握排序程序的设计方法。(2)掌握减法指令的功能,并联系其使用。

(3)逐步提高调试程序的能力及编写程序的能力。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。(4)编译连接源程序。

(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。

(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。

4.实验源程序

MAIN:

LOP2:

LOP1:

LOP5:

ORG 0000H LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1

LOP4:

LOP6:

MOV @R0,A INC R1 INC R0 MOV A,@R0 CJNE

R1,#80H,LOP5 RET END 5.实验结果截图

6.实验总结

本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。

对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H

LJMP MAIN

ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。

总之,这次实验让我了解了各种分支与跳转,还是有所收获的。

第二章MC51 单片机原理及应用硬件实验

实验一:广告灯实验

1. 实验目的

(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KFKC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)用试验箱上的发光二极管L0到L7模拟外界各种场合的动态广告灯,将试验箱上的发光二极管L0到L7分别与单片机的P1.0到P1.7相连。

(4)编写程序,实现从P1口输出信号驱动发光二极管L0到L7模拟外界广告灯动态点亮的功能。

(5)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(6)单步执行程序,观察是否进入表格首地址。

(7)单步执行程序,观察发光二极管L0到L7的变化。

(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。(9)实验结束,撤除接线,将一切整理复原。

4.实验源程序

ORG 0000H MAIN: MOV DPTR,#TAB

MOV R5,71H LOOP: MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

ACALL DELAY

ACALL DELAY

INC DPTR

DJNZ R5,LOOP

LJMP MAIN DELAY: MOV R7,#00H

MOV R6,#00H DE:

DJNZ R7,$

DJNZ R6,DE

RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH

DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H

DB 01H,00H,01H,03H,07H,0FH,1FH,3FH

DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH

DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H

DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH

DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH

DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB 80H,40H,20H,10H,08H,04H,02H,01H,00H

DB 01H,02H,04H,08H,10H,20H,40H,80H,00H

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

END

5.实验结果

6.实验总结

广告灯按照程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,另外对于查表指令也有所理解。实验二:P1端口应用实验

1.实验目的

(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)将试验箱上的L0到L3接到P1.0到P1.3,开关K0到K3接到P1.4到P1.7。(4)编写程序实现如下功能: 拨动K0到K3,使L0到L3出现以下组合变化。K3 K2 K1 K0 L3 L2 L1 L0 0 0 0 0 全亮 0 0 0 1 全暗

0 0 1 0 一灯亮其余灯暗并左环依 0 0 1 1 一灯亮其余灯暗并右环依 0 1 0 0 一灯暗其余灯亮并左环依 0 1 0 1 一灯暗其余灯亮并右环依 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:

1)设40H单元为标志单元,(40H)=0时开关状态无变化,(40H)=FFH时开关状态发生变化。

2)设41H单元为开关状态缓冲器,读入开关状态和41H单元内容比较,相同时开关状态无变化,不同是开关状态有变化。3)设42H单元为当前指示灯状态。

(4)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(5)根据准双向口的特性,对P1口写操作使灯L0到L7的状态随写入P1.0到P1.3的内容而变化;读P1口的高四位,读出内容随开关状态的变化而变化。如不对,则检查开关K0到K3的接线,检查K0到K3的电平是否随开关状态变化而变化。

(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。(7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。

(8)全速运行程序实现所要求的功能。

4.实验源程序

ORG 0000H STRL: MOV A,P1

SWAP A

ANL A,#0FH

MOV 41H,A

MOV 40H,#0FFH MLP0: CJNE A,#6,$+3

JNC PK6

MOV DPTR,#CTAB

MOV R1,A

RL

A

ADD A,R1

JMP @A+DPTR CTAB: LJMP PK0

LJMP PK1

LJMP PK2

LJMP PK3

LJMP PK4

LJMP PK5 PK6:

MOV 42H,A

LJMP MLP1 PK5:

MOV A,40H

CJNE A,#0FFH,PK51

MOV 42H,#01

LJMP MLP1 PK51: MOV A,42H

LCALL RR7

ANL A,#0FH

JNZ PK52

MOV A,#1 PK52: MOV 42H,A

LJMP MLP1 PK4:

MOV A,40H

CJNE A,#0FFH,PK41

MOV 42H,#1

LJMP MLP1 PK41: MOV A,42H

LCALL RL9

ANL A,#0FH

JNZ PK42

MOV A,#1 PK42: MOV 42H,A

LJMP MLP1 PK3:

MOV A,40H

CJNE A,#0FFH,PK31

MOV 42H,#0F7H

LJMP MLP1 PK31: MOV A,42H

LCALL RR9

ANL

A,#0FH

CJNE A,#0FH,PK32

MOV

A,#0F7H PK32: ORL

A,#0F0H

MOV

42H,A

LJMP MLP1 PK2:

MOV

A,40H

CJNE A,#0FFH,PK21

MOV

42H,0FEH

LJMP MLP1 PK21: MOV

A,42H

RL A

ANL A,#0FH

CJNE A,#0FH,PK22

MOV A,#0FEH PK22: ORL A,#0F0H

MOV 42H,A

LJMP MLP1 PK1:

MOV 42H,#0FH

LJMP MLP1 PK0:

MOV 42H,#0 MLP1: MOV A,42H

ORL A,#0F0H

MOV P1,A

MOV R7,#0

MOV R6,#0 DEL1: DJNZ R6,DEL1

DJNZ R7,DEL1

MOV

A,P1

SWAP A

ANL A,#0FH

CJNE A,41H,MLP2

MOV 40H,#0

LJMP MLP0 MLP2: MOV 41H,A

MOV 40H,#0FEH

LJMP MLP0 RR9:

RR A

RR A RR7:

RR A

RR A

RR A

RR A

RR A

RR A

RR A

RET RL9:

RL A

RL A RL7:

RL A

RL A

RL A

RL A

RL A

RL A

RL A

RET

END

5.实验结果截图

6.实验结论

试验中我们把P1口作为输入输出口来测试以下的内容 1.P1 口做输出口,接八只发光二极管循环点亮。2.P1 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。

在这次试验中我认识到课本上的关于P1口的介绍的知识 P1 口为准双向口,P1 口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

实验三:串转并实验

1.实验目的

(1)掌握51系列单片机串口工作方式0的应用。

(2)学习8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行 输出的同步移位寄存器74LS165两个接口芯片的应用性能。(3)研究单片机串行口如何用于扩展并行I/O口。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确 认89C51处于仿真状态。(3)实验步骤:

1)通过单片机串口用一片8位串行输入/并行输出的同步移位寄存器74LS164扩展 8位并行输出口。

2)通过单片机串口用一片8位并行输入/串行输出的同步移位寄存器74LS165扩展 8位并行输入口。(4)将单片机的RXD端与74LS164的串行输入端SERIAL(PA)相连,将单片机的TXD 端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管 L8到 L15。(5)调试程序:

1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。

3)单步执行程序,注意中断标志T1的变化以及所亮的发光二极管的位置。

4.实验源程序

ORG 0000H SJMP MAIN ORG 0023H SJMP SBV MAIN: MOV SCON,#00H SETB EA SETB ES MOV A,#80H MOV SBUF,A MOV SBUF,A MOV SBUF,A SJMP $ SBV: ACALL DELAY CLR T1 RR A MOV SBUF,A RETi DELAY: MOV R7,#00H MOV R6,#00H DEL: DJNZ R7,$

5.实验结果截图

6.实验结论

5.基于单片机的实验报告 篇五

学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩

四川师范大学成都学院 二O一五年十二月

基于AT89C52的电子时钟设计

摘要:

单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格 低廉等优势,在市场上占有很大的份额。AT89C52就是51系列中的一个比较成熟的型号。本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。可按键直接设置闹铃时间。由AT89C51单片机、DS1302、LCD1602等模块组成。现代社会,时间就是金钱,时钟是每个人的必备品。本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。

关键词:电子时钟;DS1302;LCD1602;

Abstract: Single-chip computer is finding wider and wider application in the electronic products, especially the 51 series microcontroller, due to its convenience, price is low wait for an advantage, holds a large share in the market.AT89C52 is 51 series of a more mature model.This design is a multi-function real-time clock, stopwatch, adjusting time of the hour, alarm, etc.Can be directly set alarm time button.Composed of AT89C51, DS1302 and LCD1602 module.Modern society, time is money, the clock is an essential for everyone.This design can realize the function needed, bring convenience, integral sex is good, human nature is strong, high reliability, realize the multifunctional application of clock.Keywords: electronic;clock;DS1302

II

目录

引言:..............................................................1 1.设计要求与方案....................................................1 1.1 设计要求:....................................................1 1.2 系统基本方案选择..............................................1

1.2.1单片机芯片的选择方案和论证.............................1 1.2.2 显示模块选择方案和论证.................................2 1.2.3时钟芯片的选择方案和论证...............................2

2.设计方案的选择....................................................3 2.1计时方案.....................................错误!未定义书签。2.2 单片机的基本结构.............................错误!未定义书签。2.3数字钟的构成..................................................4 2.4数字钟组成框图................................................4

2.4.1晶体振荡器电路.........................................4 2.4.2 整点报时电路...........................................4

3.系统的软件设计...................................................4 3.1程序流程图....................................................4 3.2程序的设计....................................................6 4.实验箱调试结果....................................................8 5.总结心得体会:....................................................9

III

引言:

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子时钟采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该设计以AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

综上所述,此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.设计要求与方案

1.1 设计要求:

(1)启动时显示制作的年、月、日、制作者的学号等信息。(2)24小时计时功能(精确到秒)(3)整点报时功能。(4)秒表功能

(5)省电功能模式(未设计)1.2 系统基本方案选择

1.2.1单片机芯片的选择方案和论证 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:

采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时 也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具

有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增

功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。相比之下,我们在实验箱实际仿真时选择采用AT89S52作为主控制系统,由于proteus库中没有AT89S52,在原理图仿真时采用了AT89C51 1.2.2 显示模块选择方案和论证 方案一:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高所以也不用此种作为显示.方案二:

采用LCD液晶显示屏,液晶显示屏的显示功能强大,显示多样,清晰可见 本设计采用LCD1602 1.2.3时钟芯片的选择方案和论证 方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分、秒计

数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。

方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对

秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM 做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.综上各方案所述,对此次作品的方案选定: 采用AT89C52作为主控制系统,DS1302提供时钟计时,LCD1602屏幕显示.2 2为一个分频器来使用。对于芯片的使用,我们应该在了解它的各项功能的前提条件下,灵活巧妙地运用。具体的芯片资料和图片我们通过查阅相关的书籍,在网上能够很方便的查找。

经过这次电子钟作品设计与制作让我收获很多:

一、让我明白了“三个臭皮匠顶一个诸葛亮”和“团结就是力量”等名言名句的道理,让我明白只要我们团结协作没有什么困难是战胜不了的,团结让我们成功,团结让我们胜利,团结让我们的力量更大;

二、增进我和老师同学之间的友谊情感,在与老师互动学习的过程中使我体会了老师解决问题的方法与思路,让我领会了解决问题精髓,使我们学习更有活力更有信心更有自信,培养了我们的协助合作能力;

三、培养了我们的动手能力和独立解决问题的能力;

四、培养了我们的自主学习能力和利用网上这个广阔平台的学习能力;

五、使我学会了用专用的画图工具和画图软件Protel99SE画电路图的能力,通过这次作品的制作使我对Protel99SE原来的不熟悉到现在的比较熟练,画的图也比原来更合理,速度更快了;

六、锻炼了我们的焊接技术和焊接工艺,使我的焊接能力上了一个台阶;

七、培养了我管理和协调各项工作的能力,在制作的过程中也有不协调的一面但我都能一一克服了,这也使我在管理等方面能力的提高。2.3数字钟的构成

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。2.4数字钟组成框图 2.4.1晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用TTL门电路构成;另一类是通过CMOS非门构成的电路,本次设计采用了后一种。如图(b)所示,由CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。(f)带有消抖电路的校正电路

2.4.2 整点报时电路

电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。

当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的QC和QA、个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。报时电路可选74HC30来构成。74HC30为8输入与非门。

3.系统的软件设计

3.1程序流程图

图-A 主程序流程图

图-B 整程序流程图

间调

时 3.2程序的设计 程序

#include #include #include #include

#define uchar unsigned char #define uint unsigned int #define TIME(0X10000-50000)#define FLAG 0xf4 //闹钟标志

sbit rst=P1^2;//DS sbit clk=P1^0;sbit dat=P1^1;sbit rs=P2^0;//LCD sbit rw=P2^1;sbit e=P2^2;sbit beep=P1^3;sbit mbkey=P1^4;

uchar k;uchar flag;uchar i=20,j,time1[16];uchar alarm[2],time2[15],time[3];time5[3];uchar code Day[]={31,28,31,30,31,30,31,31,30,31,30,31};//12个月的最大日期(非闰年)uchar //ms秒表进数,mbmiao.mbfe秒表的秒.分,key2num是key5的计数

key2num,ms=0,mbmiao=0,mbfen=0,mbkeynum,num;uchar code table[]=“ 32210324 GYY”;uchar code table1[]=“ 32210326 GLQ”;uchar code table4[]=“ 00:00:00 MB ”;

void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

delay1ms(uchar time)//延时1ms { uchar i,j;for(i=0;i

//LCD驱动部分 enable(){ rs=0;rw=0;e=0;delay1ms(3);e=1;} write2(uchar i){ P0=i;rs=1;rw=0;e=0;7 delay1ms(2);e=1;} write1(uchar data *address,m){ uchar i,j;for(i=0;i

实现功能的具体方法:

时钟主界面时按下K1键进入秒表功能,按K2秒表开始,再按K3秒表停,按键K4返回时间显示;按K4开始调试(移位“年→秒”),接着按K2、K3调节时间增减;按K2开启闹钟,K3调节时间,K4(移位“时分”);按“年→秒”的顺序移位,按键K2进行减运算,按键K3进行加运算,按键K1返回到主界面并显示设置值。

按下K3键,实现闹钟定时调整,按键K4进行“分-秒”移位,按键K3进行 上调,按键K2返回到主界面。

主界面K2实现开启/关闭闹钟的功能。按下K1键进入秒表,按键K2开始计时,K3暂停计时,K4返回到主界面。

5.总结心得体会:

通过这次电子时钟设计,其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,开始以为时钟会很简单,就算遇到问题应该也很好解决,但当自己真正去做的时候,发现了好多困难。于是查资料,问同学和老师。经过老师和同学的探讨,通过调试进一步完善程序设计,最后虽然省电模式没实现但其他基本达到课题所要求的指标。完成了实习任务。这次实习我更加了解了单片机的应用,更加牢牢的掌握了书本知识与现实的结合,总之这是实习收获很大,以后还需多动手实践,多练习编程,才能熟练掌握单片机。

6.单片机io口控制实验报告 篇六

实验名称:

I/O 口控制

名:

张昊 学

号:

110404247 班

级:

通信 2 班 时

间:

2013.11.19

南京理工大学紫金学院电光系

一、实验目的1、学习I/O 口的使用。

2、学习延时子程序的编写和使用。

3、掌握单片机编程器的使用和芯片烧写方法。

二、

实验原理

1、广告流水灯实验 (1)

做单一灯的左移右移,八个发光二极管 L1~L8 分别接在单片机的P1.0~P1.7 接口上,输出“0”的时候,发光二极管亮,开始时P1.0->P1.1->P1.2->P1.3->...->P1.7->P1.6->...P1.0 亮,重复循环。

(2)

系统板上硬件连线:把“单片机系统”A2 区的 J61 接口的 P1.0~P1.6端口与 D1 区的 J52 接口相连。要求:P1.0 对应着 L1,P1.1 对应L2,……,P1.7 对应着 L8。

P1 口广告流水灯实验原理图如下

程序设计流程:流程图如下

2、模拟开关实验 (1)

监视开关 K1(接在 P3.0 端口上),用发光二极管 L1(接在单片机P1.0 端口上)显示开关状态,如果开关合上,L1 亮,开关打开,L1 熄火。

(2)

系统板上硬件连线:把“单片机系统”A2 区的 P1.0 端口用导线连接到 D1 区的 LED1 端口上;把“单片机系统”A2 区的 P3.0 端口用导线连接到 D1 区的 KEY1 端口上; 实验原理图如下图

程序设计流程

二、实验内容

1、流水灯

#include sbit p10=P1^0;sbit p11=P1^1;sbit p12=P1^2;sbit p13=P1^3;sbit p14=P1^4;sbit p15=P1^5;sbit p16=P1^6;sbit p17=P1^7;

unsigned char count=0;bit flag;void main(){ 开始 开关闭合否 L1 灭 L1 亮

P1=0xff;TMOD=0x01;TH0=55536/256;TL0=55536%256;EA=1;ET0=1;TR0=1;while(1){ p10=0;while(flag==0);flag=0;p10=1;p11=0;while(flag==0);flag=0;p11=1;p12=0;while(flag==0);flag=0;p12=1;p13=0;while(flag==0);flag=0;p13=1;p14=0;while(flag==0);flag=0;p14=1;p15=0;while(flag==0);flag=0;p15=1;p16=0;while(flag==0);flag=0;p16=1;p17=0;while(flag==0);flag=0;p17=1;} } void t0_srv()interrupt 1 { TH0=55536/256;TL0=55536%256;count++;if(count==10){ flag=1;

count=0;} } 2、模拟开关

#include sbit p30=P3^0;sbit p10=P1^0;void main(){

while(1){ if(p30==0)

p10=0;else

p10=1;} }

三、小结与体会

7.单片机综合实验箱的研制 篇七

1 设计思想

长期以来,单片机实验是基于“电路板块式”的实验教学模式,这种教学模式最大的缺点是:学生只能在教师预先设定的框架中被动地完成实验,在一定程度上抑制了学生主观能动性的发挥;另一方面,随着开放式创新型实验教学改革的深入发展,80%的实验为设计性、综合性实验,而传统的单片机实验箱功能单一,无法给学生提供一个充分开放自由的实验环境,不能满足实验教学的需要。

开发单片机综合实验箱,基于3个基本要求:第一要满足实验教学大纲所开实验的要求;第二,具有多功能,可完成设计性、综合设计性实验;第三,便携式,为学生提供实验箱,做预习或解决他们有设计思想希望进行实验却找不到实验场所的困惑。

总体方案的设计遵循以下几个原则:

(1)满足单片机原理与应用课程实验和单片机课程设计、电子综合设计以及大学生创新活动的需要。

(2)具有超前意识的设计性和综合性实验体系,既有固定电路可用,又可以让学生根据自行设计电路,进行电路搭接,灵活方便,实用性强。

(3)增强学生多方面的能力,包括软、硬件编程能力、实际动手操作能力。

(4)可扩展性强。不仅能适应当前的实验要求,经过扩展可以满足新技术、新实验的要求。

2 总体结构设计

2.1 组成

本实验箱提供2个实验平台:单片机实验平台和EDA实验平台。通过单片机实验平台完成单片机原理与应用课程中的基础性实验。通过EDA实验平台,利用CPLD/FPGA数字设计功能及互联技术,完成单片机外围电路的硬件设计及单片机I/O的在线分配,即实现单片机全虚拟I/O技术。因此可以根据不同实验功能设计不同的硬件接口电路,整个设计灵活多变,从硬件及软件两个方面加强了学生实践应用能力培养。

单片机实验平台由仿真器接口引出P1口、P3口共14个接线端子,用于连接其他单元电路(如图1所示)。包括A/D,D/A转换电路,8位L E D数码显示电路,L C D显示电路,4×4键盘电路,I/0口扩展输入,RS232或RS485串行通讯扩展,外接TS87C51单元电路,MSP430扩展板等功能单元。

EDA实验平台通过印制板走线连接,包括CPLD芯片下载板、音频单元、直流电机、步进电机、数据存储、单片机扩展接口等电路(如图2所示)。

各功能单元电路上设置连接端孔,学生根据不同实验功能,进行外围电路简单连线,进而理解单片机的硬件电路。

2.2 创新点

(1)多仿真器支持:

既有外接仿真器接口,可选配通用型号仿真器,同时有自主开发的板载仿真器,利用双串口单片机实现MON51仿真器,并开放串口提供给用户。

(2)支持EDA开发:

集成了EDA综合开发系统,利用FPGA实现单片机的外围硬件电路的设计,使学生可以根据不同实验功能设计不同的硬件接口电路,整个设计灵活多变,从硬件及软件两个方面加强了学生实践应用能力的培养。

(3)实验开放性:

实验电路单元尽可能独立开放开放式显示器开放式串口等,通过外接线实现单片机与各单元电路的连接,使学习者对单片机功能有更全面的认识。

(4)教学扩展性:

单片机实验平台采用仿真器外接设计,将仿真器和实验系统分开,仿真器可单独使用,并可选配其他型号仿真器,适应产品的更新换代。同时提供了TS87C51和MSP430单元电路,可根据实验教学的要求,采用其他单片机系统进行教学实验。本实验箱配备的仿真器为广州致远电子有限公司推出的高性能实时在线仿真器。

3 主要实验内容简介

3.1 基础性实验部分

该部分属于学习单片机课程应知应会的内容,主要包含以下部分:

(1)数据存储器单元:外部数据存储器采用8K的RAM(6264)和32K的RAM(62256)各一片,可用来做外部存储器读写实验。

(2)计数/定时器。

(3)键盘及LED显示:该电路采用8255实现对4×4键盘、8位LED数码管的扫描管理。

(4)模数转换:该单元既可采用A D C0809,也可以采用12位测量精度高速A/D转换芯片MAX197,完成8路模数转换实验。

(5)数模转换:D/A转换芯片DAC0832可以将数字信号转换成单极性模拟信号输出。

(6)I/O扩展输入:该单元包括简单I/O扩展输入和可编程并行I/O口扩展芯片8255。

(7)串行通讯扩展:采用可编程串行通讯扩展芯片82C51,可以实现串并口的转换。可以和RS232或RS485结合进行串口通讯扩展实验。

(8)LCD液晶显示器单元:该单元采用RT12864HZ汉字图形点阵液晶显示模块,其屏幕大小为128×64点阵,可显示汉字及图形,内置8192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM)。

3.2 提高性实验

考虑到目前高校所使用的单片机实验箱硬件部分都是固定不变的,因此实验教学中,学生主体意识差,在教师讲解了端口地址以后,主要进行单片机程序设计及验证性实验。为了提高学生综合应用知识的能力,外加了EDA综合开发系统,利用CPLD/FPGA强大的数字设计功能及互联技术实现单片机I/O的在线分配,即实现单片机全虚拟I/O技术,因此可以根据不同实验功能设计不同的硬件接口电路,整个设计灵活多变,从硬件及软件两个方面加强了学生实践应用能力培养。可同时开出CPLD、单片机及PC机综合设计实验。

4 结束语

本实验装置经试用,已经达到了设计要求,一方面可以满足正常的实验教学任务,提供良好的实验教学环境。另一方面,学生利用该实验装置可以完成CPLD、单片机及PC机综合设计实验,为学生课外科技活动提供良好的条件。

2011年2月16日,本单片机综合实验箱获得国家实用新型专利(专利号:ZL 201020513294.5)。

参考文献

[1]庄乾起.利用CPLD/FPGA技术加强单片机教学开发系统的研究[J].电气电子教学学报,2002,6:72~73

8.单片机实验报告 篇八

【摘要】通过总结单片机理论、实验和课程设计的教学实践经验及教学研究心得,以某高校电子电气信息类本科专业为例,分析了如何完善单片机课程体系建设,如何在课程教学过程中通过理论与实践相结合加强大学生对理论的深入理解,构建系统化的教学工作。

【关键词】单片机 理论与实验 课程设计 协同教学

【中图分类号】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

[4]张毅刚.单片机原理及接口技术(C51编程),人民邮电出版社,2016.4

9.单片机实验三 双机通信实验程序 篇九

一、实验目的

UART 串行通信接口技术应用

二、实验实现的功能

用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

三、系统硬件设计

实验所需硬件:电脑一台;

开发板一块;

串口通信线一根; USB线一根;

四、系统软件设计

实验所需软件:编译软件:keil uvision3;

程序下载软件:STC_ISP_V480; 试验程序:

#include sbit W1=P0^0;sbit W2=P0^1;sbit W3=P0^2;sbit W4=P0^3;sbit D9=P3^2;sbit D10=P3^3;sbit D11=P3^4;sbit D12=P3^5;sbit DP=P1^7;code unsigned char table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};sfr P1M1=0x91;sfr P1M0=0x92;sbit H1=P3^6;sbit H2=P3^7;sbit L1=P0^5;sbit L2=P0^6;sbit L3=P0^7;unsigned char dat;unsigned char keynum;unsigned char keyscan();void display();void delay(void);

L1=1;L2=1;L3=1;

H1=0;if(L1==0)

return 1;else if(L2==0)

return 2;else if(L3==0)

return 3;

H1=1;H2=0;if(L1==0)

return 4;else if(L2==0)

return 5;else if(L3==0)

return 6;H2=1;return 0;

} unsigned char keyscan(){ static unsigned int ct=0;static unsigned char lastkey=0;unsigned char key;key=getkey();

if(key==lastkey){

ct++;

if(ct==900)

{

ct=0;

lastkey=0;

return key;

10.单片机实验 2 篇十

实验报告

得分:

年级专业:

测控1303班

学生姓名/学号:崔振振

/201323030325 评阅教师:

提交时间:2015—2016学年第1学期

单片机实验1汇编语言程序设计实验

----存储器块清零或赋值

一.实验目的 熟悉存储器的读写方法,熟悉51汇编语言结构。2 熟悉循环结构程序的编写。

熟悉编程环境和程序的调试。二.实验内容

指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H。三.实验仪器

微机、WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-

Lab6000通用微控制器 MCS51实验 8031

√ 使用伟福软件模拟器 勾上

四、实验内容及步骤

1、运行WAVE 双击“WAVE”图标,进入仿真调试环境。最上行为提示行:伟福6000 软件模拟器(8***)[C:WAVESAMPLES***.PRJ]-[***-C:WAVESAMPLES***.ASM],其中,8***为要仿真的芯片,后面的.PRJ文件是你要调试的项目,最后一项是录入的源程序。(如果有项目文件,请点击菜单 文件-关闭项目)

2、仿真器设置

使用语言设置:点击“仿真器—— 仿真器设置”

仿真器设置:点击“仿真器—— 仿真器设置——语言”,选择“伟福汇编器”“混合十、十六进制”;点击仿真器设置下的“仿真器”,选择 S51/S、POD8X5X、8751(或AT89C51);在“使用伟福软件模拟器”选项上打“√”,点击“好”。完成软件模拟仿真器环境设置。

3、程序录入

完成下列程序的录入(SY1.ASM)。(注意:录入源程序必须使用西文输入法)录入步骤为:点击“文件”——点击“新建文件”,则显示器打开源程序录入窗口,文件名默认为NONAME1;将SY1.ASM录入并点击“文件”———点击“保存文件”。特别注意:保存文件时必须加上扩展名“.ASM”,并记录保存的文件夹路径。

建立项目,点击新建项目,选择刚才新建的文件,下一步可不选择,然后填写项目名字

参考程序:

Block equ 4000h mov dptr, #Block;起始地址 mov r0, #10;清10个字节 mov a, #33h;Loop: movx @dptr, a inc dptr;指向下一个地址 djnz r0, Loop;记数减一 ljmp $ end

4、对录入的源程序SY1.ASM进行编译

编译步骤为:点击“项目———全部编译”

若编译完成,在左下角的“信息窗口”将显示生成两个文件SY1.HEX和SY1.BIN。若源程序在格式上有错误,则在“信息窗口”中出现错误提示,请检查源程序,修改后再进行编译,直至编译成功。

窗口最下一行显示:执行时间和PC、DPTR、A、PSW、SP的当前值。

5、窗口介绍与练习(1)、左边窗口:为“项目窗口”和“观察窗口”: Project: 项目窗口;

REG: 工作寄存器和部分特殊功能寄存器窗口。SFR: 51系列单片机特殊功能寄存器窗口。

另:此窗口最右边显示的是某个特殊功能寄存器(点击选中左边的某个寄存器)的位及对应的二进制的值。

(2)、左下角为“信息窗口”。(3)、右下角为CODE(程序存储器)窗口和XDATA(片外数据存储器)窗口。(4)、点击主菜单的“窗口——CPU窗口”,在右部窗口显示PC值、机器码和源程序。(5)、点击主菜单的“窗口——数据窗口——DATA”:显示片内RAM窗口。

6、调试程序

点击 “执行—— 复位”:使程序指针指向第一条指令(CPU窗口指向0000H)点击 “执行—— 单步”:使程序单步执行。

7、观察寄存器单元中的内容:

点击 窗口—— 数据窗口-DATA: 可以观看片内RAM 00H 到 FFH 中的内容,点击 窗口—— 数据窗口-CODE: 可以观看程序存储器 0000H —— FFFFH 中的机器码。点击 窗口—— 数据窗口—— XDATA: 可以观看片外RAM 数据 0000H— FFFFH 点击 窗口—— 数据窗口—— DATA: 可以观看RAM 数据00H— FFH 参考程序与流程图

实验心得:

通过实验能够让我更了解单片机内部工作的原理,能够更深一层次的帮助我理解各个语句命令的功能

单片机实验2存储块移动 一.实验目的 熟悉51汇编语言程序结构。2 熟悉循环结构程序的编写,进一 步熟悉指令系统。熟悉编程环境和程序的调试。二.实验内容

将指定源地址(3000H)和长度(100字节)的存储块移动到目的地址(4000H)。三.实验步骤

同实验一项目文件建立过程,然后录入代码 四.代码内容

mov

r0, #30h mov

r1, #00h mov

r2, #40h mov

r3, #00h

mov

r7, #10 Loop: movdph, r0 movdpl, r1 movx a, @dptr movdph, r2 movdpl, r3 movx @dptr, a inc

r1 inc

r3 djnz r7, Loop ljmp $

实验心得:

试验中当时挺迷惑dph和dpl的,最终查书才知道是dptr的另一种表达方式,从这可以看出有时候实验是检验自己学习不足的好方法,从而加深对本质的理解

单片机实验3数据排序

一.实验目的

1了解数据排序的常用算法,掌握冒泡算法。2 进一步熟悉编程环境和调试方法。3 熟悉汇编程序设计。二.实验内容

将 50H开始的10个随机数按从小到大的顺序排列。三.实验仪器微机、WAVE6000编程环境

试验中由于上电后数据都一样,所以需要手动修改50H后10个数据(要排序的数)方法是:窗口---数据窗口---DATA 找到50H开始的10个2位16进制数,双击,修改其数值如(6,2,4,9,3,7,1,5,8,0)之后编译(下载),单步执行,查看排序执行过程

四.实验步骤:同实验一,值得注意的地方就是修改数据

参考程序:

Size

equ

;数据个数

Array equ

50h

;数据起始地址

Change equ

0

;交换标志 Sort:

mov

r0, #Array

mov

r7, #Size-1

clr

Change Goon:

mov

a, @r0

mov

r2, a

inc

r0

mov

B, @r0

cjne a, B, NotEqual

sjmp Next NotEqual:

jc

Next

;前小后大, 不交换

setb Change

;前大后小, 置交换标志

xch

a, @r0

;交换

dec

r0

xch

a, @r0

inc

r0 Next:

djnz r7, Goon

jb

Change, Sort

ljmp $

end

实验心得:

其实有时候挺疑惑伪代码到底是干什么的,因为程序在执行中,不像c语言一样调用子函数能够让人很理解,但究其最终的的过程,还是和c语言是一样的,具有同样的思想

单片机实验4 P1口输入输出实验

一.实验目的

1.熟悉P1 口的功能。

2.熟悉延时子程序或定时中断程序的编写和使用。3.初步熟悉单片机软硬件设计方法。二.实验内容(两内容分开做)

注意:硬件实验小实验箱的仿真器设置:

选择仿真器选择仿真头选择CPU G6W

POD51

8031

1.P1口做输出口接八只发光二极管,编写程序,使发光二极管循环亮灭。

注意:小实验箱(G2010)的发光二级管LED是低电平亮,高电平灭;

大实验箱(LAB6000)的发光二级管LED是高电平点亮,低电平灭。

2.P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管。编写程序读取开关状态,将此状态在发光二极管上显示出来。三.实验仪器

微机,WAVE6000编程环境、实验箱

注意:当P1口用作输入口时,必须先对它置”1”。

编程时应注意P1.0,P1.1作为输入时应先置1,才能正确读入值。

S0,S1就是实验箱上K0,K1 键

实 验 说 明 . P1 口 是 准 双 向 口,它 作 为 输 出 口 时 与 一 般 的 双 向 口 使 用 方 法 相 同。由 准 双 向 口 结构 可 知 当 P1 口 用 为 输 入 口时, 必 须 先 对 它 置 “ 1 ”。若 不 先 对 它 置 “ 1 ”,读 入 的 数 据 是 不 正 确 的。内容1大实验箱参考程序:

rl

a Loop:

call Delay mov

a, #01h

djnz r2, Output mov

r2, #8

ljmp Loop Output:

Delay: mov

P1, a

mov

r6, #0 mov

r7, #0 DelayLoop: djnz r6, DelayLoop djnz r7, DelayLoop ret end 内容2大实验箱参考程序 KeyLeftequ P1.0 KeyRightequ P1.1 LedLeftequ P1.2 LedRightequ P1.3 SETB

KeyLeft 实验心得:

SETB

KeyRight Loop:

MOV

C, KeyLeft MOV

LedLeft, C MOV

C,KeyRight MOV

Ledright,C LJMP

Loop END

当进行实验时,我一直不明白,为什么可以用OX0000H这样的值赋给dptr单片机就知道是对P0 P2操作,P1能不能这样使用呢,在实验中我们看到对单个引脚操作时是直接进行赋值的,但最终还是通过看书得以理解。

实验五计数器实验

一.实验目的 熟悉计数器的使用方法。2 熟悉计数器的硬件电路连接。3 熟悉计数器的软件设计。二.实验内容

注意:硬件实验 小实验箱的仿真器设置:

选择仿真器 选择仿真头 选择CPU G6W POD51 8031 8031内部定时计数器0,按计数器模式和工作方式1工作,对P3.4(计数器0计数脉冲输入T0)引脚进行计数。将其计数数值按二进制数用P1口驱动LED灯显示出来。

说明

实 验 中 内 计 数 器 起 计 数 器 的 作 用,外 部 事 件 计 数 冲 由 P3.4 引 入 定 时 器T0。单 片 机 在 每 个 榌 器 周 期 采 样 一 次 输 入 波 形。因 此 单 片 机 至 少 需 要 两 个 机 器 周 期 才 能 椧 到 一 次 跳 变。这 就 要 求 被 采 样 电平至 少 维 特 一 个 完 整 的 机 器 周 期。以 保 证 电平在 变 化 之 前 即 被 采 样。同 时 这 就 决 定 了 输 入 波 形 的 率 不 能 超 过 机 器 周 期。

三.实验仪器

微机、WAVE6000编程环境,伟福6000实验箱 注意:P3.4接单次脉冲 实验连线如图:

大实验箱单次脉冲

程序流程:

程序

mov

TMOD, #00000101b

;方式1,记数器 mov

TH0, #0 mov

TL0, #0 setb TR0

;开始记数

Loop: mov

P1, TL0

;将记数结果送P1口 ljmp

Loop end 实验心得:

对于程序的过程我没有太多的疑问,能够更好地理解书中概念性的知识。

实验六外部中断实验

一.实验目的 熟悉外部中断的硬件电路,中断技术的基本使用方法。2 熟悉外部中断的软件设计。二.实验内容

注意:硬件实验小实验箱的仿真器设置:

选择仿真器选择仿真头选择CPU G6W

POD51

8031

利用实验箱上的单脉冲按键和发光二极管实现:用单次脉冲申请中断,在中断服务程序中对输出信号进行翻转(对每当输出一个单次脉冲时(产生低电平一个脉冲),发光二极管(L0)亮灭变化)。

三.实验仪器

微机、WAVE6000编程环境,实验箱

连线:P1.0连接L0

INT0连接低电平单次脉冲。实验电路及连线如下:小实验箱低电平脉冲见上页图示。

注意

中断服务程序(ISR)关键: 保护进入中断时的现场,并在退出中断之前恢复现场;中断重入的设置中断相关寄存器的设置:中断寄存器IE,中断触发罚方式的设置。本例中保护CPU状态寄存器PSW等。中断程序和子程序的区别。中断程序不是程序调用的,中断发生时,CPU就执行相应中断服务程序。程序流程图:

参考程序:

LED equ P1.0 LEDBufequ 0 ljmp Start org 3 Interrupt0: push PSW;保护现场 cplLEDBuf;取反LED mov c, LEDBuf mov LED, c pop PSW;恢复现场 reti Start: clrLEDBuf clr LED mov TCON, #01h;外部中断0下降沿触发

mov IE, #81h;打开外部中断允许位(EX0)及总中断允许位(EA)ljmp $ end 实验心得:

上一篇:气化车间试车问题小结下一篇:我想这样过暑假作文400字素材