单片机课程设计外部中断控制流水灯变化

合集下载

基于单片机AT89C51控制的键控流水灯_课程设计报告

基于单片机AT89C51控制的键控流水灯_课程设计报告
设计中,发光二极管是共阳极接法的,我们只需要将其初值不断的左移就会看到LED轮流的被点亮,也就实现了流水灯的功能。
图3-5流水灯模块图
3.3
图3-6 键控流水灯图
4
#include<reg51.h>
#define smg1 P0
#definelsd1P1
#define smg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
3.2.5
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。当其内部有一定电流通过时,就是发光。发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
1
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2
2.1
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。

可中断LED流水灯课程设计

可中断LED流水灯课程设计

摘要本设计是可中断LED流水灯的设计。

整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED灯的动态设计和开发过程。

通过该芯片控制一个行LED灯按一定顺序亮,文中详细介绍了LED显示的设计思路。

单片机控制系统程序采用单片机汇编语言进行编辑,通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。

当然流水灯一般只是在用芯片做控制时起修饰作用,不能很好体现单片机的强大功能。

这里的流水灯只是单片机应用中的最基础的一方面。

LED显示以其组构方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点在车站、证券所、运动场馆、交通干道及各种室内外显示场合的信息发布,公益宣传,环境参数实时,重大活动倒计时等等得到广泛的应用。

经实践证明,该系统显示误差小,性能稳定,结构合理,扩展能力强。

关键词:汇编语言;AT89C51单片机; LED;中断程序1绪论单片机的发展大致可分为四个阶段:第一阶段:单片机探索阶段。

以Intel公司MCS-48,Motorola公司6801为代表,属低档型8位机。

第二阶段:单片机完善阶段。

以Intel公司MCS-51,Motorola公司68HC05为代表,属高档型8位机。

此阶段,8位单片机体系进一步完善,特别是MCS-51系列单片机在世界和我国得到了广泛的应用,奠定了它在单片机领域的经典地位,形成了事实上的8位单片机标准结构。

第三阶段:8位机和16位机争艳阶段,也是单片机向微控制器发展的阶段。

此阶段Intel公司推出了16位的MCS-96系列单片机,世界其他芯片制造商也纷纷推出了性能优异的16位单片机,但由于价格不菲,其应用面受到一定的限制。

相反MCS-51系列单片机,由于其性能价格比高,却得到了广泛的应用,并吸引了世界许多知名制造厂商,竟相使用以80C51为内核,扩展部分测控系统中使用的电路技术、接口技术、A/D、D/A和看门狗等功能部件,推出了许多与80C51兼容的8位单片机。

实验五 广告流水灯中断控制

实验五 广告流水灯中断控制

实验五广告流水灯中断控制实验五广告流水灯中断控制一、实训目的1、用外部中断源的中断控制方法控制发光二极管亮灭。

2、学习外部中断技术的基本使用方法。

3、学习中断处理程序的编写方法。

二、实训预备知识1、单片机中断系统包括5个中断请求源,4个中断控制寄存器IE、IP、TCON、SCON用来控制中断的请求、中断的开关和各种中断源优先级的确定。

2、编写中断处理程序需要注意的问题是:(1)保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

(2)必须在中断处理程序中设定是否允许中断重入,即设置EX0或EX1位。

一般进入中断处理程序时应保护现场,在退出前恢复现场。

另外中断处理程序中涉及到关键数据的设置时应关闭中断,即设置时不允许中断重入。

三、实训设备:微机一台、实训箱、THKL-C51仿真器、扁平数据线和一条串行数据通信线。

四、实训内容(2)从PROTEUS库中选取元器件单击“P”按钮,在其左上角“Keywords”(关键字)一栏中输入以下元器件的关键字,将以下元器件添加到对象选择器中。

①AT89C51:单片机②RES:电阻③LED-GREEN:绿色发光二极管④CAP、CAP-ELEC:电容、电解电容⑤CRYSTAL:晶振⑥74LS04:反相器⑦BUTTON:按钮⑧SOUNDER:喇叭图4-2 单击“P”按钮(3)放置元器件:按照原理图合理放置元器件。

(4)放置电源和地(终端)单击工具栏中的终端按钮,在对象选择器中选取电源(POWER)、地(GROUND),用上述放置元器件方法分别放置于编辑区中。

(5)电路图连线系统默认自动扑捉和自动布线有效。

只要在两端点相继单击,便可画线。

画折线,在拐弯处单击;若中途想取消,可右双击或按“Esc”;若终点在空白初,左双击即可结束。

(6)设置、修改元器件的属性先右击后左击各器件,在弹出的属性编辑框中设置、修改它的属性。

(7)电气检测选择【Tools】/【Electrical Rule Check】菜单项,出现电气检查报告单,无错误,则用户可执行下一步。

用AT89C51单片机实现流水灯的控制设计[1]

用AT89C51单片机实现流水灯的控制设计[1]

用AT89C51单片机实现流水灯的控制设计[1] 用AT89C51单片机实现流水灯的控制设计当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

1.引言目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。

学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。

2.硬件组成按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。

因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

其具体硬件组成如图1所示。

点击看原图图1 流水灯硬件原理图从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。

因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED 灯便会一亮一暗的做流水灯了。

在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

(完整版)单片机毕业课程设计_外部中断控制灯移动

(完整版)单片机毕业课程设计_外部中断控制灯移动

课程设计任务书多级外部中断控制灯移动摘要:单片机的中断功能可以提高CPU的效率,利用它设计出不同优先级中断控制灯的移动。

验证在低优先级中断控制灯的移动中加入高优先级中断控制命令,则先执行高级中断,之后再完成低级中断控制灯的移动;在高优先级中断控制灯移动中加入低优先级中断,则不会影响灯的移动。

结果表明单片机可实现实时处理以满足实时控制要求,并且能及时处理故障,提高单片机的可靠性。

关键词:单片机外部中断控制灯优先级实时处理目录1设计背景 (5)1.1优点介绍 (5)1.2应用介绍 (5)2设计方案 (5)2.1电源设计 (5)2.2其它模块设 (5)3方案实施 (5)3.1电源 (5)3.2彩灯与单片机连接 (6)3.3 晶振及复位 (6)3.4 软件设计 (6)4 结果与结论 (6)4.1 软件设计 (6)4.2 整体测试 (6)5 收获与致谢 (7)6 参考文献 (7)7 附件 (7)1. 设计背景1.1单片机中断的优点中断可提高CPU的效率,可实现实时处理,满足实时控制要求。

中断功能,可及时处理故障,提高单片机的可靠性。

1.2单片机在控制灯规律变化上的应用用单片机控制LED灯变化在公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传等方面应用广泛,价格合理。

因此,掌握该项技术是很有必要的。

2.设计方案2.1电源模块设计采用220V-6V变压器提供6V交流电,通过2W10桥堆以及7805得到单片机所使用的5V直流电,同时采用1000uF电容起到稳定电路的作用。

2.2单片机及彩灯模块设计设计采用AT89S52单片机,P1口接8个彩灯,12、13管脚接两只开关作为外部中断源,选用12M Hz晶振;采用按键复位方式。

3. 方案实施3.1电源模块设计采用220V-6V变压器提供6V交流电,通过2W10桥堆以及7805得到单片机所使用的5V直流电,同时采用1000uF电容稳定电路。

3.2彩灯与单片机的连接令P1口输出低电平时对应LED灯亮,由此,将8只LED灯的阳极连接Vcc,阴极接P1口,并采用220欧的限流电阻。

最新单片机课程设计 外部中断控制流水灯变化

最新单片机课程设计 外部中断控制流水灯变化

单片机课程设计报告设计题目:外部中断控制流水灯变化姓名一.设计目的通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3口的俩管脚P3.2和P3.3第二功能,即外部中断来使CPU响应,达到控制流水灯的目的。

二.设计要求主程序实现8个灯从P2.0到P2.7依次亮灭,灯与灯之间间歇约0.5秒.当P3.3口是低电平时,灯从P2.7到P2.0依次亮灭,灯与灯之之间间歇约0.5秒.循环3次返回主程序.当P3.2口是低电平时,灯全灭,当P3.2口是高电平时,返回主程序.当同时使P3.2和P3.3为低电平时,灯全灭,因为外部中断0的优先级高于外部中断1的优先级. 三.MCS-51的硬件结构:四.P3口的状态P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设置第二功能。

五.中断传送方式:中断方式则是在外设为数据传送做好准备之后,就向CPU发出中断请求信号(相当于通知CPU)。

CPU接收到中断请求信号之后立即作出响应,暂停正在执行的原程序(主程序),而转去外设的数据输入输出服务,待服务完之后,程序返回。

CPU再继续执行被中断的原程序。

六.外部中断外部中断是指从单片机外部引脚输入请求信号。

输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为外部中断源,从引脚INT0、INT1输入。

外部中断请求、有两种触发方式:电平触发及跳变(边沿)触发。

这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。

七.电路原理逻辑图如下:P3.3 P3.2 灯亮情况0 0 全灭0 1 全灭1 0 从P2.0到P2.7依次亮灭1 1 从P2.7到P2.0依次亮灭八.实验硬件电路图如下九.程序流程图如下十.程序清单ORG 0000HAJMP STARTORG 0003HAJMP SERORG 0013HAJMP SER1ORG 0030HSTART: MOV I E,#85H ;外部中断0和1都开MOV I P,#01H ;外部中断0级优先高MOV TCON,#00H ;低电平出发MAIN: MOV A,#0FEH ;P2.0口亮MOV P2,AACALL TIMO ;延时RL A ;循环左移SJMP RESSER1: MOV R2,#18H ;循环3次MOV A,#0EFH ;P2.7口亮SER2: MOV P2,AACALL TIMO ;延时RR A ;循环右移DJNZ R2,SER2RETITIMO: MOV R5,#50 ;延时子程序LOOP1: MOV R6,#100LOOP2: MOV R7,#50LOOP3: DJNZ R7,LOOP3DJNZ R6,LOOP2DJNZ R5,LOOP1RETSER: MOV P2,#0FFH ;灯全灭RETIEND十一.课程设计总结:通过本次课程设计,发现了学习中一些不足的地方,及时进行了补充学习。

单片机课程设计-单片机控制流水灯

单片机课程设计-单片机控制流水灯

郑州科技学院《单片机》课程设计题目单片机控制流水灯学生姓名 XXX专业班级电气工程及其自动化X班学号 201XXXXXX院(系)电气工程学院指导教师 XX 完成时间 2015年XX 月XX日绪论当今时代是一个新技术层出不穷,不断更新的时代,在电子领域尤其是电气自动化智能系统控制领域,传统的电子元器件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所代替。

目前,一个学习以及对单片机的应用高潮正在工厂、学校及企事业单位大规模地兴起。

本次课程设计用AT89C52单片机自制了一款简易的花样流水灯,介绍了其硬件电路,仿真电路及软件编程方法,在实践中了解单片机的自动控制功能和各个管脚的作用。

该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。

学习单片机的最有效方法就是理论与实践相结合,现在我设计单片机控制流水灯,需要更深的去了解单片机的很多功能和作用,努力的去查找资料,才能把它有效地利用到电路中发挥它的作用。

本课题将以发光二极管作为发光器件,对单片机进行程序设计进而实现自动控制,实现一个简易的花样流水灯设计目录1.课程设计的目的 (4)2.设计的目的和要求 (4)3.设计的方案与论证 (4)4.元器件的介绍 (5)4.1单片机 (5)5.硬件电路设计 (7)5.1控制电路 (7)5.2时钟电路 (9)5.3复位电路 (10)6.软件电路设计 (11)7.硬件的安装与调试 (12)8.总结 (12)参考文献 (13)附录1:总体电路原理图 (14)附录2:实物图 (15)附录3:元器件清单 (16)附录4:源程序 (17)1.课程设计的目的1、理论与实践相结合,更好的运用自己学过的知识,提高自己动手操作的能力。

2、提高自己自主学习的能力,通过查阅相关资料,进而提高自己的知识储备。

3、可以提高自己的动手能力,提前为以后走向社会,适应社会而做准备。

4、在自己动手的同时,遇到不懂的可以请教老师,可以查阅资料,也可以通过自己的思考解决问题,这些都可以提高自己对理论知识的理解和对课外知识的扩展,从而提高以后工作的社会竞争力。

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

西南石油年夜学之迟辟智美创作实习总结陈说 实习类型生产实习 实习单元 西南石油年夜学实习基地 实习起止时间 2018 年 7 月 7 日至 2018 年 7 月 16 日 指导教师刘东明、孙鉴 所在院(系) 电子科学学院 班 级电子科学与技术 15-2 学生姓名 学 号 15090124022018 年 7 月 16 日目录第 1 章 按键控制流水灯设计 1 1.1 实习目的错误!未定义书签。

1.2 实习要求错误!未定义书签。

第 2 章 电路工作原理 22.5 本章小结 6 第 3 章 C 法式设计 73.1 法式设计流程图 73.3 本章小结 9 总结及体会 10 参考文献 11 附录 12第1章 按键控制流水灯设计1.1 实习目的本次实习以 STC89C52 单片机为控制核心.通过它实现对八盏 LED 灯的亮灭进 行设定,并在设定完成之后能够依照之前的设定实现流水灯效果.外部电路为按键 控制流水灯.P0 口控制八盏灯,P1 口控制矩阵键盘,P2 口控制自力按键,法式利 用单片机内部计时器中断实现流水效果.要求流水灯能够自行设定、暂停、复位, 工作稳定,可靠性高.生产实习的主要目的是培养理论联系实际的能力,提高实际入手把持能力.本 专业的生产实习旨在广泛了解实际单片机电子产物工作的全过程,熟悉电子产物 的主要技术管理模式,并在实习的把持过程中学习掌握电子产物的焊接装置调试 的实际把持技能.巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素 质年夜学本科人才打下需要的基础.透过学习,是理论与实际相结合,能够使学生 加深对所学知识的理解,并为后续专业课的学习带给需要的感性知识,同时直接 了解本业的生产过程和生产资料,为将来走上工作岗位带给需要的实际生产知识.1.2 实习要求1.深入学习单片机开发软件 Keil 的使用,熟悉单片机电路设计,根据实际应 用电路对法式进行调试.2.熟悉单片机硬件开发平台的应用,掌握单片机编程器、仿真器的使用,能 检查和分析软硬件故障.3.体会单片机内部资源的功能使用,以单片机开发板现有资源进行应用性设 计.掌握单片机经常使用外围器件的使用.4.对去年生产实习焊接的 51 开发板的法式有更深入的了解.第2章 电路工作原理2.1 STC89C52 单片机工作原理单片机(Microcontrollers)是一种集成电路芯片,是采纳超年夜规模集成电路 技术把具有数据处置能力的中央处置器 CPU、随机存储器 RAM、只读存储器 ROM、 多种 I/O 口和中断系统、按时器/计数器等功能(可能还包括显示驱动电路、脉宽 调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个 小而完善的微型计算机系统.例如 STC89C52 单片机是通过 32 个输入输出口的高低电平变动来实现对外部 电路的控制,痛过相应的法式实现对 32 个输入输出口的控制,这就是单片机工作 的最基来源根基理.如图 2-1 所示为 STC89C52 单片机工作的最小系统电路图.图 2-1 STC89C52 最小工作系统 整个电路使用 5V 直流电源供电,其中复位电路能够使单片机复位;晶振电路 相当于单片机的心脏,为单片机提供 12MHz 的高频脉冲使单片机正常工作; MAX232 是将单片机输出的 TTL 电平转换成 PC 机能接收的 232 电平或将 PC 机输 出的 232 电平转换成单片机能接收的 TTL 电平,实现单片机与 PC 机之间的通信, 以便于下载法式.2.2 LED 工作原理LED(light-emitting diode),即发光二极管,俗称 LED 小灯,51 开发板使用 的是普通贴片发光二极管.这种二极管通常的正向导通电压是 1.8~2.2V 之间,工作 电流一般在 1~20mA 之间.其中当电流在 1~5mA 之间变动时,随着通过 LED 的电 流越来越年夜,肉眼会感觉到这个灯越来越亮,而当电流从 5~20mA 变动时,看 到的发光二极管的亮度变动不明显了.当电流超越 20mA 时,LED 就有烧坏的危险. 所以在 51 开发板的使用中需要根据相应的电流参数设计一个与 LED 串连的限流 电阻.如图 2-2 所示为单片机 I/O 口控制 LED 的电路原理图.图 2-2 单片机控制 LED 电路图 图中 PR2 为排阻,在电路中起到限流作用,防止 LED 被烧毁.因为单片机是可 以编程控制的,即 P00~P07 的高低电平也是能够控制的,所以对应的 8 个 LED 的 亮灭状态也是能够控制的,这就到达了单片机控制 LED 的目的.2.3 按键工作原理 2.3.1 自力按键工作原理自力式按键比力简单,它们各自与自力的输入线相连接,如图 2-3 所示.图 2-3 自力式按键原理图 4 条输人线接到单片机的 I/O 口上,当按健 K1 按下时,+5V 通过电阻然后再 通过按键 K1 最终进人 GND 形成一条通路,这条线路的全部电压都加到这个电阻 上,P20 这个引脚就是个低电平.当松开按健后,线路断开,就不会有电值通过, P20 和+5V 就应该是等电位,是个高电平.我们就可以通过 P20 这个 10 口的高低电 平来判断是否有按键按下.2.3.2 矩阵按键工作原理在某一个系统设计中,如果需要使用很多按键时,做成自力按键会占用年夜 量 I/O 口,因此引用了矩阵键盘的设计.如图 2-4 所示为 51 开发板上的矩阵按键电 路原理图,使用 8 个 I/O 口来实现 16 个按键.图 2-4 矩阵按键原理图 在法式设计中分别用四个 I/O 口扫描 4 行,另外 4 个扫描 4 列,确定了按键在 哪行哪列也就确定了按键的具体位置.2.4 整体电路图如图 2-5 所示为键盘控制 LED 流水灯整体电路图.图 2-5 总电路原理图2.5 本章小结本章主要介绍了单片机最小系统、LED 工作原理、按键工作原理.并从硬件电 路的设计动身,简单分析单片机控制 LED 的工作过程.理论分析基本完成,接下来 就是具体的法式设计与调试,通过具体的法式来实现相应的功能,这也是单片机 开发中最具技术含量的环节之一.第3章 C 法式设计3.1 法式设计流程图如图 3-1 所示为主法式流程图.开始 开计时器中断K1 是否按下 否是扫描矩阵键盘选 择需要点亮的 LED是K2 是否按下 否K3 是否按下 否是保管选择的数据 择需要点亮的 LED计时器中断法式选择 数据实现 LED 流水灯图 3-1 法式设计框图 主法式由 3 个自力按键控制,K1,K2 和 K3.开始从主函数执行法式语句,不 竭循环扫描按键,当 K1 按下时,进入选择状态,法式会不竭地扫描矩阵键盘,通 过矩阵键盘选择需要点亮的 LED;选择结束后按下 K2,法式会将选定后的数据送 入中断法式,中断法式根据接收的数据选泽对应的 LED 实现流水灯效果;当按下K3 后法式又会进入矩阵键盘扫描重新选择 LED.3.2 实验结果如图 3-2 所示,当按下 K1 后进入选择定状态.图 3-2 选择 LED 如图 3-2,控制矩阵键盘分别选择了第 1,6,8 盏灯. 再按下 K2 键,让选择的第 1,6,8 盏灯实现流水灯效果.如图 3-3 所示.图 3-3 流水灯 如图 3-3,按下 K2 之后,LED 由之前第 1,6,8 盏灯亮酿成第 1,2,7 盏灯 亮,实现了流水灯右移的效果. 当按下 K3 键,实验结果如图 3-4 所示.图3-4回到初始状态由图3-4可知,当按下K3键之后,法式又回到了设定LED的状态.3.3本章小结由实验结果可以看出,本次单片机课程设计已到达预期要求,电路工作稳定,满足设计要求.在整个设计过程中,法式设计与调试最为复杂,呈现过按键灯不亮,没有呈现滚动流水等现象等一系列法式问题.但最终在不竭地检查、调试之后,问题也逐渐获得解决.最终实现按键控制流水灯的效果.总结及体会本次设计通过对单片机进行编程控制,进而控制外部电路,胜利地设计了八个按键控制八盏灯亮灭实现流水灯的效果.深入了解到单片机开发软件Keil的使用,熟悉单片机电路设计,根据实际应用电路对法式进行调试.熟悉单片机硬件开发平台的应用,掌握了单片机编程器、仿真器的使用,能检查和分析软硬件故障.体会到单片机内部资源的功能使用,以单片机开发板现有资源进行应用性设计.通过这次实习使我进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、按时/控制、法式设计、应用开发、等基本理论知识的理解,提高单片机应用于技术的实践把持技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和立异的基天性力,为结业后从事与单片机相关的工作打下一定的基础.参考文献[1]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:高等教育出书社,2006.[2]阎石.数字电子技术基础(第五版)[M].北京:高等教育出书社,2006.[3]韩建,全星慧,周围.电子技术课程设计指导[M].哈尔滨:哈尔滨工程年夜学出书社,2014.[4]黎小桃.数字电子电路分析与应用[M].北京:北京理工年夜学出书社,2014.[5]高吉祥. 电子技术基础实验与课程设计[M].北京:电子工业出书社,2002.[6]陈明义.电子技术课程设计实用教程(第3版) [M]. 长沙:中南年夜学出书社,2010.[7]程春雨. 模拟电子技术实验与课程设计[M].北京:电子工业出书社,2016.[8]宋雪松,李东明,崔长胜. 手把手教你学51单片机(C语言版)[M]. 北京:清华年夜学出书社,2014.附录:#include <reg52.h>#include <intrins.h>#define KEY P1sbit k1=P2^0;sbit k2=P2^1;sbit k3=P2^2;sbit k4=P2^3;unsigned char LED=0x00,LED1=0x00;unsigned char x=0;unsigned char KeyValue;unsigned char A1=0x00,A2=0x00,A3=0x00,A4=0x00,A5=0x00,A6=0x00,A7=0x00,A8=0x00;void Delay10ms(unsigned int c);void KeyDown(); //矩阵键盘检测void kongzhil();void kongzhi2();void main(void){ TMOD=0x01; //按时器工作状态为1 TH0=(65536-50000)/256;TL0=(65536-50000)%6;EA=1; //开总中断ET0=1; //开按时器中断TR0=1; //开启按时器while(1){ int n=0;if(k1==0){Delay10ms(1);if(k1==0)n=1;}if(k3==0){Delay10ms(1);if(k3==0)n=3;}if(k4==0){Delay10ms(1);if(k4==0)n=4;}switch(n){case 1:KeyDown();break;case 3:kongzhil();break;case 4:kongzhi2();break;default:break;}}}void KeyDown(void){ int k=1;while(k){char a=0;KEY=0x0f;if(KEY!=0x0f){Delay10ms(1); //延时消抖if(KEY!=0x0f){KEY=0X0F;switch(KEY) //扫描行{case(0X07): KeyValue=0;break;case(0X0b): KeyValue=4;break;case(0X0d): KeyValue=8;break;case(0X0e): KeyValue=12;break;}KEY=0XF0;switch(KEY) //扫描列{case(0X70): KeyValue=KeyValue+3;break;case(0Xb0): KeyValue=KeyValue+2;break;case(0Xd0): KeyValue=KeyValue+1;break;case(0Xe0): KeyValue=KeyValue;break;}while((a<50) && (KEY!=0xf0)) //松手检测{Delay10ms(1);a++;}switch(KeyValue) //选择需要亮的灯{case(0):A1=~A1;break;case(1):A2=~A2;break;case(2):A3=~A3;break;case(3):A4=~A4;break;case(4):A5=~A5;break;case(5):A6=~A6;break;case(6):A7=~A7;break;case(7):A8=~A8;break;default:break;}}}if (A1==0xff) //保管数据(LED1=LED1|0x80);else if(A1==0x00)(LED1=LED1&0x7f);if (A2==0xff)(LED1=LED1|0x40);else if(A2==0x00)(LED1=LED1&0xbf);if (A3==0xff)(LED1=LED1|0x20);else if(A3==0x00)(LED1=LED1&0xdf);if (A4==0xff)(LED1=LED1|0x10);else if(A4==0x00)(LED1=LED1&0xef);if (A5==0xff)(LED1=LED1|0x08);else if(A5==0x00)(LED1=LED1&0xf7);if (A6==0xff)(LED1=LED1|0x04);else if(A6==0x00)(LED1=LED1&0xfb);if (A7==0xff)(LED1=LED1|0x02);else if(A7==0x00)(LED1=LED1&0xfd);if (A8==0xff)(LED1=LED1|0x01);else if(A8==0x00)(LED1=LED1&0xfe);LED=LED1;if(k2==0){Delay10ms(1);if(k2==0){k=0;LED=LED1;};};if(k4==0){Delay10ms(1);if(k4==0){k=0;kongzhi2();};};}}void kongzhil(void){int m=1;LED1=LED,LED=0x00;while(m){if(k3==0){Delay10ms(1);if(k3==0){m=0,LED=LED1;};}}}void kongzhi2(void){LED1=0x00;LED=0x00;A1=0;A2=0;A3=0;A4=0;A5=0;A6=0;A7=0;A8=0;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%6;x++;if(x==6) //6*50MS=300MS{x=0;P0=LED;LED = _crol_(LED,1);//if(++i==8) i=0;}}void Delay10ms(unsigned int c) {unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告
设计题目:外部中断控制流水灯变化
姓名
一.设计目的
通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3口的俩管脚和第二功能,即外部中断来使CPU响应,达到控制流水灯的目的。

二.设计要求
主程序实现8个灯从到依次亮灭,灯与灯
之间间歇约秒.当口是低电平时,灯从到依次亮灭,灯与灯之之间间歇约秒.循环3次返回主程序.当口是低电平时,灯全灭,当口是高电平时,返回主程序.当同时使和为低电平时,灯全灭,因为外部中断0的优先级高于外部中断1的优先级.
三.MCS-51的硬件结构:
四.P3口的状态
P3口是双功能口,默认为第一功能(通用I/O口),通过编程可设置第二功能。

五.中断传送方式:
中断方式则是在外设为数据传送做好准备之后,就向CPU发出中断请求信号(相当于通知CPU)。

CPU接收到中断请求信号之后立即作
出响应,暂停正在执行的原程序(主程序),而转去外设的数据输入输
出服务,待服务完之后,程序返回。

CPU再继续执行被中断的原程序。

六.外部中断
外部中断是指从单片机外部引脚输入请求信号。

输入/输出的中断请求、实时事件的中断请求、掉电和设备故障的中断请求都可以作为
外部中断源,从引脚INT0、INT1输入。

外部中断请求、有两种触发方式:电平触发及跳变(边沿)触发。

这两种触发方式可以通过对特殊功能寄存器TCON编程来选择。

七.电路原理逻辑图如下:
灯亮情况
00全灭
01全灭
10从到依次亮灭
11从到依次亮灭八.实验硬件电路图如下
九.程序流程图如下
十.程序清单
ORG 0000H
AJMP START
ORG 0003H
AJMP SER
ORG 0013H
AJMP SER1
ORG 0030H
START: MOV IE,#85H ;外部中断0和1都开
MOV IP,#01H ;外部中断0级优先高
MOV TCON,#00H ;低电平出发MAIN: MOV A,#0FEH ;口亮
MOV P2,A
ACALL T IMO ;延时
RL A ;循环左移
SJMP RES
SER1: MOV R2,#18H ;循环3次
MOV A,#0EFH ;口亮
SER2: MOV P2,A
ACALL TIMO ;延时
RR A ;循环右移
DJNZ R2,SER2
RETI
TIMO: MOV R5,#50 ;延时子程序LOOP1: MOV R6,#100
LOOP2: MOV R7,#50
LOOP3: DJNZ R7,LOOP3
DJNZ R6,LOOP2
DJNZ R5,LOOP1
RET
SER: MOV P2,#0FFH ;灯全灭
RETI
END
十一.课程设计总结:
通过本次课程设计,发现了学习中一些不足的地方,及时进行了补充学习。

更进一步理解了本门课程的意义与作用,同时对汇编语言也有了更进一步的理解。

设计中发现,在使用汇编语言编程运算比较繁琐,而且运算范围及运算速度很受限制;而它的长处却在于进行控制,而语言的使用本身并不是很难,关键是逻辑思路要清晰。

掌握一门语言不难,训练一种良好的分析问题的思路却非一时之功。

通过使用STC89C51RC 单片机实验板,也加深了对硬件电路的理解。

使用硬件时遇到一定问题,体现了动手能力,实践能力较差,通过与同学讨论学习,在辩论中解决了问题,提升了能力。

十二.参考文献如下:
牛昱光主编《单片机原理与接口技术》电子工业出版社
51单片机实验指导书
胡汉才主编《单片机原理及其应用》清华大学出版社。

相关文档
最新文档