流水灯课程设计说明书

微机原理与接口技术

—课程设计说明书

设计课题:流水灯的制作

班 级:XXX

姓 名:XXX

学 号:XXXXXXX

指导老师:XXX

目录

1相关元件及电路设计 ..................................................................................................... 3

1.1 AT89C51芯片功能特性及应用.............................................................................. 3

1.2 MCS-51单片机 .................................................................................................... 3

1.2.1 内部结构 ................................................................................................... 3

1.2.3 外部总线构成 ............................................................................................ 6

1.4单片机的复位 ...................................................................................................... 9

1.4.1 复位状态 ................................................................................................. 9

1.4.2 复位电路 ............................................................................................... 10

2.电路及程序设计 ...........................................................................................................11

2.1电路原理图设计 ..................................................................................................11

2.2电路程序设计 .................................................................................................... 12

总结............................................................................................................................... 18

参考文献........................................................................................................................ 19

1相关元件及电路设计

1.1 AT89C51芯片功能特性及应用

单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、传真机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料表明:2007年全球单片机的产值达到151亿美元,我国单片机的销售额达到400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。

在AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是1.2~12MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快

1.2 MCS-51单片机

1.2.1 内部结构

MCS-51系列单片机内部采用模块式结构,其结构组成框图如图1所示。

程序存储器

数据存储器

图1 MCS-51系列单片机组成框图

由图1可见,MCS-51系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口~P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。

2.2.2 引脚定义

引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。从应用的角度来看,引脚的应用是单片机应用的一个重要基础。因此熟悉引脚是学习应用单片机的基础。

MCS-51系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。采用40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号如图2所示。

由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。为解决这一矛盾,单片机的某些信号引脚被赋以双重功能。

1)电源及电源复位引脚:

(1)VCC(40脚):正常操作时接+5V直流电源。

(2)VSS (20脚):接地端。

图2 40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号图

(3)RST/VPD(9脚):复位信号输入端。在该引脚上输入一定时间(约两个机器周期)的高电平将使单片机复位。该引脚的第二功能是VPD,即备用电源输入端。当主电源发生故障,降低到低电平规定值时,可将+5V备用电源自动接入VPD端,以保护片内RAM中的信息不丢失,使复电后能继续正常运行。

(4) /VPP(31脚):访问程序存储器控制信号/编程电源输入。当 保持高电平时,访问内部程序存储器,访问地址范围在0~4KB内;当PC(程序计数器)值超过0FFFH,即访问地址超出4KB时,将自动转向执行外部程序存储器内的程序;当 保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H地址开始)。由此可见,对片内有可用程序存储器的单片机而言, 端应接高电平,而对片内无程序存储器的单片机,可将 接地。

对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(VPP)。

2)时钟振荡电路引脚

XTAL1和XTAL2:

(1)XTAL1(19脚):外接石英晶体和微调电容引脚1。它是片内振荡电路反向放大器的输入端。采用外部振荡器时此引脚接地。

(2)XTAL2(18脚):外接石英晶体和微调电容引脚2。它是片内振荡电路

反向放大器的输出端。采用外部振荡器时此引脚为外部振荡信号输入端。

3) (30脚):低8位地址锁存控制信号/编程脉冲输入。在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。在访问外部程序存储器期间,ALE信号两次有效;而在访问外部数据存储器期间,ALE信号一次有效。对于EPROM型单片机,在EPROM编程期间,此引脚用于输入编程脉冲 。

4) (29脚):外部程序存储器的读选通信号输出端,低电平有效。在从外部程序存储器取指令(或常数)期间,此引脚定时输出负脉冲作为读取外部程序存储器的信号,每个机器周期 两次有效,此时地址总线上送出的地址为外部程序存储器地址;在此期间,如果访问外部数据存储器和内部程序存储器,不会产生 信号。

5)并行双向输入/输出(I/O)口引脚:

(1)P0口的P0.0~P0.7引脚(39~32脚):8位通用输入/输出端口和片外8位数据/低8位地址复用总线端口。

(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。

(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。

(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。

1.2.3 外部总线构成

所谓总线,就是连接单片机与各外部器件的一组公共的信号线。当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设

备间的互连更容易实现。

利用片外引脚可以构造MCS-51系列单片机的三总线结构。单片机的引脚除了电源端VCC、接地端VSS、复位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0~P1.7以外,其余的引脚都是为实现系统扩展而设置的。用这些引脚构造的单片机系统的三总线结构如3所示。

地址总线

数据总线

控制总线

图3 MCS-51系列单片机片外三总线结构

1)地址总线(Address Bus,AB):MCS-51系列单片机总共有16根地址线A15~ A0,片外存储器可寻址范围达64KB(216=65536字节),由P2口直接提供高8位地址A15~ A8,P0口经地址锁存器提供低8位地址A7~ A0。

2)数据总线(Data Bus,DB):MCS-51系列单片机总共有8根数据线D7~D0,全由P0口提供。由于P0口是分时复用总线,分时输送低8位地址(通过地址锁存器锁存)和高8位数据信息。

3)控制总线(Control Bus,CB):控制总线由P3口的第二功能 (P3.6)、 (P3.7)和3根独立的控制线 、ALE、 组成。

2.3单片机时钟电路及时钟时序单位

1) 时钟电路

单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。MCS-51单片机时钟电路示意图如图4所示。

二分频状态时钟

ALE

机器周期

图4 MCS-51单片机时钟振荡电路示意图

在MCS-51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12。

在图4中,使用晶体振荡器时,C1、C2取值30±10pF;使用陶瓷振荡器时,C1、C2取值40±10pF。C1、C2的取值虽然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值20~30pF。在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。

也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图5所示。

外部脉冲信号

图5 MCS-51单片机外部时钟输入接线图

所谓时序,是指在指令执行过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的先后关系。CPU发出的控制信号有两类:一类是用于单片机内部的,用户不能直接接触此类信号,不必对它作过多了解;另一类是通过控制总线送到片外的,人们通常以时序图的形式来表示相关信号的波形及出现的先后次序。为了说明信号的时间关系,需要定义时序单位。89C51的时序单位共有四个,从小到大依次是拍节、状态、机器周期和指令周期。如图4所示。

fOSC

(XTAL2)1.4单片机的复位

1.4.1 复位状态

复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。

单片机复位后,除P3~P0的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。

1.4.2 复位电路

单片机的复位操作有上电自动复位和手动按键复位两种方式。

上电自动复位操作要求接通电源后自动实现复位操作。如图1.5-1所示。 图6(a)所示为最简单的复位电路。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。

相比于图6(a),图6(b)所示的电路只是增加了外接二极管VD和电阻R。其优越性在于停电后,二极管VD给电容C提供了快速放电通路,保证再上电时RST为高电平,从而保证单片机可靠复位。正常工作时,二极管反偏,对电路没影响。断电后,VCC逐渐下降,当VCC=0时,电容C通过VD迅速放电,恢复到无电量的初始状态,为下次上电复位做好准备。

VD

(a) (b)

图6 上电自动复位电路

手动按键复位要求在电源接通的条件下,用按钮开关操作使单片机复位,如图7所示。其工作原理为:复位键按下后,电容C通过R2放电,放电结束后,RST引脚的电位由R1和R2 分压决定,由于R2

平,单片机进入复位状态,松开按键后,电容充电,RST上的电位降低,经过一定的延时,单片机就脱离复位状态,进入正常工作模式。R2的作用在于限流,避免按键按下的瞬间电容C放电产生火花,保护按键的触点。

R2270

图7 手动按键复位电路

系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位结合。复位电路虽然简单,但其作用十分重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值的方法进行检测。

2.电路及程序设计

2.1电路原理图设计

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组

成的单个单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水

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

设计原理图如图8所示:

图8流水灯硬件原理图

2.2电路程序设计

程序流程图如图9所示:

程序中LIGHT7为多种亮灯方式结合循环

延时子程序DELAY为0.5秒延时,延时子程序DELAY1为2秒延时 LIGHT1~LIGHT6亮灯方式程序中有标注

图9 程序流程图

ORG 0000H

AJMP MAIN ;系统上电,执行主程序

ORG 0003H ;外部中断0入口 AJMP LOOP ;转移至中断服务程序 MAIN:

SETB EX0 ;允许INT0中断 SETB IT0 ;INT0中断选用电平触发 SETB EA ;CPU开中断 HALT: SJMP HALT ;等待中断

LOOP: ;判0转移到相应亮灯方式 SETB P3.2 JNB P3.0 ,LIGHT1 JNB P3.1 ,LIGHT2 JNB P3.3 ,LIGHT3 JNB P3.4 ,LIGHT4 JNB P3.5 ,LIGHT5 JNB P3.6 ,LIGHT6 JNB P3.7 ,LIGHT7

LIGHT1: ;一个正流水(2秒延时) SETB P3.0 MOV DPTR,#TAB1 MOV R0,#8

LIGHT11:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR

DJNZ R0,LIGHT11 JNB P3.0,LOOP SJMP LIGHT1

LIGHT2: ;两个正流水(2秒延时) SETB P3.1

MOV DPTR,#TAB2 MOV R0,#4

LIGHT22:MOVX A,@DPTR MOV P1,A LCALL DELAY

INC DPTR

DJNZ R0,LIGHT22 SJMP LIGHT2

LIGHT3: ;隔一个正流水(2秒延时)

SETB P3.3 MOV DPTR,#TAB3 MOV R0,#8

LIGHT33:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR

DJNZ R0,LIGHT33 JNB P3.0,LOOP SJMP LIGHT3

LIGHT4: ;隔两个正流水(0.5秒延时)

SETB P3.4 MOV DPTR,#TAB4 MOV R0,#4

LIGHT44:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT44 JNB P3.0,LOOP SJMP LIGHT4

LIGHT5: ;隔一个倒流水(0.5秒延时) SETB P3.5

MOV DPTR,#TAB5 MOV R0,#4

LIGHT55:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT55 JNB P3.0,LOOP SJMP LIGHT5

LIGHT6: ;隔两个倒流水(0.5秒延时)

SETB P3.6 MOV DPTR,#TAB6 MOV R0,#8

LIGHT66:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT66 JNB P3.0,LOOP SJMP LIGHT6

LIGHT7: ;多样式流水(2秒延时) SETB P3.7 MOV DPTR,#TAB7

MOV R0,#74 LIGHT77:MOVX A,@DPTR MOV P1,A LCALL DELAY

INC DPTR

DJNZ R0,LIGHT77 JNB P3.0,LOOP SJMP LIGHT7

DELAY1:MOV R3,#10 //0.5秒的延时子程序 D1:MOV R7,#200 D2:MOV R6,#123 D3:DJNZ R6,D3 NOP

DJNZ R7,D2 DJNZ R3,D1 RET

DELAY:MOV R2,#40 //2秒的延时子程序 D4:MOV R1,# 200 D5:MOV R4,#123 D6:DJNZ R4,D6 NOP

DJNZ R1,D5 DJNZ R2,D4 RET

TAB1: ;一个正流水 DB 01H 02H 04H 08H 10H 20H 40H 80H

TAB2: ;两个正流水 DB 03H 0CH 30H 0C0H

TAB3: ;隔一个正流水

DB 01H 04H 10H 40H

TAB4: ;隔两个正流水 DB 01H 08H 40H 02H 10H 80H 04H 20H

TAB5: ;隔一个倒流水 DB 80H 20H 08H 02H

TAB6: ;隔两个倒流水 DB 80H 10H 02H 40H 08H 01H 20H 04H

TAB7: ;多样式流水 DB 0FFH ;全灭

DB 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐个点亮 DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐个叠加 DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减 DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐个叠加 DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减 DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开 DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;两边叠加后递减 DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开 DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;两边叠加后递减 DB 000H ;全亮

END ;程序结束指令

总结

本次课程设计我的课题是花样流水灯的设计,开始的几个星期我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。在本次课程设计过程中,我增强了自己的动手能力和分析能力。通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。在此过程中,我学会了很多,也看到了很多自己的不足之处。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。

总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论

和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。

参考文献

[1] 胡汉才.单片机原理与接口技术[M].北京:清华大学出版社,1995.6. [2] 楼然苗等.51系列单片机设计实例[M].北京:北京航空航天出版社,2003.3. [3] 何立民. 单片机高级教程[M].北京:北京航空航天大学出版社,2001. [4] 赵晓安. MCS-51单片机原理及应用[M]. 天津:天津大学出版社,2001.3.

微机原理与接口技术

—课程设计说明书

设计课题:流水灯的制作

班 级:XXX

姓 名:XXX

学 号:XXXXXXX

指导老师:XXX

目录

1相关元件及电路设计 ..................................................................................................... 3

1.1 AT89C51芯片功能特性及应用.............................................................................. 3

1.2 MCS-51单片机 .................................................................................................... 3

1.2.1 内部结构 ................................................................................................... 3

1.2.3 外部总线构成 ............................................................................................ 6

1.4单片机的复位 ...................................................................................................... 9

1.4.1 复位状态 ................................................................................................. 9

1.4.2 复位电路 ............................................................................................... 10

2.电路及程序设计 ...........................................................................................................11

2.1电路原理图设计 ..................................................................................................11

2.2电路程序设计 .................................................................................................... 12

总结............................................................................................................................... 18

参考文献........................................................................................................................ 19

1相关元件及电路设计

1.1 AT89C51芯片功能特性及应用

单片机在我们的日常生活和工作中无处不在、无处不有:家用电器中的电子表、洗衣机、电饭褒、豆浆机、电子秤;住宅小区的监控系统、电梯智能化控制系统;汽车电子设备中的ABS、GPS、ESP、TPMS;医用设备中的呼吸机,各种分析仪,监护仪,病床呼叫系统;公交汽车、地铁站的IC卡读卡机、滚动显示车次和时间的LED点阵显示屏;电脑的外设,如键盘、鼠标、光驱、打印机、复印件、传真机、调制解调器;计算机网络的通讯设备;智能化仪表中的万用表,示波器,逻辑分析仪;工厂流水线的智能化管理系统,成套设备中关键工作点的分布式监控系统;导弹的导航装置,飞机上的各种仪表等等。有资料表明:2007年全球单片机的产值达到151亿美元,我国单片机的销售额达到400亿元人民币,我国每年单片机的需求量达50至60亿片,是全球单片机的最大市场。可以说单片机已经渗透到了我们生活的各个领域。

在AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是1.2~12MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快

1.2 MCS-51单片机

1.2.1 内部结构

MCS-51系列单片机内部采用模块式结构,其结构组成框图如图1所示。

程序存储器

数据存储器

图1 MCS-51系列单片机组成框图

由图1可见,MCS-51系列单片机主要由以下部件通过片内总线连接而成:中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行输入/输出口(P0口~P3口)、串行口、定时器/计数器、中断控制、总线控制及时钟电路。

2.2.2 引脚定义

引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。从应用的角度来看,引脚的应用是单片机应用的一个重要基础。因此熟悉引脚是学习应用单片机的基础。

MCS-51系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。采用40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号如图2所示。

由于工艺及标准化等原因,芯片的引脚数量是有限的,但单片机为实现控制所需要的信号数目却远远超过其引脚数目。为解决这一矛盾,单片机的某些信号引脚被赋以双重功能。

1)电源及电源复位引脚:

(1)VCC(40脚):正常操作时接+5V直流电源。

(2)VSS (20脚):接地端。

图2 40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号图

(3)RST/VPD(9脚):复位信号输入端。在该引脚上输入一定时间(约两个机器周期)的高电平将使单片机复位。该引脚的第二功能是VPD,即备用电源输入端。当主电源发生故障,降低到低电平规定值时,可将+5V备用电源自动接入VPD端,以保护片内RAM中的信息不丢失,使复电后能继续正常运行。

(4) /VPP(31脚):访问程序存储器控制信号/编程电源输入。当 保持高电平时,访问内部程序存储器,访问地址范围在0~4KB内;当PC(程序计数器)值超过0FFFH,即访问地址超出4KB时,将自动转向执行外部程序存储器内的程序;当 保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H地址开始)。由此可见,对片内有可用程序存储器的单片机而言, 端应接高电平,而对片内无程序存储器的单片机,可将 接地。

对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(VPP)。

2)时钟振荡电路引脚

XTAL1和XTAL2:

(1)XTAL1(19脚):外接石英晶体和微调电容引脚1。它是片内振荡电路反向放大器的输入端。采用外部振荡器时此引脚接地。

(2)XTAL2(18脚):外接石英晶体和微调电容引脚2。它是片内振荡电路

反向放大器的输出端。采用外部振荡器时此引脚为外部振荡信号输入端。

3) (30脚):低8位地址锁存控制信号/编程脉冲输入。在系统扩展时,ALE用于把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离。在访问外部程序存储器期间,ALE信号两次有效;而在访问外部数据存储器期间,ALE信号一次有效。对于EPROM型单片机,在EPROM编程期间,此引脚用于输入编程脉冲 。

4) (29脚):外部程序存储器的读选通信号输出端,低电平有效。在从外部程序存储器取指令(或常数)期间,此引脚定时输出负脉冲作为读取外部程序存储器的信号,每个机器周期 两次有效,此时地址总线上送出的地址为外部程序存储器地址;在此期间,如果访问外部数据存储器和内部程序存储器,不会产生 信号。

5)并行双向输入/输出(I/O)口引脚:

(1)P0口的P0.0~P0.7引脚(39~32脚):8位通用输入/输出端口和片外8位数据/低8位地址复用总线端口。

(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。

(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。

(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。

1.2.3 外部总线构成

所谓总线,就是连接单片机与各外部器件的一组公共的信号线。当系统要求扩展时,单片机要与一定数量的外部器件和外围设备连接。如果各部件及每一种外围设备都分别用各自的一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。为了简化硬件电路的设计和系统结构,常用一组线路,并配以适当的接口电路来与各个外部器件和外围设备连接,这组共用的连接线路就是总线。采用总线结构便于扩展外部器件和外围设备,而统一的总线标准则使不同设

备间的互连更容易实现。

利用片外引脚可以构造MCS-51系列单片机的三总线结构。单片机的引脚除了电源端VCC、接地端VSS、复位端RST、晶振接入端XTAL1和XTAL2、通用I/O口的P1.0~P1.7以外,其余的引脚都是为实现系统扩展而设置的。用这些引脚构造的单片机系统的三总线结构如3所示。

地址总线

数据总线

控制总线

图3 MCS-51系列单片机片外三总线结构

1)地址总线(Address Bus,AB):MCS-51系列单片机总共有16根地址线A15~ A0,片外存储器可寻址范围达64KB(216=65536字节),由P2口直接提供高8位地址A15~ A8,P0口经地址锁存器提供低8位地址A7~ A0。

2)数据总线(Data Bus,DB):MCS-51系列单片机总共有8根数据线D7~D0,全由P0口提供。由于P0口是分时复用总线,分时输送低8位地址(通过地址锁存器锁存)和高8位数据信息。

3)控制总线(Control Bus,CB):控制总线由P3口的第二功能 (P3.6)、 (P3.7)和3根独立的控制线 、ALE、 组成。

2.3单片机时钟电路及时钟时序单位

1) 时钟电路

单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。MCS-51单片机时钟电路示意图如图4所示。

二分频状态时钟

ALE

机器周期

图4 MCS-51单片机时钟振荡电路示意图

在MCS-51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12。

在图4中,使用晶体振荡器时,C1、C2取值30±10pF;使用陶瓷振荡器时,C1、C2取值40±10pF。C1、C2的取值虽然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值20~30pF。在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。

也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。这种方式常用于多块芯片同时工作,便于同步。其外部脉冲接入方式如图5所示。

外部脉冲信号

图5 MCS-51单片机外部时钟输入接线图

所谓时序,是指在指令执行过程中,CPU的控制器所发出的一系列特定的控制信号在时间上的先后关系。CPU发出的控制信号有两类:一类是用于单片机内部的,用户不能直接接触此类信号,不必对它作过多了解;另一类是通过控制总线送到片外的,人们通常以时序图的形式来表示相关信号的波形及出现的先后次序。为了说明信号的时间关系,需要定义时序单位。89C51的时序单位共有四个,从小到大依次是拍节、状态、机器周期和指令周期。如图4所示。

fOSC

(XTAL2)1.4单片机的复位

1.4.1 复位状态

复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化外,当程序运行出错或操作错误使系统处于死锁状态时,也须重新启动单片机,使其复位。

单片机复位后,除P3~P0的端口锁存器被设置成FFH、堆栈指针SP设置成07H和串行口的SBUF无确定值外,其它各专用寄存器包括程序计数器PC均被设置成00H。片内RAM不受复位的影响,上电后RAM中的内容是随机的。记住这些特殊功能寄存器的复位状态,对熟悉单片机操作,简短应用程序中的初始化部分是十分必要的。

1.4.2 复位电路

单片机的复位操作有上电自动复位和手动按键复位两种方式。

上电自动复位操作要求接通电源后自动实现复位操作。如图1.5-1所示。 图6(a)所示为最简单的复位电路。上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。

相比于图6(a),图6(b)所示的电路只是增加了外接二极管VD和电阻R。其优越性在于停电后,二极管VD给电容C提供了快速放电通路,保证再上电时RST为高电平,从而保证单片机可靠复位。正常工作时,二极管反偏,对电路没影响。断电后,VCC逐渐下降,当VCC=0时,电容C通过VD迅速放电,恢复到无电量的初始状态,为下次上电复位做好准备。

VD

(a) (b)

图6 上电自动复位电路

手动按键复位要求在电源接通的条件下,用按钮开关操作使单片机复位,如图7所示。其工作原理为:复位键按下后,电容C通过R2放电,放电结束后,RST引脚的电位由R1和R2 分压决定,由于R2

平,单片机进入复位状态,松开按键后,电容充电,RST上的电位降低,经过一定的延时,单片机就脱离复位状态,进入正常工作模式。R2的作用在于限流,避免按键按下的瞬间电容C放电产生火花,保护按键的触点。

R2270

图7 手动按键复位电路

系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位结合。复位电路虽然简单,但其作用十分重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值的方法进行检测。

2.电路及程序设计

2.1电路原理图设计

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组

成的单个单片机。从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水

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

设计原理图如图8所示:

图8流水灯硬件原理图

2.2电路程序设计

程序流程图如图9所示:

程序中LIGHT7为多种亮灯方式结合循环

延时子程序DELAY为0.5秒延时,延时子程序DELAY1为2秒延时 LIGHT1~LIGHT6亮灯方式程序中有标注

图9 程序流程图

ORG 0000H

AJMP MAIN ;系统上电,执行主程序

ORG 0003H ;外部中断0入口 AJMP LOOP ;转移至中断服务程序 MAIN:

SETB EX0 ;允许INT0中断 SETB IT0 ;INT0中断选用电平触发 SETB EA ;CPU开中断 HALT: SJMP HALT ;等待中断

LOOP: ;判0转移到相应亮灯方式 SETB P3.2 JNB P3.0 ,LIGHT1 JNB P3.1 ,LIGHT2 JNB P3.3 ,LIGHT3 JNB P3.4 ,LIGHT4 JNB P3.5 ,LIGHT5 JNB P3.6 ,LIGHT6 JNB P3.7 ,LIGHT7

LIGHT1: ;一个正流水(2秒延时) SETB P3.0 MOV DPTR,#TAB1 MOV R0,#8

LIGHT11:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR

DJNZ R0,LIGHT11 JNB P3.0,LOOP SJMP LIGHT1

LIGHT2: ;两个正流水(2秒延时) SETB P3.1

MOV DPTR,#TAB2 MOV R0,#4

LIGHT22:MOVX A,@DPTR MOV P1,A LCALL DELAY

INC DPTR

DJNZ R0,LIGHT22 SJMP LIGHT2

LIGHT3: ;隔一个正流水(2秒延时)

SETB P3.3 MOV DPTR,#TAB3 MOV R0,#8

LIGHT33:MOVX A,@DPTR MOV P1,A LCALL DELAY INC DPTR

DJNZ R0,LIGHT33 JNB P3.0,LOOP SJMP LIGHT3

LIGHT4: ;隔两个正流水(0.5秒延时)

SETB P3.4 MOV DPTR,#TAB4 MOV R0,#4

LIGHT44:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT44 JNB P3.0,LOOP SJMP LIGHT4

LIGHT5: ;隔一个倒流水(0.5秒延时) SETB P3.5

MOV DPTR,#TAB5 MOV R0,#4

LIGHT55:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT55 JNB P3.0,LOOP SJMP LIGHT5

LIGHT6: ;隔两个倒流水(0.5秒延时)

SETB P3.6 MOV DPTR,#TAB6 MOV R0,#8

LIGHT66:MOVX A,@DPTR MOV P1,A LCALL DELAY1 INC DPTR

DJNZ R0,LIGHT66 JNB P3.0,LOOP SJMP LIGHT6

LIGHT7: ;多样式流水(2秒延时) SETB P3.7 MOV DPTR,#TAB7

MOV R0,#74 LIGHT77:MOVX A,@DPTR MOV P1,A LCALL DELAY

INC DPTR

DJNZ R0,LIGHT77 JNB P3.0,LOOP SJMP LIGHT7

DELAY1:MOV R3,#10 //0.5秒的延时子程序 D1:MOV R7,#200 D2:MOV R6,#123 D3:DJNZ R6,D3 NOP

DJNZ R7,D2 DJNZ R3,D1 RET

DELAY:MOV R2,#40 //2秒的延时子程序 D4:MOV R1,# 200 D5:MOV R4,#123 D6:DJNZ R4,D6 NOP

DJNZ R1,D5 DJNZ R2,D4 RET

TAB1: ;一个正流水 DB 01H 02H 04H 08H 10H 20H 40H 80H

TAB2: ;两个正流水 DB 03H 0CH 30H 0C0H

TAB3: ;隔一个正流水

DB 01H 04H 10H 40H

TAB4: ;隔两个正流水 DB 01H 08H 40H 02H 10H 80H 04H 20H

TAB5: ;隔一个倒流水 DB 80H 20H 08H 02H

TAB6: ;隔两个倒流水 DB 80H 10H 02H 40H 08H 01H 20H 04H

TAB7: ;多样式流水 DB 0FFH ;全灭

DB 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐个点亮 DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐个叠加 DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减 DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐个叠加 DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减 DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开 DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;两边叠加后递减 DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开 DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;两边叠加后递减 DB 000H ;全亮

END ;程序结束指令

总结

本次课程设计我的课题是花样流水灯的设计,开始的几个星期我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。在本次课程设计过程中,我增强了自己的动手能力和分析能力。通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。在此过程中,我学会了很多,也看到了很多自己的不足之处。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。

总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论

和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。

参考文献

[1] 胡汉才.单片机原理与接口技术[M].北京:清华大学出版社,1995.6. [2] 楼然苗等.51系列单片机设计实例[M].北京:北京航空航天出版社,2003.3. [3] 何立民. 单片机高级教程[M].北京:北京航空航天大学出版社,2001. [4] 赵晓安. MCS-51单片机原理及应用[M]. 天津:天津大学出版社,2001.3.


相关内容

  • 管理信息系统设计--工业工程
  • <管理信息系统>课程设计 指导书 课程代码:01025031 英文名称:Management Information System,MIS 适用对象:工业工程专业 学时学分:2周 一个学分. 一.课程设计目的 管理信息系统课程设计作为独立的教学环节,是工业工程专业集中实践性环节系列之一, ...

  • 王维洲 20123509 医用冰箱温度控制器
  • 医用冰箱温度控制器 作 者 姓 名: 王维洲 学 号: 20123509 指 导 教 师: 石亚和 教授 单 位 名 称: 信息科学与工程学院 专 业 名 称: 测控技术与仪器 东 北 大 学 2015年1月 Temperature Controller of Medical Refrigetato ...

  • 道路施工组织课程设计任务书
  • 道桥施工技术与施工组织 课程设计说明书 专业: 土木工程 班级: 1105 姓名: 秦 杨 学号: 11150062 北京交通大学海滨学院 土木工程系 2014-5-23 道桥工程施工组织设计 一.工程概况和工程特点 根据当地气象站的多年观测资料,该地区年平均降雨日为36天,最高年份为48天,5至8 ...

  • 单片机门铃设计
  • 单片机课程设计报告 学生姓名: 学 号: 教学院系: 专业年级: 指导教师: 完成日期: 2011年6月21日 目录 第一章 基础设计实验 ........................... - 2 - 1.1 实验内容 ................................ - 2 ...

  • 工程项目管理课程设计任务书2013
  • 课程设计任务书 课题名称 院 (系) 专 业 姓 名 学 号 起讫日期 指导教师 某综合楼工程施工规划 土木工程学院 工程管理 2014.1.6-2014.1.17 孙文建 2013 年 12 月 23 日 一.设计目的和依据 本课程设计为单位工程施工规划,是<工程项目管理Ⅱ>课程的主要 ...

  • 无动力纸飞机的性能设计与改进--报告格式
  • 郑州航空工业管理学院 课 程 设 计 报 告 2007 届 工业工程 专业 04057X 班级 课程名称 质量工程学课程设计 题 目 无动力纸飞机的性能设计与改进 姓 名 学号 04057X xx 指导教师职称 二ОО 七 年 十二 月 日 课 程 设 计 任 务 书 一.设计题目 无动力纸飞机的性 ...

  • 单片机课程标准
  • 山东电子职业技术学院 <单片机技术及应用> 课程标准 课程代码:03021038 适用专业:电子信息工程技术专业 编 者:电子信息工程技术专业教研室(单片机课程组) 课程负责人:栾秋平 审 核 人:栾秋平 编制单位:山东电子职业技术学院电子工程系(部) 合作单位:积成电子股份有限公司 编 ...

  • 流水灯控制论文
  • 湄洲湾职业技术学院 七彩心形流水灯说明书 系 别: 班 级: 专 业: 姓 名: 学 号: 导师姓名 职 称: 实验师 2016年11月20日 目录 1.前言............................................ 错误!未定义书签. 2. 系统设计技术参数要求... ...

  • 服装工艺管理课程设计
  • 课 程 设 计 目 录 一.前言 二.课程设计任务书 三.产品工艺方案设计 四.缝制工艺编制 五.设备配置与排列 六.全厂劳动定员编制 七.全厂总平面布局 八.企业技术指标 九.结束语 前 言 经过三年对服装各方面的学习和了解,我学到了很多的理论知识,但是实践不够,而这次的课程设计是一个可以将理论知 ...