我的课程设计.docx
《我的课程设计.docx》由会员分享,可在线阅读,更多相关《我的课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
我的课程设计
一、课程设计的目的……………………………………………………………2
二、课程设计的具体要求………………………………………………………2
三、设计系统的国内外现状分析………………………………………………3
四、系统硬件设计………………………………………………………………4
1、硬件结构框图………………………………………………………………4
2、系统工作原理…………………………………………………………………4
3.主要元器件介绍……………………………………………………………5
3.189C51单片机………………………………………………………………5
3.274LS373地址锁存器………………………………………………………10
3.36264数据存储器……………………………………………………………12
3.42764程序存储器……………………………………………………………15
3.58155定时器…………………………………………………………………16
3.6扩展芯片地址………………………………………………………………19
五、程序设计………………………………………………………………………20
1、程序设计概述…………………………………………………………………20
2、程序流程………………………………………………………………………21
3、程序清单…………………………………………………………………………22
六、设计体会………………………………………………………………………30
七、参考文献…………………………………………………………………………31
一、课程设计的目的
1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术、相关外围芯片的外特性和控制方法。
3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解相关电路的选择和参数的计算方法。
4.通过程序设计和实际调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事该领域打下良好的基础。
二、课程设计具体要求
一)原理图设计
1.原理图设计要符合课题规定的工作原理,连线要正确。
2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。
3.原理图要完整,CPU、外围器件、扩展接口、输入/输出装置要一应俱全。
二)程序设计
1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,画出完整的程序流程图。
三)程序调试
根据程序流程图,编写汇编语言程序代码,将设计完的程序输入、汇编、排除语法错误,生成OBJ文件。
1.按所设计的原理图,在实验平台上正确连线。
2.将汇编后生成的OBJ文件传送到实验装置,执行程序,检查该程序是否达到设计要求,若未达到,修改程序,直到达到要求为止,
四)设计说明书
1.原理图设计说明
简要说明设计的目的、系统工作原理,原理图中所使用的元、器件功能及在图中的作用等。
2.程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3.画出工作原理图、程序流程图,并给出程序清单。
三、设计系统的国内外现状分析
目前,单片机已广泛应用到图民经济建设和日常生活的许多领域,成为测控技术现代化必不可少的重要工具。
单片机经过1、2、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
单片机在目前的发展形势下,表现出几大趋势:
1.单片机的性能及应用越来越水平高和互联网连接已是一种明显的走向。
2.单片机的内部部件越来越多;美国国家半导体公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。
原因是其内部已集成上各种应用电路。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:
单片机与微机系统之间的距离越来越小,甚至难以辨认。
四、系统硬件设计
1、硬件结构框图
附2号图纸
2、系统工作原理
AT89C51单片机P0口不需要加锁存器,可以直接与8155的AD0—AD7相连。
8155的锁存信号ALE直接引自单片机ALE输出,用以在内部锁存地址。
8051的引脚P0.7—P0.0不经过译码器与2764的数据线D7—D0相连,完成数据的扩展。
P2.4—P2.0直接与2764的地址线A12—A8相连,完成地址线扩展。
8051的程序存储器的访问控制端/PSEN与2764的输出允许端/OE相连完成控制线的扩展。
8051的引脚P2.7直接与2764片选端/CE相连,进行芯片选择控制。
8051的数据存储器读访问控制端/RD与6264的输出允许端/OE相连,数据存储器写访问控制端/WR与6264写选通信号端/WE相连完成控制线的扩展。
3.主要元器件介绍
3.189C51单片机
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储器技术生产,兼容标准MSC—51,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为你提供许多高性价比的应用场合,可灵活应用各种控制领域。
主要性能参数:
●与MCS—51产品指令系统完全兼容AT89C51引脚图
●4K字节可重擦写Flash闪速存储器1000次擦写周期
●全静态操作:
0Hz—24MHz
●128*8字节内部RAM
●32个可编程I/O总线
●2个16位定时/计数器
●6个中断源
●可编程串行UART通道
●低功耗空闲和掉电模式
功能特性概述:
AT89C51提供以下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O总线,两个16位定时/计数器,一个人成分向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡停止工作并禁止其它所有部件直到下一个硬件复位。
AT89C51内部结构图:
AT89C51的引脚功能说明
●VCC:
电源电压+5V
●GND:
接地
●P0口:
P0口是一组8位漏极开路型双向I/O,也即地址/数据总路线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总路线复用,在访问期间激活内部上拉电阻。
●P2口:
P2是一个带有内部上拉电阻的8位双向I/O总线,P2的输出缓冲级可驱动4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或者16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2总线上的内容,在整个访问期间不改变。
●P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出级可驱动4个TTL逻辑门电路。
对P3口写入“1”时,它们被子内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O总路线外,更重要的用途是它的第二功能,如下表所示:
●RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
●ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当文章外部数据存储器时将跳过一个ALE脉冲。
如有必要,要通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,就设置ALE无效。
●/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
●EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
●XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取20PF左右。
3.274LS373地址锁存器
74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片,其引脚图与结构原理图、电路连接图如下:
(a)74LS373引脚图
(b)74LS373结构原理图
(c)74LS373电路连接图
(d)74LS373逻辑图
74LS373功能表
上表是74LS373的真值表,表中:
L——低电平;
H——高电平;
X——不定态;
Q0——建立稳态前Q的电平;
1Q~8Q为8个输出端。
G为数据锁存控制端;当G为“1”时,锁存器输出端同输入端;当G由“1”变“0”时,数据输入锁存器中。
当G=“1”时,74LS373输出端1Q—8Q与输入端1D—8D相同;
OE为输出允许端;当OE为“0”时,三态门打开;当OE为“1”时,三态门关其中输入端1D~8D接至单片机的P0口,输出端提供的是低8位地址,G端接至单片机的地址锁存允许信号ALE。
输出允许端OE接地,表示输出三态门一直打开。
3.66264数据存储器
数据存储器6264是8K×8SRAM,单一的+5V电源,所有的输入端和输出端都与TTL电路兼容。
其中,CS为片选信号,OE为输出允许信号,WE为写信号,A0~A12为13根地址线,D0~D7为8位数据线。
其引脚图与结构原理图、电路连接图如下:
(1)6264的特性及引脚信号:
6264的容量为8KB,是28引脚双列直插式芯片,采用CMOS工艺制造。
A12~A0:
地址线,可寻址8KB的存储空间。
D7~D0:
数据线,双向,三态。
/OE:
读出允许信号,输入,低电平有效。
/WE:
写允许信号,输入,低电平有效。
CE1:
片选信号1,输入,在读/写方式时为低电平。
CE2(chipenable):
片选信号2,输入,在读/写方式时为高电平。
VCC:
+5V工作电压。
GND:
信号接地。
(2)6264的操作方式
Intel6264的操作方式由/OE,/WE,CE1,CE2的共同作用决定
①写入:
当和为低电平,且和CE2为高电平时,数据输入缓冲器打开,数据由数据线D7~D0写入被选中的存储单元。
②读出:
当和为低电平,且和CE2为高电平时,数据输出缓冲器选通,被选中单元的数据送到数据线D7~D0上。
③保持:
当为高电平,CE2为任意时,芯片未被选中,处于保持状态,数据线呈现高阻状态。
下表为6264芯片的工作方式:
6264的操作方式如下:
CE1
CE2
OE
WE
方式
D0-D7
H
*
*
*
未选中
高阻
*
L
*
*
未选中
高阻
L
H
H
H
输出禁止
高阻
L
H
L
H
读
Dout
L
H
H
L
写
Din
L
H
L
L
写
3.42764程序存储器
Intel2764是一种+5V的8KB的UVEPROM存储器芯片。
其中,27是系列号,64与它的存储容量有关。
(1)2764的特性及引脚信号
Intel2764的容量为8KB,是28引脚双列直插式芯片,最大读出时间为250ns,单一+5V电源供电,其引脚图如下图所示:
A12~A0(addressinputs):
地址线,可寻址8KB的存储空间,输入,与系统地址总线相连。
D7~D0(databus):
数据线,8位,双向,编程时做数据输入线,读出时做数据输出线,与系统数据总线相连。
/OE:
读出允许信号,输入,低电平有效,/RD与系统读信号相连。
/CE:
片选信号,输入,低电平有效,与地址译码器输出相连。
VPP:
编程电压输入端,+12.5V。
/PGM:
编程脉冲输入,是宽度为45ms的低电平脉冲信号。
VCC:
+5V电源。
GND:
信号接地。
(2)2764的操作方式
2764有读出、保持、编程、编程校验和编程禁止五种操作方式:
①读出:
将芯片内指定单元的内容输出。
此时/CE和/OE为低电平,VPP接+5V,/PGM接高电平,数据线处于输出状态。
②保持:
/CE为高电平,数据线呈现高阻状态,禁止数据传送。
③编程:
将信息写入芯片内。
此时,VPP接+12.5V的编程电压,/OE为高电平,/CE为低电平,/PGM输入宽度为45ms的低电平编程脉冲信号,将数据线上的数据写入指定的存储单元。
④编程校验:
在编程过程中,对写入的信息可以进行校验操作。
即在一个字节编程完成后,/PGM为高电平,/CE和/OE为低电平,将同一单元的内容由数据线输出,可检验写入的内容是否正确。
⑤编程禁止:
当/CE为高电平时,禁止编程,数据线呈现高阻状态。
3.38155定时器
8155芯片除具有2个8位可编程并行I/O口PA、PB,1个6位可编程并行I/O口PC之外,片内还有256个字节的静态只读RAM,1个14位减法计数器。
8155具有与MSC—51单片机接口简单,内部资源丰富等优点,是单片机应用系统中广泛使用的芯片。
8155的结构及引脚功能
8155有40个引脚,采用双列直插封装,其引脚图和组成框图如下所示:
(b)8155引脚图
图中所涉及的引脚符号的含义和功能如下:
RST:
复位信号输入端,高电平有效。
复位后,3个I/O口均为输入方式。
AD0~AD7:
三态的地址/数据总线。
与单片机的低8位地址/数据总线(P0口)相连。
单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。
:
读选通信号,控制对8155的读操作,低电平有效。
:
写选通信号,控制对8155的写操作,低电平有效。
:
片选信号线,低电平有效。
IO/
:
8155的RAM存储器或I/O口选择线。
当IO/
=0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址(00H~FFH);当IO/
=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。
ALE:
地址锁存信号。
8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及
,IO/
的状态都锁存到8155内部锁存器。
因此,P0口输出的低8位地址信号不需外接锁存器。
PA0~PA7:
8位通用I/O口,其输入、输出的流向可由程序控制。
PB0~PB7:
8位通用I/O口,功能同A口。
PC0~PC5:
有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。
TIMERIN:
定时/计数器脉冲输入端。
TIMEROUT:
定时/计数器输出端。
VCC:
+5V电源。
Vss:
接地。
3.6扩展芯片地址
◆2764芯片扩展地址
P2.7作为片选信号。
P2.6、P2.5与寻址无关,均设为“1”。
P2.7直接与片选端相连,当它为“0”时,可使片选端有效。
因此,此片2764的地址范围是6000H—7FFFH。
◆8155芯片扩展地址
P2.6作为片选信号。
P2.7、P2.5与寻址无关,均设为“1”。
P2.6直接与片选端相连,当它为“0”时,可使片选端有效。
因此,此片8155的地址范围是A000H—BFFFH。
五、程序设计
1、程序设计概述
以89C51单片机为核心芯片,扩展1片RAM、1片EPROM、1片I/O芯片,16个键的矩阵键盘和2个LED显示器,当按下第1个键时,在显示器上显示外部RAM的2000H单元的内容(两位压缩BCD码),当按下第2个键时,在显示器上显示外部RAM的2001H单元的内容(两位压缩BCD码),……以此类推,每个数据显示持续时间20mS。
2、程序流程
3、程序清单
ORG0000H
AJMPMAIN1
ORH0200H
MAIN1:
MOVA,#03H;8155初始化PA、PB为输出,PC为输入
MOVDPTR,#0BFF0H;8155命令字地址
MOVX@DPTR,A
MAIN:
LCALLKEY
CJNEA,#0,NEXT1
MOVDPTR,#2000H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
NEXT1:
CJNEA,#1,NEXT2
MOVDPTR,#2001H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#2,NEXT3
MOVDPTR,#2002H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#3,NEXT4
MOVDPTR,#2003H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#4,NEXT5
MOVDPTR,#2004H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#5,NEXT6
MOVDPTR,#2005H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#6,NEXT7
MOVDPTR,#2006H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#7,NEXT8
MOVDPTR,#2007H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#8,NEXT9
MOVDPTR,#2008H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#9,NEXT10
MOVDPTR,#2009H
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#10,NEXT11
MOVDPTR,#200AH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#11,NEXT12
MOVDPTR,#200BH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#12,NEXT13
MOVDPTR,#200CH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#13,NEXT14
MOVDPTR,#200DH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
CJNEA,#14,NEXT15
MOVDPTR,#200EH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
NEXT15:
MOVDPTR,#200FH
MOVXA,@DPTR
MOV43H,A
LCALLDIR
LJMPMAIN
KEY:
ACALLKS1
JNZLK1
ACALLDIR
AJMPKEY
LK1:
ACALLDIR
ACALLDIR
ACALLKS1
JNZLK2
ACALLDIR
AJMPKEY
LK2:
MOVR2,#0FEH;送首列扫描字
MOVR4,#00H;送首列号
LK4:
MOVDPTR,#0BFFAH;选中PB口
MOVA,R2
MOVX@DPTR,A
INCDPTR
MOVXA,@DPTR
JBACC.0,LONE
MOVA,#00H
AJMPLKP
LONE:
JBACC.1,NEXT
MOVA,#08H
LKP:
ADDA,R4
PUSHACC
LK3:
ACALLDIR
ACALLKS1
JNZLK3
POPACC
RET
NEXT:
INCR4
MOVA,R2
JNBACC.3,KND
RLA
MOVR2,A
AJMPLK4
KND:
AJMPKEY
KS1:
MOVDPTR,#0BFFAH
MOVA,#00H
MOVX@DPTR,A
INCDPTR
MOVXA,@DPTR
CPLA,
ANLA,#0FH
RET
DIR:
MOVR0,#43H;
MOVR3,#01H
MOVA,R3
LD0:
MOVDPTR,#0BFFAH;指向PB口
MOVX@DPTR,A
MOVA,@R0
MOVR6,A
SWAPA
ANLA,#0FH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#7FF9H;指向PA口
MOVX@DPTR,A
ACALLDLS10ms;调用延时子程序
MOVA,R6
ANLA,#0FH
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDPTR,#7FF9H;指向PA口
MOVX@DPTR,A
ACALLDLS10ms;调用延时子程序
RET
TABLE:
B3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
DB6FH,77H,7CH,39H,5EH,79H,71H,
DB00H;暗码
DB40H;“-