51单片机大容量数据存储器的扩展

51单片机大容量数据存储器的扩展
51单片机大容量数据存储器的扩展

郑州航空工业管理学院

《单片机原理与应用》

课程设计说明书

10 级自动化专业 1006112 班级

题目51单片机大容量数据存储器的系统扩展姓名杨向龙学号100611234

指导教师王义琴职称讲师

二О一三年六月十日

目录

一、51单片机大容量数据存储器的系统扩展的基本原理 (4)

二、设计方案 (4)

三、硬件的设计 (5)

3.1 系统的硬件构成及功能 (5)

3.2硬件的系统组成 (5)

3.2.1、W241024A (5)

3.2.2、CPLD的功能实现 (5)

3.2.3、AT89C52简介 (6)

3.2.4、SRAM的功能及其实现 (9)

3.3、基本单片机系统大容量数据存储器系统扩展 (9)

五、结论 (13)

六、参考资料 (13)

51单片机大容量数据存储器的系统扩展

摘要:在单片机构成的实际测控系统中,仅靠单片机内部资源是不行的,单片

机的最小系统也常常不能满足要求,因此,在单片机应用系统硬件设计中首先要解决系统扩展问题。51单片机有很强的外部扩功能, 传统的用IO口线直接控制大容量数据存储器的片选信号的扩展系统存在运行C51编译的程序时容易死机的缺点。文中介绍了一种改进的基于CPLD的51系列单片机大容量数据存储器的扩展方法,包括硬件组成和软件处理方法。

关键字:W241024A、CPLD、AT89C52、SRAM

一、51单片机大容量数据存储器的系统扩展的基本原理

MCS-51 单片机系统扩展时,一般使用P0 口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,最大寻址空间为64KB。但在实际应用中,有一些特殊场合,例如,基于单片机的图像采集传输系统,程控交换机话单的存储等,需要有大于64KB 的数据存储器。

二、设计方案

在以往的扩展大容量数据存储器的设计中,一般是用单片机的IO口直接控制大容量数据存储器的片选信号来实现,但是这种设计在运行以C51编写的程序(以LARGE 方式编译)时往往会出现系统程序跑飞的问题,尤其是在程序访问大容量数据存储器(如FLASH)的同时系统产生异常(如中断),由于此时由IO 口控制的片选使FLASH 被选中而SRAM 无法被选中,堆栈处理和函数参数的传递无法实现从而导致程序跑飞的现象。文章介绍一种基于CPLD 的大容量数据存储器的扩展系统,避免了上述问题的产生,提高了扩展大容量数据存储器系统的可靠性。该系统MCU 采用89C52,译码逻辑的实现使用了一片EPM7128 CPLD 芯片,系统扩展了一片128K 的SRAM,一片4M 字节的NOR FLASH,以上芯片均为5V 供电。

第三节硬件设计

3.1 系统的硬件构成及功能

W241024A是128K ×8 位的静态RAM,共需17 根地址线,其A0~A7 接经CPLD 锁存输出的A0~A7,A8~A14 接89C52 的A 8 ~ A 1 4 ,A 1 5 、A 1 6 分别接C P L D 输出的S R A M _ A 1 5 、SRAM_A16;M29F032D是4M ×8 位的NOR 型FLASH,共需22 根地址线。A0~A14 的接法与W241024A 的相同,A15~A21接经CPLD 锁存输出AL15~AL21;所有数据存储器的读写控制线与M C U 相应的读写控制线相连。S R A M 和F L A S H 的片选信号由C P L D 内部译码产生:/ C S _ S R A M 接S R A M 的片选,/ C S _ F L A S H 接F L A S H 的片选。

3.2硬件的系统组成

3.2.1、W241024A

W 2 4 1 0 2 4 A 是1 2 8 K x 8 位的静态R A M,共需1 7 根地址线,其A O - A 7 接经 C P L D 锁存输出的 A O - A 7 , A 8 - A 1 4 接8 9 C 5 2 的A 8 - A 1 4 , A 1 5 , A 1 6 分别接C P L D输出的S R A M- A 1 5 , SRAM-A16; M 2 9 F O 3 2 D 是4 M x 8 位的N O R型F L A S H ,共

需2 2 根地址线。A O - A 1 4 的接法与W 2 4 1 0 2 4 A 的相同,A 1 5 - A 2 1

接经 C P L D 锁存输出的A L 1 5 - A L 2 1 ; 所有数据存储器的读写控制线与M C U相应的读写控制线相连。S R A M 和 F L A S H的片

选信号由 C P L D内部译码产生: / C S - S R A M 接S R A M 的片

选,/ C S - F L A S H接 F L A S H的片选。

3.2.2、CPLD的功能实现

CPLD就是复杂可编程逻辑器件复杂可编程逻辑器件(CPLD)。CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC 结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。

使用CPLD 器件可以提高系统设计的灵活性,并且可以简化电路设计,节省很多常规电路中的接口器件和I/O 口线。系统将单片机的地址线、各种控制和

状态信号均引入CPLD,实现系统的地址译码和部分I/O 控制。系统中C P L D 采用的是MAX7000 系列的EPM7128STC100 -10。AL15~AL22 为系统锁存出来的高8 位地址,该地址锁存器的地址为:0x7F00;状态缓冲器地址为:0x7F20,通过状态缓冲器可以读取FLASH 的当前状态,判断FLASH 当前状态是忙还是空闲,如果应用系统中还有其它状态信号可以接至该状态缓冲器的输入端。/CS2~/CS7 可以用作其他器件的片选。

3.2.3、AT89C52简介

89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器和256byte的随机数据存储器,器件采用ATMEL公司高密度\非易失性存储技术生产,与标准的51指令系统以8052产品引脚兼容,片内置通用8位中央处理器和FLASH存储单元,功能强大89C52单片机适合于许多较为复杂控制应用场合.

主要性能参数:

.与MCS-51产品指令和引脚完全兼容.8K字节可重擦写FLASH闪速存储器.1000次擦写周期

.全静态操作:0Hz-24 Hz

.三级加密程序存储器

.256*8字节内部RAM .32个可编程I/O口线.3个16位定时/计数器.8个中断源

.可编程串行UART通道.低功耗空闲和掉电模式

功能特性概述:

AT89C52提供以下标准功能:8K字节FLASH闪存存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路.同时,AT89C52可降至0 Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

引脚功能说明

.vcc:电源电压

.GND:地

.P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据复用,在访问期间激活内部上拉电阻。

在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

.P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流。

.P2口:P2是一个带有内部上拉电阻的双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。

FLASH编程或校验时,P2亦接收高位地址和一些控制信号。

.P3口:P3口是一组带有内部上拉电阻的双向8位I/O。P3口输出缓冲级可驱动4个TTL逻辑门电路。对P3口写“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O线外,更重要的用途是它的第二功能

端口引脚第二功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行口输出口)

P3.2 INT0 (外中断0)

P3.3 INT1(外中断1)

P3.4 T0(定时/计数器0)

P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器选通)

.RST:复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

.ALE/PROG:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于所村地址的8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

.PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

.EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器,EA端必须保持低电平。

.XTAL1:振荡器反向放大的及时内部时钟发生器的输入端。

.XTAL2:振荡器反向放大的输出端。

.特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器。

AT89C52除了与AT89C51所有的定时/计数器和定时/计数器外,还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2CON T2MOD,寄存器对是定时器2在16位捕捉或16位自动重装方式下捕捉/自动重装载寄存器。.中断寄存器:AY89C52有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。

.数据存储器AT89C52有256个字节的内部RAM,80H-FFH高128个字节与特殊功能寄存器地址是重叠的,也就是高128字节的RAM和特殊功能寄存器的地址是相同的,但物理上它们是分开的。

.定时器0和定时器1:AT89C52的定时器和定时器1的工作方式与AT89C51

相同。

.定时器2:定时器是一个16位定时/计数器。它既可当定时器使用,也可作为外部时间计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2位选择。定时器2有三种工作方式:捕捉方式,自动重装载方式和波特率发生器方式,工作方式由T2CON的控制位来选择。见表

RCLK+TCLK CP/RL2 TR2 MODE

0 0 1 16-BITAUTO-RELOAD

O 1 1 16BIT-CAPUTURE

1 X 1 BAUD RATE ENERATOR

X X 0 OFF

定时器2由两个8位寄存器TH2和TL2组成,在定时器工作方式中,每个机器周期TL2寄存器的值加1,由于一个机器周期由12个振荡时钟构成,因此,计数速率为振荡频率的1/12。

在计数工作方式时,当T2引脚上外部输入信号产生由1至0下降沿时,寄存器的值加1,在这种方式下,每个机器周期的5SP2期间寄存器加1。由于识别1至0的跳变需要2个机器周期,因此,最高计数速率为振荡的1/24。为确保采样的正确性,要求输入的电平在此变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。

图AT89C52框图

3.2.4、SRAM的功能及其实现

1 2 8 K 的S R A M 被S R A M _ A 1 5 和S R A M _ A 1 6 分成4 个B A N K ,每个B A N K 均为3 2 K ,其中B A N K 0 地址范围是:0x0000~0x7EFF,当A15 为0 时BANK0 被选中,BANK0 可用来存储用户定义的各种变量,以LARGE 方式编译的C51 用户函数的参数传递也在该区实现,只要设置C51 编译器的片外SRAM 的大小为0x7F00 字节(32K -256 字节),起止地址为:0x0000。这样当系统在访问外部大容量数据存储器(如4M 的F L A S H )并且系统产生中断时,由于系统在函数调用时自动使A15 为0 ,故此时BANK0 是可用的,这样保证了系统在这种情况下能稳定的运行。由于访问B A N K 1 ~ B A N K 3 时A 1 5 必须为1 ,故BANK1~BANK3 的地址范围均为:0x8000~0xFEFF,通过SRAM_A15 和SRAM_A16 来区分它们是属于哪个BANK 的,访问BANK1~BANK3 的前提是AL22 为0 。BANK1~BANK3 可用来存储用户数据。当AL22 和A15 均为1 时4M 的FLASH 被选中,FLASH 被AL15~AL21 分成了128 页,每页为32K。

3.3、基本单片机系统大容量数据存储器系统扩展

MCS-51单片机系统扩展时,一般使用P0口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,寻址空间为64KB。但在实际应用中,有一些特殊场合,例如,语音信号的采集,程控交换机话单的存储,地形图信号的收取等,需要有大于64KB的数据存储器。文章根据作者实际使用的应用系统,介绍一种大容量数据存储器的扩展系统。该系统主机采用51芯片,扩展了三片62256,共96KB的动态数据存储器。

系统的硬件组成:

62256是32K×8位的数据存储器,共有15根地址线,扩展96KB数据存储器的硬件连接原理如图1所示:为了给系统进行其它外设的扩展,占用了系统14根地址线。三片62256的第15根地址线都与8031的I/O口P1.0相连,而62256(1)的片选端与P1.1相连,62256(2)的片选端与P1.2相连,62256(2)的片选端与P1.3相连,这样的连接方式使96KB的存储空间分为6页,每片62256都占用2页存储空间。各片地的地址分配如下:

62256(1):

P1.0=0 P1.1=0 P1.2=1 P1.3=1 0000H~3FFFH

P1.0=1 P1.1=0 P1.2=1 P1.3=1 0000H~3FFFH

62256(2):

P1.0=0 P1.1=1 P1.2=0 P1.3=1 0000H~3FFFH

P1.0=1 P1.1=1 P1.2=0 P1.3=1 0000H~3FFFH

62256(3):

P1.0=0 P1.1=1 P1.2=1 P1.3=0 0000H~3FFFH

P1.0=1 P1.1=1 P1.2=1 P1.3=0 0000H~3FFFH

软件处理方法:

当访问数据存储器时,采用分页查找的方法,首取找到要访问的页数,

再打开该页,在该页内查找某一单元。软件上打开某页都事先编好子程序。要访问96KB的存储空间,即地址范围为00000H-17FFFH,显然16位地址寄存器DPTR是无法寄存的,这里将地址装入PAM的起始三个连续单元中,即62256(1)起始三个单元中的内容(即要访问的某单元地址),将该数据除以4000H,得商即为该单元的页数,余数即为该页中的地址,然后利用MCS-51指令中的散转指令打开页,访问页中的单元。具体软件实现见下面的程序清单。

#BUF EQU #30H

CLR P1.0

CLR P1.1

SETB P1.2

SETB P1.3

MOV DPTR,#0

MOV R7,#3

MOV R0,#20H

RDPAGE:

MOVX A,@DPTR

MOV @R0,A

INC R0

DJNZ R7,RDPAGE

LCALL FPAGE

MOV B,#3

MUL AB

MOV DPTR,#TABLE

JMP @A+DPTR

FPAGE:

MOV A,21H

ANL A,@0F0H

ADD A,20H

SWAP A

MOV B,#1

DIV AB

PUSH ACC

MOV A,21H

ANL A,0FH

XCH A,B

MOV 21H,A

POP ACC

RET

TABLE:

LJMP PAGE1

LJMP PAGE2

LJMP PAGE2

LJMP PAGE4

LJMP PAGE5

LJMP PAGE6

CLR P1.1

SETB P1.2

SETB P1.3

LJMP WRRAM

PAGE3:

CLR P1.0

SETB P1.1

CLR P1.2

SETB P1.3

LJMP WRRAM

PAGE:

SETB P1.1

SETB P1.2

CLR P1.3

LJMP WRRAM

WRRAM:

MOV DPH,21H

MOV R0,#BUF

MOV A,@R0

MOVX @DPTR,A

第四节系统的软件设计

系统主程序设计

如用KEIL 编译C51 程序时,首先设置项目的编译模式为L A R G E 模式,并设置片外X R A M 的相关参数为:S T A R T :0x0000 ,SIZE:0x7F00。访问BANK0 时无需编写子程序,系统可以直接访问。访问S R A M 的B A N K 1 ~ B A N K 3 步骤为:①锁存高8 位地址使AL22 为0 ,设置BANK 值(要访问SRAM的绝对物理地址除于3 2 K ,商为B A N K 值,余数为B A N K 内的偏移地址)②在0x8000~0xFEFF 地址范围内操作SRAM(A15=1)Write_Sram_Bank123 函数的功能为写一个字节数据至片外SRAM 的BANK1~BANK3,Read_Sram_Bank123 函

数的功能是从SRAM 的BANK1~BANK3 读一个字节数据。相关C 5 1 示例代码如下:

void Write_Sram_Bank123(unsigned long address,

unsigned char val)

{

unsigned char bank;unsigned int addr_bank;

bank = address / 0x8000;// 商为BANK 值。

if ((bank > = 1 ) && (bank <= 3))

{

addr_bank = address % 0x8000;// 余数

;为B A N K 内地址。

XBYTE [0x7f00] = bank;// AL22=0,

;设置B A N K 值。

XBYTE[0x8000+addr_bank] = val; // 写S R A M 。

}

}

unsigned char Read_Sram_Bank123(unsigned longaddress)

{

unsigned char bank;unsigned int addr_bank;

bank = address / 0x8000;// 商为BANK 值。

if ((bank > = 1 ) && (bank <= 3))

{

addr_bank = address % 0x8000;// 余数为B A N K 内地址。

XBYTE [0x7f00] = bank;// AL22=0,设置BANK值。

return XBYTE[0x8000+ addr_bank];// 读S R A M 。

}

else return 0xff;

}

访问FLASH 的步骤如下:①锁存高8 位地址使AL22 为1,同时设置要访问的7 位页码值(要访问FLASH 的绝对物理地址除于3 2 K ,商为页码值,余数为页内的偏移地址)②在0 x 8 0 0 0 ~0 x F E F F 地址范围内操作F L A S H (A 1 5 = 1 )。Write_Flash 函数实现了往4M FLASH 写一个字节的功能;Read_Flash 函数的功能是在FLASH 里读取一个字节内容。相关C 5 1 示例代码如下:

void Write_Flash(unsigned long address,unsignedchar val)

{

unsigned char data page,unsigned int data addr_page;

page = address / 0x8000;// 商为页码值。

addr_page = address % 0x8000;// 余数为页内地址。

XBYTE [0x7f00] = 0x80 + page; // AL22=1,并设置page 值。

XBYTE[0x8000+addr_page] = val;// 写FLASH。

}

unsigned char Read_Flash(unsigned long address)

{

unsigned char data page,unsigned int data

addr_page;

page = address / 0x8000;// 商为页码值。

addr_page = address % 0x8000;// 余数为页内地址。

XBYTE [0x7f00] = 0x80 + page;// AL22=1,并设置page 值。

return XBYTE[0x8000+addr_page];// 读FLASH

}

五、结论

使用本方法可轻易地为MCS-51单片机扩展大容量的数据存储器,这对于数据量大的数据采集系统有着非常大的意义。采用了上述硬件设计方法及软件处理方法,实践证明基于这种方法扩展大容量数据存储器的单片机应用系统具有对数据存储器操作简便、系统运行稳定的特点,解决了系统在访问大容量数据存储器并且产生异常时程序跑飞的问题。而且,由于CPLD具有可编程重特性,因而可以根据需要方便地改变内部逻辑功能,而且简单易行,易于系统调试及升级,同时具有很高的性价比。

六、参考资料

[1]百度百科https://www.360docs.net/doc/2717134353.html,/view/2251929.htm

[2] 王艳,靳孝峰单片机原理与应用北京航空航天大学出版社2009

[3] 黄正瑾,CPLD系统设计技术入门与应用[M]. 北京: 电子工业出版社, 2002

简单51单片机开发板的电路设计

一、摘要 本文给出了一个简单51单片机开发板的电路设计,完成了其原理图的绘制和PCB图的制作。着重介绍使用protel99SE画出的电路设计原理图,接着是对电路各个模块功能的分析,然后是电路所用主要芯片和其他重要元件的功能介绍以及内部封装和引脚分布,最后介绍用protel99SE画出的PCB板。此开发板具有串口通信、液晶显示、流水灯、扩展、RTC 时钟、复位、外部中断、外部存储、A/D D/A转换、报警、继电器控制等开发功能。 关键字:51单片机开发板 protel99 PCB 二、实验所用元器件及其介绍 、清单

SW-SPDT1自制封装1KΩ电阻150805 2KΩ电阻50805 三极管90152TO-18 HRS4-S-DC5V继电器1自制封装跳线6 LED110805 9针串口1DB9/M 极性电容10uF1.6 104电容40805 30pF电容50805 电池Battery1自制封装响铃1 n口排针4SIP n 晶振12MHZ1XTAL1 外接晶振1XTAL1 主要芯片引脚图和实物图 STC89C52

图(1) STC89C52引脚图 图(2) STC89C52实物图 8255

图 8255引脚图 DS1302 图(1) DS1302引脚图 表 DS1302引脚描述 引脚号符号描述引脚号符号描述 1VCC2备用电源5复位 2X1晶振引脚6 I/O数据输入/输

24C08 图(1) 24C08引脚图 表 24C08功能表

图(2) 24C08 实物图 MAX232 图(1)MAX232引脚图 表各引脚功能及推荐工作条件

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.360docs.net/doc/2717134353.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

80C51单片机存储器的扩展

程设计任务书 机械工程学院学院机制1211 班学生张会利-39号 课程设计题目: 单片ROM扩展 一、课程设计工作日自 2015 年 1 月 19 日至 2015 年 2 月 23 日 二、同组学生:张会利 三、课程设计任务要求(包括课题来源、类型、目的和意义、基本要求、完成时间、主要参考资 料等): 1、目的及意义 (1)巩固和深化《单片机原理及应用》课程的理论知识,培养,分析、解决实际问题的能力。(2)掌握单片机基本运用技术及汇编语言的基本方法,能根据题目要求确定设计思路、绘制流程图、编制并调试汇编语言程序,得出结果。 2、主要内容 用一片Intel2732为80C51单片机扩展一个4KB的外部程序存储器,要求使用73LS138译码器,地址范围为A000H~AFFFH。请连线并写明扩展步骤。 3、基本要求 (1)分析题目,写出详细分析过程。 (2)绘制工作流程图。 (3)编制程序,画出硬件线路图。 (4)上机调试程序,运行结果。 (5)编写设计说明书,包括1—4个步骤的内容。 (6)答辩。 4、主要参考资料 单片机基础及应用,赵巍,冯娜,马苏常,刘玉山等,清华大学出版社,2009年指导教师签字:教研室主任签字:

程序设计说明书 (一)芯片简介 1.2732简介: 2732是容量为4k×8位(4KB)。采用单一+5V供电,最大静态工作电流100mA, 电流35mA出时间最大为250ns. 2732的封装形式为DIP24,管脚如图所示。 ●A0~A11 :12条地址线,表示有212个地址单元 ●O0~O7 :8条数据线,表示地址单元字长8位 ●CE :片选控制输入端,低电平有效 ●OE/Vpp :双功能管脚,低电平时,允许2732输出数据 ●Vcc :工作电平+5V ●GND :芯片接地端 2.74LS373简介: 74LS373是带三态缓冲输出的8D锁存器,由于单片机的三片总线结构中,数据线与地址线的低8位公用P0口,因此必须用地址所存器将地址信号和数据信号区分开。74L373的锁存控制端G直接与单片机的锁存控制信号和数据信号ALE相连,在AEL的下降沿锁存低8位地址。

STC89C51单片机学习电路板设计

设计题目:STC89C51单片机学习电路板设计 题目性质:一般设计 指导教师:[04054]吕青 毕业设计(论文)要求及原始数据(资料) 1.课题简介: STC89C51系列单片机具有功能强、价格低的特点,是51系列单片机最好的替代机型。本题目就是为入门该系列单片机设计一个学习电路板,满足学习该型号单片机的需求。 该学习电路板用于C8051F330单片机的学习。该板具有RS232接口、数码管、发光二极管显示、键盘、模拟量输入、蜂鸣器和具有扩展实验接口。设计原则是简单实用。 2.技术参数 1)使用美国Silabs公司STC89C51单片机 2)具有1个RS232接口 3)具有8个数码管(HC595驱动) 4)具有4个按钮 5)具有1路模拟量电压输入 6)ISP下载接口与下载电缆电路 7)具有蜂鸣器与驱动电路 8)供电:AC220V 9)具有8个LED 10)具有功率接口(具有AC220V,1A驱动能力) 11)具有D/A输出 毕业设计(论文)主要工作内容 主要内容 1)了解市场上的各种单片机学习板,制定设计方案。 2)学习STC89C51单片机的数据手册 3)学习STC89C51 单片机的相关参考书 4)学习PROTEL软件 5)学习板原理图设计 6)电路板(PCB)设计 7)调试电路板 8)熟悉STC89C51 单片机的C编译器与编程软件 9)编写C语言的电路板测试程序 10)编写学习使用说明 学生应交出的设计文件(论文) 1论文。要求内容准确,叙述清晰流畅,图文详尽,正文不少于60页,不得有错别字,并符合学校对论文的各项要求。主要内容包括: 1)学习板总体设计概述; 2)学习板结构设计说明(包括总体结构总框图); 3)学习板原理图设计说明(包括硬件电路原理图,用Protel98se画); 4)学习板硬件电路板设计说明(包括PCB板图); 5)学习板软件程序设计说明(包括程序流程图和源程序清单及注释); 6)学习板主要示例子程序设计说明(包括程序流程图和源程序清单及注释); 7)设计难点和遗留问题(包括设计中遇到的难题和解决方法,以及尚未解决的问题和解决的思路);

单片机电路图详解

单片机:交通灯课程设计(一) 目录 摘要--------------------------------------------------------- 1 1.概述 -------------------------------------------------------- 2 2.硬件设计----------------------------------------------------- 3 2.1单片机及其外围--------------------------------------------3 2.1.1单片机的选择-----------------------------------------3 2.1.2单片机的特点及其应用范围----------------------------- 3 2.1.3存储器的扩展----------------------------------------- 4 2.1.4内存的扩展------------------------------------------- 6 2.1.5MCS-52的I/O接口扩展--------------------------------- 8 2.2电路部分--------------------------------------------------11 2.2.1元器件选用-------------------------------------------11 2.2.2电路完成功能-----------------------------------------13 3.软件设计------------------------------------------------------15 3.1软件概述-------------------------------------------------15 3.2汇编语言指令说明-----------------------------------------16 3.3定时/计数器的原理----------------------------------------16 3.3.1定时/计数器的概述-----------------------------------16 3.3.2 8255A片选及各端口地址-------------------------------18 3.3.3信号控制码------------------------------------------18 3.3.4工作方式寄存器--------------------------------------19 3.3.5定时/计数器初值及定时器T0的工作方式----------------20

单片机的存储组织和结构认识

单片机的存储组织和结构认识 一.51单片机为例 1、一个8位的微处理器CPU。 2、片内数据存储器(RAM128B/256B):用以存放可以读 /写的数据,如运算的中间结果、最终结果以及欲显示 的数据等。 3、片内4kB程序存储器Flash ROM(4KB):用以存放 程序、一些原始数据和表格。 4、四个8位并行I/O(输入/输出)接口P0~P3:每个口 可以用作输入,也可以用作输出。 5、两个或三个定时/计数器: 每个定时/计数器都可以 设置成计数方式,用以对外部事件进行计数,也可 以设置成定时方式,并可以根据计数或定时的结果实现计算机控制 6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。 7、片内振荡器和时钟产生电路:但需外接晶振和电容。 8、五个中断源的中断控制系统。 9、具有节电工作方式:休闲方式及掉电方式。 二、结构:由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图所示: 下面介绍的是mcs-51 MCS-51单片机存储器的配置特点 ①内部集成了4K的程序存储器ROM; ②内部具有256B的数据存储器RAM; ③可以外接64K的程序存储器ROM和数据 存储器RAM。 三、从物理结构的角度讲 51单片机的存储系统可以分为四个存储空间:既片内 ROM,RAM和片外ROM、RAM。 从逻辑上讲(既编程的角度),51单片机的存储系统实际 上分为三个存储空间。 1. 片内数据存储器RAM; 2. 片外数据存储器RAM; 3. 片内或外的程序存储器ROM(由EA电平决定)。 物理结构: 1.程序存储器ROM用于存放程序、常数或表格。 2.在51单片机中,由引脚/EA 上的电平选择内、外 ROM:EA=1时,CPU执行片内的4KROM中的程序; EA=0 时,CPU选择片外ROM中的程序。 3.无论是使用片内还是使用片外ROM,程序的起始地 址都是从ROM的0000H单元开始。 4.尽管系统可以同时具备片内ROM和外部ROM,但是 在一般正常使用情况下,通过/EA的设定来选择其一 (或者使用内部ROM,或者使用外部ROM)。 5.如果EA=1(执行片内程序存储器中程序时):如果程序

51单片机大容量数据存储器的扩展

郑州航空工业管理学院 《单片机原理与应用》 课程设计说明书 10 级自动化专业 1006112 班级 题目51单片机大容量数据存储器的系统扩展姓名杨向龙学号100611234 指导教师王义琴职称讲师 二О一三年六月十日

目录 一、51单片机大容量数据存储器的系统扩展的基本原理 (4) 二、设计方案 (4) 三、硬件的设计 (5) 3.1 系统的硬件构成及功能 (5) 3.2硬件的系统组成 (5) 3.2.1、W241024A (5) 3.2.2、CPLD的功能实现 (5) 3.2.3、AT89C52简介 (6) 3.2.4、SRAM的功能及其实现 (9) 3.3、基本单片机系统大容量数据存储器系统扩展 (9) 五、结论 (13) 六、参考资料 (13)

51单片机大容量数据存储器的系统扩展 摘要:在单片机构成的实际测控系统中,仅靠单片机内部资源是不行的,单片 机的最小系统也常常不能满足要求,因此,在单片机应用系统硬件设计中首先要解决系统扩展问题。51单片机有很强的外部扩功能, 传统的用IO口线直接控制大容量数据存储器的片选信号的扩展系统存在运行C51编译的程序时容易死机的缺点。文中介绍了一种改进的基于CPLD的51系列单片机大容量数据存储器的扩展方法,包括硬件组成和软件处理方法。 关键字:W241024A、CPLD、AT89C52、SRAM 一、51单片机大容量数据存储器的系统扩展的基本原理 MCS-51 单片机系统扩展时,一般使用P0 口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,最大寻址空间为64KB。但在实际应用中,有一些特殊场合,例如,基于单片机的图像采集传输系统,程控交换机话单的存储等,需要有大于64KB 的数据存储器。 二、设计方案 在以往的扩展大容量数据存储器的设计中,一般是用单片机的IO口直接控制大容量数据存储器的片选信号来实现,但是这种设计在运行以C51编写的程序(以LARGE 方式编译)时往往会出现系统程序跑飞的问题,尤其是在程序访问大容量数据存储器(如FLASH)的同时系统产生异常(如中断),由于此时由IO 口控制的片选使FLASH 被选中而SRAM 无法被选中,堆栈处理和函数参数的传递无法实现从而导致程序跑飞的现象。文章介绍一种基于CPLD 的大容量数据存储器的扩展系统,避免了上述问题的产生,提高了扩展大容量数据存储器系统的可靠性。该系统MCU 采用89C52,译码逻辑的实现使用了一片EPM7128 CPLD 芯片,系统扩展了一片128K 的SRAM,一片4M 字节的NOR FLASH,以上芯片均为5V 供电。

51单片机AD89电路设计程序+原理图

AD0809在51单片机中的应用 我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。下现我们就来了解一下AD0809与51单片机的接口及其程序设计。 1、AD0809的逻辑结构 ADC0809是8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

2、AD0809的工作原理 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道

的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(+),VREF(-)为参考电压输入。

51单片机的若干电路原理图

51单片机的若干电路原理图 单片机 2007-10-23 20:36:31 阅读198 评论0 字号:大中小订阅 利用下面这些原理图,就可以自己动手做个简单的实验板啦~~~~ 1 外接电源供电电路及电源指示灯 在单片机实训板上为系统设计了一个外接电源供电电路,这个电源电路具备两种电源供电方式:一种是直接采用PC的USB接口5V直流电源给实训板供电,然后在电源电路中加入一个500mA电流限制的自恢复保险丝给PC的USB电源提供了保护的作用;另一种是采用小型直流稳压电源供电,输出的9V直流电源加入到电源电路中,通过LM7805稳压芯片的降压作用,给实训板提供工作所需的5V电源。 如图2.4所示为采用LM7805稳压芯片进行降压供电的电源电路。 图2.4 外接电源供电电路 同时,为了显示外接电源给实训板提供了电源,在系统中增加了电源指示灯电路,如图2.5。 发光二极管工作在正常工作状态时,流过LED的电流只需要5~10mA左右就行,在电路中采用白发红高亮LED,所以可以取5mA左右

的电流值,通过计算,可知:连接LED的限流电阻的阻值可以采用680Ω。 图2.5 电源指示灯电路 2 系统复位电路 复位是单片机的初始化操作,只要给RESET引脚加上2个机器周期以上的高电平信号,即可使单片机复位。除了进入系统的正常初始化之外,当程序运行出错或是操作错误使系统处于死锁状态时,为了摆脱死锁状态,也需要按复位键重新复位。 在系统中,为了实现上述的两项功能,采用常用的按键电平复位电路,如图2.6所示。 2.6 按键电平复位电路 从途中可以看出,当系统得到工作电压的时候,复位电路工作在上电自动复位状态,通过外部复位电路的电容充电来实现,只要Vcc

MCS-51单片机存储器结构

MCS-51单片机在物理结构上有四个存储空间: 1、片内程序存储器 2、片外程序存储器 3、片内数据存储器 4、片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1、片内外统一编址的64K的程序存储器地址空间(MOVC) 2、256B的片内数据存储器的地址空间(MOV) 3、以及64K片外数据存储器的地址空间(MOVX) 在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。 程序内存ROM 寻址范围:0000H ~ FFFFH 容量64KB EA = 1,寻址内部ROM;EA = 0,寻址外部ROM 地址长度:16位 作用:存放程序及程序运行时所需的常数。 七个具有特殊含义的单元是: 0000H ——系统复位,PC指向此处; 0003H ——外部中断0入口 000BH —— T0溢出中断入口

0013H ——外中断1入口 001BH —— T1溢出中断入口 0023H ——串口中断入口 002BH —— T2溢出中断入口 内部数据存储器RAM 物理上分为两大区:00H ~ 7FH即128B内RAM 和SFR区。 作用:作数据缓冲器用。 下图是8051单片机存储器的空间结构图 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设

计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。 MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。 当=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。 当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。 8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意: 其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H 单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。 另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下: 0003H—000AH 外部中断0中断地址区。 000BH—0012H 定时/计数器0中断地址区。

基于51单片机的液晶显示器控制电路设计_本科论文

XXXXXXX 毕业设计 题目GPRS无限通讯数据系统的设计与应用姓名xxx 学号xxx 专业班级xxx 分院xxx

指导教师xxx xxxx年xxx月xxx日

目录 摘要............................................... 错误!未定义书签。ABSTRACT........................................................... I I 第一章概述 (1) §1.1系统背景 (1) §1.2 系统概述 (2) 第二章方案论证 (3) §2.1字模数据的存储 (3) §2.2 通信电路 (3) 第三章液晶显示模块简介 (4) §3.1 显示控制器 (5) §3.2 列驱动方式 (10) §3.3 行驱动方式 (11) 第四章硬件设计 (13) §4.1硬件电路设计要求 (13) §4.2 总体电路设计构架 (13) §4.3 单片机与液晶显示模块接口 (13) §4.4 单片机与计算机的通信接口 (14) §4.5 电源电路 (15) 第五章系统软件设计 (15) §5.1 内置T6963C控制器软件特性 (15) §5.2初始化子程序设计 (19) §5.3 串行通信子程序设计 (20) §5.4 显示控制子程序设计 (21) 第六章系统调试 (22) §6.1 分步调试 (22) §6.2 系统统一调试 (23) 结束语 (24) 附录 (25)

参考文献 (30) 致谢............................................. 错误!未定义书签。

6264与51单片机扩展

Intel6264芯片 单片机内存扩展6264芯片 2012-5-2 1.Intel6264芯片 Intel 6264的特性及引脚信号Intel 6264的容量为8KB,是28引脚双列直插式芯片,采用CMOS工艺制造 A12~A0(address inputs):地址线,可寻址8KB的存储空间。 D7~D0(data bus):数据线,双向,三态。 OE(output enable):读出允许信号,输入,低电平有效。 WE(write enable):写允许信号,输入,低电平有效。 CE1(chip enable):片选信号1,输入,在读/写方式时为低电平。 CE2(chip enable):片选信号2,输入,在读/写方式时为高电平。 VCC:+5V工作电压。 GND:信号地。 Intel 6264的操作方式Intel 6264的操作方式由, CE1 , CE2的共同作用决定 ②读出:当和CE1为低电平,且和CE2为高电平时,数据输出缓冲器选通,被选中单元的数据送到数据线D7~D0上。 2. 74LS373 有54S373 和74LS373 两种线路结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):型号TPD PD 54S373/74S373 7ns 525mW 54LS373/74LS373 17ns 120mW 373 的输出端O0~O7 可直接与总线相连。当三态允许控制端OE 为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。当OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE 为高电平时,Q 随数据D 而变。当LE 为低电平时,D 被锁存在已建立

电子时钟基于AT89c51单片机设计电路图及程序

电子时钟基于AT89c51单片机的设计 电子时钟原理图 开机显示仿真图: 当按下仿真键时电子时钟开机页面显示第一行显示JD12102Class--16,第二行显示动态TINE:12:00:04。 电子时钟调时间仿真图:当按下K1为1次时,光标直接跳到电子时钟的秒,可以按下K2进行调节。 当按下K1为2次时,光标直接跳到电子时钟的分,可以按下K2进行调节。 当按下K1为3次时,光标直接跳到电子时钟的时,可以按下K2进行调节。 当按下K1为4次时,光标直接跳完,电子时钟可以进行正常计时。 电子时钟闹钟调节仿真:当按下K3为1次时,直接跳到闹钟显示界面00:00:00,按下K2可以对闹钟的秒进行调节。 当按下K3为2次时,可以调到分,按下K2可以对闹钟的分进行调节。 当按下K3为3次时,可以调到时,按下K2可以对闹钟的时进行调节。 当按下K3为4次时,直接跳到计时界面,对闹钟进行到计时,时间到可以发出滴滴声。

#include<> #define uchar unsigned char //预定义一下 #define uint unsigned int uchar table[]="JD12102Class--21"; //显示内容 sbit lcden=P3^4; //寄存器EN片选引脚 sbit lcdrs=P3^5; //寄存器RS选择引脚 sbit beep=P3^6; //接蜂鸣器 extern void key1(); extern void key2(); extern void key3(); uchar num,hour=12,minite,second,ahour,aminite,asecond,a,F_k1,F_k2,F_k3; //定义变量 void delay(uint z) //延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) { lcdrs=0; P0=com; //送出指令,写指令时序 delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date) { lcdrs=1; P0=date; //送出数据,写指令程序 delay(5); lcden=1; delay(5); lcden=0; }

单片机电路图详解

单片机:交通灯课程设计(一)(2007-04-21 13:28:54) 目录 摘要--------------------------------------------------------- 1 1.概述 -------------------------------------------------------- 2 2.硬件设计----------------------------------------------------- 3 2.1单片机及其外围--------------------------------------------3 2.1.1单片机的选择-----------------------------------------3 2.1.2单片机的特点及其应用范围----------------------------- 3 2.1.3存储器的扩展----------------------------------------- 4 2.1.4内存的扩展------------------------------------------- 6 2.1.5MCS-52的I/O接口扩展--------------------------------- 8 2.2电路部分--------------------------------------------------11 2.2.1元器件选用-------------------------------------------11 2.2.2电路完成功能-----------------------------------------13 3.软件设计------------------------------------------------------15 3.1软件概述-------------------------------------------------15 3.2汇编语言指令说明-----------------------------------------16 3.3定时/计数器的原理----------------------------------------16 3.3.1定时/计数器的概述-----------------------------------16 3.3.2 8255A片选及各端口地址-------------------------------18 3.3.3信号控制码------------------------------------------18 3.3.4工作方式寄存器--------------------------------------19 3.3.5定时/计数器初值及定时器T0的工作方式----------------20

MCS-51单片机存储器的扩展

第八章MCS-51单片机存储器的扩展 第一节MCS-51单片机存储器的概述 (一)学习要求 1、熟悉MCS-51 单片机的系统总线及系统总线扩展结构 2、掌握常用的片选方法:线选法和全地址译码法。 (二)内容提要 1、三总线的扩展方法 单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。 MCS-51单片机的扩展性能较强,根据需要,可扩展。三总线是指地址总线、数据总线、控制总线。 1)地址总线 MCS-51 单片机地址总线宽度为16 位,寻址范围为64K。 地址信号:P0 作为地址线低8 位,P2 口作为地址线高8 位。 2)数据总线 MCS-51 单片机的数据总线宽度为8 位。 数据信号:P0 口作为8 位数据口,P0 口在系统进行外部扩展时与低8 位地址总线分时复用。 3)控制总线 主要的控制信号有/WR 、/RD 、ALE 、/PSEN 、/EA 等。 2、系统的扩展能力 MCS-51 单片机地址总线宽度为16 位,因此它可扩展的程序存储器和数据存储器的最大容量是64K(216)。 1)线选法 线选法就是将多余的地址总线(即除去存储容量所占用的地址总线外)中的某一根地址线作为选择某一片存储或某一个功能部件接口芯片的片选信号线。一定会有一些这样的地址线,否则就不存在所谓的“选片”的问题了。每一块芯片均需占用一根地址线,这种方法适用于存储容量较小,外扩芯片较少的小系统,其优点是不需地址译码器,硬件节省,成本低。缺点是外扩器件的数量有限,而且地址空间是不连续的。 2)全地址译码法 由于线选法中一根高位地址线只能选通一个部件,每个部件占用了很多重复的地址空间,从而限制了外部扩展部件的数量。采用译码法的目的是减少各部件所占用的地址空间,以增加扩展部件的数量。 3)译码器级连 当组成存储器的芯片较多,不能用线选法片选,又没有大位数译码器时,可采用多个小位数译码器级连的方式进行译码片选. 4)译码法与线选法的混合使用 译码法与线选法的混合使用时,凡用于译码的地址线就不应再用于线选,反之,已用于线选的地址线就不应再用于译码器的译码输入信号. (三)习题与思考题 1. 简要说明MCS-51 单片机的扩展原理。

51单片机数码管时钟电路的设计-AT89C51

广东石油化工学院 《51单片机原理与实践》课程设计报告 学院计算机与电子信息学院 专业 班级 学号 姓名 指导教师 课程成绩 完成日期 2010年12月27日

数码管时钟电路的设计 一、设计目的: 通过这次课程设计掌握单片机系统的基本设计步骤及设计思路,掌握汇编语言的用法及各种指令的含义,比较熟练的运用指令进行单片机系统的设计的,熟悉用KEIL软件进行汇编语言的汇编,以及把代码写入实验板中,观测代码结合实际的运行结果后进行调整,体会到编程的分析问题、确定算法、画程序流程图、编写程序、程序功能模块化的优点的各各步骤。 二、设计要求: LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。 三、设计实验内容: 1. 硬件的设计 其采用AT89C51单片机应用设计,LED显示采用动态扫描方式实现,P0口输出段码数据,P2口输出位码数据,P1.1、P1.2接按钮开关。为了提供LED数码管的驱动电流,采用6MHz晶振。 2. 系统总体分析 系统主要包含四大模块:显示模块、时间计时模块、模式切换模块和模式设置模块。

●显示模块:主要由主循环负责。内存中开辟了一段8字节的内存空间, 用作数据显示的字符缓冲区。主循环不断将缓冲区中的字符呈现至数码管。 ●时间计时模块:电子钟的核心模块,记录了时间的时、分、秒信息。 ●模式切换模块(MODE):切换电子钟的设置模式,包括时设置、分设置、 秒设置、闹铃开关设置、闹铃时设置和闹铃分设置。相关数据被设置时将闪烁显示。 ●模式设置模块(CONFIG):通过判断设置模式(MODE),执行相应的设置。 如时、分、秒的增1以及闹铃开关的变换。 另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms,用以消除机械抖动。 主循环流程图大致如下: 图(一)主循环流程图 定时器1中断服务程序流程图如下:

第11章 MCS-51单片机系统扩展-第1部分 - 1

第十一章 MCS-51单片机系统扩展 11.1 8051/8751的最小系统 80C51片内有4KB的程序存储器,因此,只需要外接晶体振荡器和复位电路就可构成最小系统。 图11-1 最小单片机系统 最小系统的特点如下: (1)由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口使用。但P0口作为用户I/O口使用时,需要加上拉电阻。 (2)片内数据存储器有128字节,地址空间00H~7FH,没有片外数据存储器。 (3)内部有4KB程序存储器,地址空间0000H~0FFFH,没有片外程序存储器,EA应接高电平。 (4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。 80C51虽有4个I/O口P0~P3,但在大多数应用系统中,真正用作I/O 口线的只有P1口的8位位线和P3口的某些位线。因此,在I/O接口引脚不够,或在片内的存储器资源还不能满足要求时,需要进行如下的扩展: (1) 外部I/O接口的扩展;【例如74LS164、74LS165等】 (2) 外部程序存储器的扩展; (3) 外部数据存储器的扩展。

11.2 系统扩展结构 单片机采用总线结构,使扩展易于实现,单片机系统扩展结构如图11-2所示。 图11-2 80C51单片机的系统扩展结构 从图11-2可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。存储器扩展包括程序存储器扩展和数据存储器扩展。 系统扩展是以单片机为核心,通过总线把单片机与各扩展部件连接起来。因此,首先要利用单片机的I/O口构造系统总线。系统总线按功能通常分为3组,如图11-2所示。 (1)地址总线AB(Address Bus):用于发送CPU发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器的选择。 地址总线宽度为16位,由P0口经地址锁存器(通常用74LS373)提供地址低8位,P2口直接提供地址高8位,地址信号是由CPU发出的单方向信号。 存储器芯片的地址线的数目由芯片的容量决定。容量(Q)与地址线数目(N)满足关系式:2N Q 。存储器芯片的地址线与单片机的地址总线(A0~A15,P0口为低8位(需用74LS373锁存),P2口为高8位)按由低位到高位的顺序顺次相接。 一般来说,存储器芯片的地址线数目少于单片机地址总线的数目,因此连接后,单片机的高位地址线(P2口)应该有剩余。剩余的地址线一般作为译码线,译码器的输出与存储器芯片的片选信号线(CS或CE)相接。片选

MCS-51单片机存储器的扩展_百度文库.

第八章 MCS-51单片机存储器的扩展 第一节 MCS-51单片机存储器的概述 (一学习要求 1、熟悉 MCS-51 单片机的系统总线及系统总线扩展结构 2、掌握常用的片选方法:线选法和全地址译码法。(二)内容提要 1、三总线的扩展方法 单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。 MCS-51单片机的扩展性能较强,根据需要,可扩展。三总线是指地 址总线、数据总线、控制总线。 1)地址总线 MCS-51 单片机地址总线宽度为 16 位,寻址范围为 64K。 地址信号: P0 作为地址线低 8 位, P2 口作为地址线高 8 位。 2)数据总线 MCS-51 单片机的数据总线宽度为 8 位。 数据信号: P0 口作为 8 位数据口, P0 口在系统进行外部扩展时与低 8 位地址总线分时复用。 3)控制总线 主要的控制信号有 /WR 、 /RD 、 ALE 、 /PSEN 、 /EA 等。

2、系统的扩展能力 MCS-51 单片机地址总线宽度为 16 位,因此它可扩展的程序存储器和数据存储器的最大容量是64K(216)。 1)线选法 线选法就是将多余的地址总线(即除去存储容量所占用的地址总线外)中的某一根地址线作为选择某一片存储或某一个功能部件接口芯片的片选信号线。一定会有一些这样的地址线,否则就不存在所谓的“选片”的问题了。每一块芯片均需占用一根地址线,这种方法适用于存储容量较小,外扩芯片较少的小系统,其优点是不需地址译码器,硬件节省,成本低。缺点是外扩器件的数量有限,而且地址空间是不连续的。 2)全地址译码法 由于线选法中一根高位地址线只能选通一个部件,每个部件占用了很多重复的地址空间,从而限制了外部扩展部件的数量。采用译码法的目的是减少各部件所占用的 地址空间,以增加扩展部件的数量。 3)译码器级连 当组成存储器的芯片较多,不能用线选法片选,又没有大位数译码器时,可采用多个小位数译码器级连的方式进行译码片选. 4)译码法与线选法的混合使用 译码法与线选法的混合使用时,凡用于译码的地址线就不应再用于线选,反之,已用于线选的地址线就不应再用于译码器的译码输入信号. (三)习题与思考题 1. 简要说明MCS-51 单片机的扩展原理。

相关文档
最新文档