流水灯课程设计

时间:2024.5.2

         

1.课程设计的目的··· 3

2.课程设计的要求··· 3

3.AT89C51芯片分析··· 4

4.程序流程图··· 8

5.原理图··· 9

6.程序语言··· 9

7.分析和总结··· 12

7.1分析·· 12

7.2总结·· 12

7.3体会·· 13

8.参考文献··· 13


1.课程设计的目的

课程设计是本专业集中实践环节的主要内容之一。训练正确地应用单片机,培养解决工业控制、工业检测等领域具体问题的能力。学生通过所做课题,熟悉单片机应用系统开发研制的过程,软硬件设计的工作方法、内容及步骤,对学生进行基本技能训练。例如组成系统、编程、调试、绘图等。使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。

通过本课程设计,主要达到以下目的:

1.使学生增进对单片机的感性认识,加深对单片机理论方面的理解。

2.使学生掌握单片机的内部功能模块的应用掌握89c51单片机和Keil c51集成开发环境在硬件仿真条件下各参数的设置。

3.使学生了解和掌握单片机应用系统的软/硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。

2.课程设计的要求

1.学生需认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉各种设计规范的有关内容,掌握89c51单片机和Keil c51集成开发环境在硬件仿真条件下各参数的设置。

2.课程设计的成果为“课程设计报告”。课程设计报告内容要正确,概念要清楚,完成任务书所规定的内容,附有原理图及程序流程图,程序清单,文字要通顺,书写要工整,设计图纸必须符合规范。

3.AT89C51芯片分析

ATMEL的AT89S51是一种高效微控制器,将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

AT89C51的芯片引脚图如下:

图1.1 AT89C51引脚图

各引脚的说明和功能分析如下:

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)的状态,

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.程序流程图

 

 

5.原理图

6.程序语言


    


 UpDown   EQU 00H                                    ;上下行标志

        StartEnd EQU 01H                                ;起动及停止标志

        LAMPCODE EQU 21H                            ;存放流动的数据代码

        ORG      0000H

        AJMP     MAIN

        ORG      30H

MAIN:

        MOV SP,#5FH

        MOV P1,#0FFH

        CLR UpDown                                     ;启动时处于向上的状态

        CLR StartEnd                                      ;启动时处于停止状态

        MOV LAMPCODE,#0FEH                           ;单灯流动的代码

LOOP:

        ACALL KEY                                      ;调用键盘程序

        JNB F0,LNEXT                                    ;如果无键按下,则继续

        ACALL KEYPROC                                 ;否则调用键盘处理程序

LNEXT:

        ACALL LAMP                                     ;调用灯显示程序

        AJMP LOOP                                       ;反复循环,主程序到此结束

DELAY:

        MOV R7,#10

D1:     MOV R6,#100

        DJNZ R6,$

        DJNZ R7,D1

        RET

;---------延时程序,键盘处理中调用

KEYPROC:

        MOV  A,B                                        ;从B寄存器中获取键值

        JB   ACC.2,KeyStart                               ;分析键的代码,某位被按下,则该位为1

        JB   ACC.3,KeyOver

        JB   ACC.4,KeyUp

        JB   ACC.5,KeyDown

        AJMP KEY_RET

KeyStart:

        SETB StartEnd                                     ;第一个键按下后的处理

        AJMP KEY_RET

KeyOver:

        CLR StartEnd                                     ;第二个键按下后的处理

        AJMP KEY_RET

KeyUp:

        SETB UpDown                                    ;第三个键按下后的处理

        AJMP KEY_RET

KeyDown:

        CLR UpDown                                     ;第四个键按下后的处理

KEY_RET:

         RET

KEY:

       CLR F0                                           ;清F0,表示无键按下。

       ORL P0,#00111100B                                ;将P3口的接有键的四位置1

       MOV A,P0                                        ;取P3的值

       ORL A, #11000011B                                ;将其余4位置1

       CPL A                                            ;取反

       JZ  K_RET                                       ;如果为0则一定无键按下

       ACALL DELAY                                    ;否则延时去键抖

       ORL P0,#00111100B

       MOV A,P0

       ORL A,#11000011B

       CPL A

       JZ K_RET

       MOV B,A                                      ;确实有键按下,将键值存入B中

       SETB F0                                         ;设置有键按下的标志

K_RET:

       ORL P0,#00111100B                                ;此处循环等待键的释放

       MOV A,P0

       ORL A,#11000011B

       CPL A

       JZ K_RET1                                       ;直到读取的数据取反后为0说明键释放了,才从键盘处理程序中返回

       AJMP K_RET

K_RET1:

        RET

;-----------------------------------

D500MS:                                                ;流水灯的延迟时间

       PUSH PSW

       SETB RS0

       MOV R7,#5                                       ;如果用实验仿真板,该值可根据你的机器运行情况更改,在1-255之间

D51:

       MOV R6,#250

D52:

       MOV R5,#200

D53:

       DJNZ R5,D53

       DJNZ R6,D52

       DJNZ R7,D51

       POP PSW

       RET

;-----------------------------------

LAMP:

      JB StartEnd,LampStart                                 ;如果StartEnd=1,则启动

      MOV P1,#0FFH

      AJMP LAMPRET                                     ;否则关闭所有显示,返回

LampStart:

      JB UpDown,LAMPUP                                 ;如果UpDown=1,则向上流动

      MOV A,LAMPCODE

      RL A                                                ;向上移动实际就是左移位

      MOV LAMPCODE,A

      MOV P1,A

      LCALL D500MS

      AJMP LAMPRET

LAMPUP:

      MOV A,LAMPCODE

      RR A                                               ;向下流动实际就是右移

      MOV LAMPCODE,A

      MOV P1,A

      LCALL D500MS

LAMPRET:

       RET

       END


             7.分析和总结

本次课程实习我虽然用了二个星期的时间就全部做完,但整个过程我都认真的完成了,而且从中收获很多。可以总结为以下的几点:

7.1分析

     在这次课程设计中,我们也遇到了一些困难。主要是在刚开始使用ISIS 7 Professional软件仿真电路时,仿真出来的电路达不到预定效果,经过老师的讲解,才仿真成功。连接实物图是对MC89C51掌握的不熟悉,导致做实验速度较慢。但是经过同学们的查找资料,掌握方法,进行了焊接,最后实验终于获得了成功。

7.2总结

通过此次为期两周的课程设计,我加深了对单片机以及汇编语言的认识和理解,使各部分的知识得到了进一步的巩固。将平时学的理论知识真正应用到实际中,实现了学与用相结合,应用单片机这一开发环境,软硬件结合来达到设计一实物的目的

我们通过选择的题目,根据要求进行课程设计,,运用所学知识将其付诸实践来完成。这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力,需要考虑实际中的很多问题。有些知识在理论上可能完全没错但到了实际中则不然。

因为这是是第一次用焊接电路板,虽然之前的课内实验也用过,但当时的运用也只是插些导线和电阻电容之类的,用了电路板的很小部分。直接自己焊接电路板,实习后对电路板的组成完全了解了,并能熟练运用。

在实习中经常会遇到一些自己可能暂时无法想明白的问题,在设计时和同学相互交流各自的想法是很重要的,我们可以从交流中获得不同的主意,并在大家的商讨中选择最优方案最终一定会得到最好的设计方法。

7.3体会

我认为在这次试验中每一个同学都付出了自己的辛苦劳动,而我们也在同学们的互相帮助和老师指导之下收获了成果,此次课设还锻炼了我们的动手能力,开阔了我们的思维境界,使我们的知识更丰富,不仅加深了我们对所学专业的认识,更增加了我们对所学专业的兴趣!

8.参考文献

【1】 姚福安《电子电路设计与实践》山东科学技术出版社,2001

【2】 涂时亮《单片机软件设计技术》重庆科技文献出版社,1987

【3】 张毅刚《新编MCS51实用汇编程序设计》哈尔滨工业大学出版社,2003

【4】 康华光《电子技术基础》高教出版社,2003

【5】 胡汉才《单片机原理及接口技术》清华大学出版社,1996

更多相关推荐:
流水灯课程设计报告

摘要流水彩灯控制器在我门日常生活中有重要的运用如广告牌的设计和节日彩灯的设计都能运用到它的原理本次设计的流水彩灯控制器是其中较简单的但这是进行复杂设计的基础本次课程设计要设计一个流水彩灯控制器用8只发光二极管显...

流水灯设计报告

数字电路设计D13012山东电子职业技术目录一设计目的2二设计方案2三设计要求2四设计过程3五整体电路连接电路图6六问题与调试7七心得与收获7八参考文献8九附件81数字电路设计D13012山东电子职业技术一设计...

流水灯课程设计报告

华东交通大学理工学院课程设计报告书所属课程名称硬件电路设计题目流水灯的制作分院电信分院专业班级12级电气工程及其自动化5班学号20xx0210470学生姓名指导教师杨威20xx年5月15日华东交通大学理工学院课...

流水灯单片机课程设计报告

井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100615062指导教师王佑湖20xx年11月10日目录1引言211设计任务212设...

多功能流水灯课程设计报告

重庆交通大学多功能流水灯课程设计报告学院专业班级11姓名学号指导老师20xx20xx学年第一学期机电与汽车工程学院机械电子工程级机电子3班摘要在平常生活工作中我们经常看到不同的彩灯其中也包括本电路设计的多功能流...

流水灯设计报告

多功能流水灯目录前言2第一章多功能流水灯的设计方案31多功能流水灯的设计方案及框图311基本要求设计方案312提高设计方案313设计框图3第二章多功能流水灯设计方案单元模块电路设计42多功能流水灯电路的设计42...

单片机课程LED流水灯设计报告(样本)

单片机课程设计报告项目名称基于单片机的LED流水灯系统设计项目组成员1姓名乔杰学号0982172姓名王迪学号0982203姓名杨许会学号098225专业班级通信C092日期目录第一章绪论211课题简介212设计...

可控流水灯单片机课程设计报告(c语言)

EDA课程设计报告流水灯专业电子信息工程学号0909054126姓名张新利20xx6271目录1引言12课题综述121课题的来源122课题的意义123预期的目标124面对的问题125课题的技术23系统分析231...

电子技术课程设计:流水灯的设计

电子技术课程设计报告流水灯的设计设计题目流水灯的设计班级学号080601113学生姓名JenlyC今天我0电子技术课程设计流水灯的设计目录1预备知识511NE555电路及应用5111定时电路NE555简介511...

vhdl流水灯课程设计报告

quartusII实验报告1院系姓名学号课程设计名称指导老师时间quartusII实验报告摘要VHDL的特点应用VHDL进行系统设计有以下几方面的特点一功能强大VHDL具有功能强大的语言结构它可以用明确的代码描...

流水灯控制实验报告及程序

实验三流水灯控制实验姓名专业通信工程学号成绩一实验目的1掌握KeilC51软件与protues软件联合仿真调试的方法2掌握如何使用程序与查表等方法实现流水效果3掌握按键去抖原理及处理方法二实验仪器与设备1微机1...

硬件555 流水灯设计报告(宁波工程学院)

课程设计报告设计论文题目流水灯电路设计与焊接学院名称电子与信息工程学院专业电子科学与技术班级姓名指导教师1课程设计流水灯第2页共2页电子流水灯电路设计与焊接报告一实验目的和要求1能够较全面地巩固和应用电子技术课...

流水灯课程设计报告(23篇)