资源描述
流水灯课程设计报告 k 课程设计 设计题目 流水灯 专业班级 07电气(六)1 目 录引言.31课程设计的目的.42课程设计的要求.42.1最小系统.5380C51芯片分析.54.程序流程图.95.仿真图.106.原理图.107.程序语言.108分析和总结.178.1分析.178.2总结.278.3致谢.279参考文献.1810附录.19引言随着计算机技术的迅猛发展,计算机越来越广泛的应用与人们工作和生活的各个领域。作为计算机领域里的一个重要方面,单片机及其应用技术近年来也得到了长足发展。单片机技术被广泛的应用到工业自动控制、智能仪表、数据采集、通讯以及家用电器等领域。单片机以其与通用微机完全不同的发展模式,不短满足工业测控、恶劣环境下可靠的运用的要求。单片机已成为现代工业领域中不可缺少的重要角色。本报告主要是以8位的单片机MCS-51为主,介绍了流水灯的程序的编写,目的、要求、芯片介绍等等1课程设计的目的课程设计是本专业集中实践环节的主要内容之一。训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。通过本课程设计,主要达到以下目的:1.使学生增进对单片机的感性认识,加深对单片机理论方面的理解。2.使学生掌握单片机的内部功能模块的应用掌握89c51单片机和Keil c51集成开发环境在硬件仿真条件下各参数的设置。3.使学生了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。2课程设计的要求1.学生需认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉各种设计规范的有关内容,掌握89c51单片机和Keil c51集成开发环境在硬件仿真条件下各参数的设置。2.课程设计的成果为“课程设计报告”。课程设计报告内容要正确,概念要清楚,完成任务书所规定的内容,附有原理图及程序流程图,程序清单,文字要通顺,书写要工整,设计图纸必须符合规范。2.1 最小系统的简介对于片内带有程序存储器的MCS_51单片机,将单片机以及与之相匹配的时钟电路、复位电路组合在一起,利用芯片内部的中断系统、定时器计数器、并行接口、串行接口就可以组成完整的单片机系统,再接上外部设备,就可以对其进行检测和控制了。这种维持单片机运行的最简单系统,则称为最小应用配置系统。简单的说,其由时钟电路和复位电路两部分组成。时钟电路分为内部时钟方式和外部时钟方式。复位电路分为上电自动复位和按键手动复位。本课题我们采用外部时钟方式和按键手动复位的组合来做单片机的最小系统。用两个30pf无极电容和一个12M的晶振来组合成一个外部时钟用一个电阻和有极电容,一个按键,组合成一个复位。按下按键时,9号角由低电平变为高电平。380C51芯片分析80S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。此外,80C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。80C51的芯片引脚图如下:图1.1 80C51引脚图各引脚的说明和功能分析如下:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态, 特殊功能寄存器 初始态 特殊功能寄存器 初始态 ACC 00H B 00H PSW 00H SP 07H DPH 00H TH0 00H DPL 00H TL0 00H IP xxx00000B TH1 00H IE 0xx00000B TL1 00H TMOD 00H TCON 00H SCON xxxxxxxxB SBUF 00H P0-P3 1111111B PCON 0xxxxxxxB 8051的初始态(4-2-2)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。4.程序流程图开始开中断结束结束处理LED灯灭根据键值运行不同模式跑马灯有键按下? 5.仿真图6.原理图7.程序语言 ORG 0000H JMP START ORG 0003H JMP EXT0 ORG 0013H JMP EXT1 ORG 0030HSTART: SETB EX0 SETB EX1 SETB PX0 CLR IT0 SETB EA MOV SP,#50H MOV A,#0FFH MOV R1,#08H CLR C SETB P0.0LOOP1: RLC A MOV P1,A MOV P2,A MOV P0,A CALL DELAY DJNZ R1,LOOP1 MOV A,#0FFH MOV R1,#07H CLR CLOOP2: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CALL DELAY DJNZ R1,LOOP2 MOV A,#0FFH MOV R1,#06H CLR CLOOP3: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CALL DELAY DJNZ R1,LOOP3 MOV A,#0FFH MOV R1,#05H CLR CLOOP4: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CLR P1.5 CLR P2.5 CLR P0.5 CALL DELAY DJNZ R1,LOOP4 MOV A,#0FFH MOV R1,#04H CLR CLOOP5: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CLR P1.5 CLR P2.5 CLR P0.5 CLR P1.4 CLR P2.4 CLR P0.4 CALL DELAY DJNZ R1,LOOP5 MOV A,#0FFH MOV R1,#03H CLR CLOOP6: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CLR P1.5 CLR P2.5 CLR P0.5 CLR P1.4 CLR P2.4 CLR P0.4 CLR P1.3 CLR P2.3 CLR P0.3 CALL DELAY DJNZ R1,LOOP6 MOV A,#0FFH MOV R1,#02H CLR CLOOP7: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CLR P1.5 CLR P2.5 CLR P0.5 CLR P1.4 CLR P2.4 CLR P0.4 CLR P1.3 CLR P2.3 CLR P0.3 CLR P1.2 CLR P2.2 CLR P0.2 CALL DELAY DJNZ R1,LOOP7 MOV A,#0FFH MOV R1,#01H CLR CLOOP8: RLC A MOV P1,A MOV P2,A MOV P0,A CLR P1.7 CLR P2.7 CLR P0.7 CLR P1.6 CLR P2.6 CLR P0.6 CLR P1.5 CLR P2.5 CLR P0.5 CLR P1.4 CLR P2.4 CLR P0.4 CLR P1.3 CLR P2.3 CLR P0.3 CLR P1.2 CLR P2.2 CLR P0.2 CLR P1.1 CLR P2.1 CLR P0.1 CALL DELAY DJNZ R1,LOOP8 MOV R2,#03HLOOP9: MOV P1,#00H MOV P2,#00H MOV P0,#00H CALL DELAY MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH CALL DELAY DJNZ R2,LOOP9 MOV A,#00H SETB C MOV R1,#08HX1: RLC A MOV P1,A MOV P2,A MOV P0,A CALL DELAY DJNZ R1,X1 MOV A,#00H SETB C MOV R1,#07HX2: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 CALL DELAY DJNZ R1,X2 MOV A,#00H SETB C MOV R1,#06HX3: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 CALL DELAY DJNZ R1,X3 MOV A,#00H SETB C MOV R1,#05HX4: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 SETB P1.5 SETB P2.5 SETB P0.5 CALL DELAY DJNZ R1,X4 MOV A,#00H SETB C MOV R1,#04HX5: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 SETB P1.5 SETB P2.5 SETB P0.5 SETB P1.4 SETB P2.4 SETB P0.4 CALL DELAY DJNZ R1,X5 MOV A,#00H SETB C MOV R1,#03HX6: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 SETB P1.5 SETB P2.5 SETB P0.5 SETB P1.4 SETB P2.4 SETB P0.4 SETB P1.3 SETB P2.3 SETB P0.3 CALL DELAY DJNZ R1,X6 MOV A,#00H SETB C MOV R1,#02HX7: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 SETB P1.5 SETB P2.5 SETB P0.5 SETB P1.4 SETB P2.4 SETB P0.4 SETB P1.3 SETB P2.3 SETB P0.3 SETB P1.2 SETB P2.2 SETB P0.2 CALL DELAY DJNZ R1,X7 MOV A,#00H SETB C MOV R1,#01HX8: RLC A MOV P1,A MOV P2,A MOV P0,A SETB P1.7 SETB P2.7 SETB P0.7 SETB P1.6 SETB P2.6 SETB P0.6 SETB P1.5 SETB P2.5 SETB P0.5 SETB P1.4 SETB P2.4 SETB P0.4 SETB P1.3 SETB P2.3 SETB P0.3 SETB P1.2 SETB P2.2 SETB P0.2 SETB P1.1 SETB P2.1 SETB P0.1 CALL DELAY DJNZ R1,X8 MOV R2,#03HX9: MOV P1,#00H MOV P2,#00H MOV P0,#00H CALL DELAY MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH CALL DELAY DJNZ R2,X9 JMP START DELAY: MOV R3,#40D1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RETEXT0: MOV P0,#00H MOV P1,#0FFH MOV P2,#00H CALL DELAY MOV P0,#0FFH MOV P1,#00H MOV P2,#00H CALL DELAY MOV P0,#00H MOV P1,#00H MOV P2,#00H CALL DELAY MOV P0,#0FFH MOV P1,#00H MOV P2,#00H CALL DELAY MOV P0,#00H MOV P1,#00H MOV P2,#00H CALL DELAY MOV P0,#00H MOV P1,#00H MOV P2,#0FFH CALL DELAY RETIEXT1: PUSH ACC PUSH PSW MOV P2,#0FFH MOV P1,#0FFH MOV P0,#0FFH MOV 30H,#00H MOV R6,#08H MOV A,#0FFH CLR CLOOP33:RLC A MOV P1,A MOV P2,A MOV P0,A INC 30H CALL DELAY DJNZ R6,LOOP33 MOV R7,#06H MOV 31H,#08H LOOP34:RRC A MOV P2,A MOV P1,A MOV P0,A DEC 31H CALL DELAY DJNZ R7,LOOP34 MOV P1,#00H MOV P2,#00H MOV P0,#00H CALL DELAY MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH CALL DELAY MOV P1,#00H MOV P2,#00H MOV P0,#00H CALL DELAY MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH CALL DELAY MOV P1,#00H MOV P2,#00H MOV P0,#00H CALL DELAY MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH CALL DELAY POP PSW POP ACC RETI END 流水灯 K8分析和总结本次课程实习我虽然用了一个星期的时间就全部做完,但整个过程我都认真的完成了,而且从中收获很多。可以总结为以下的几点:8.1分析 在这次课程设计中,我们也遇到了一些困难。主要是在刚开始使用ISIS 7 Professional软件仿真电路时,仿真出来的电路达不到预定效果,经过老师的讲解,才仿真成功。连接实物图是对80C51掌握的不熟悉,导致做实验速度较慢。但是经过同学们的查找资料,掌握方法,进行了焊接,最后实验终于获得了成功。 8.2总结通过此次为期一周的课程设计,我加深了对单片机以及汇编语言的认识和理解,使各部分的知识得到了进一步的巩固。将平时学的理论知识真正应用到实际中,实现了学与用相结合,应用单片机这一开发环境,软硬件结合来达到设计一实物的目的我们通过选择的题目,根据要求进行课程设计,运用所学知识将其付诸实践来完成。这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力,需要考虑实际中的很多问题。有些知识在理论上可能完全没错但到了实际中则不然。在实习中经常会遇到一些自己可能暂时无法想明白的问题,在设计时和同学相互交流各自的想法是很重要的,我们可以从交流中获得不同的主意,并在大家的商讨中选择最优方案最终一定会得到最好的设计方法。8.3致谢我认为在这次试验中每一个同学都付出了自己的辛苦劳动,而我们也在同学们的互相帮助和老师指导之下收获了成果,此次课设还锻炼了我们的动手能力,开阔了我们的思维境界,使我们的知识更丰富,不仅加深了我们对所学专业的认识,更增加了我们对所学专业的兴趣!9参考文献【1】 姚福安电子电路设计与实践山东科学技术出版社,2001【2】 涂时亮单片机软件设计技术重庆科技文献出版社,1987【3】 张毅刚新编MCS51实用汇编程序设计哈尔滨工业大学出版社,2003【4】 康华光电子技术基础高教出版社,2003【5】 胡汉才单片机原理及接口技术清华大学出版社,199610附录附录1 仿真图附录2 原理图附录3实物图
展开阅读全文