(完整版)第13讲51单片机按键电路

(完整版)第13讲51单片机按键电路
(完整版)第13讲51单片机按键电路

标题:键盘接口电路

教学目标与要求:

1.键盘去抖动和连接、控制方式

2.独立式按键及其接口电路

3.矩阵式键盘及其接口电路

授课时数:2

教学重点:.矩阵式键盘及其接口电路

教学内容及过程:

一、键盘接口概述

1、按键开关去抖动问题

机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms

在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。

软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步

骤进行确认,从而可消除抖动的影响。

2.编制键盘程序

一个完善的键盘控制程序应具备以下功能:

(1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。

(2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。

(3) 准确输出按键值(或键号),以满足跳转指令要求。

二、独立式按键

单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。

1. 独立式按键结构

独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。

独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。

2.矩阵式键盘

I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点:

①占用I/O端线较少;

②软件结构教复杂。

适用于按键较多的场合。

3.键盘扫描控制方式

⑴程序控制扫描方式

键处理程序固定在主程序的某个程序段。

特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。

⑵定时控制扫描方式

利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。

特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。

⑶中断控制方式

中断控制方式是利用外部中断源,响应键输入信号。

特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。

三、独立式按键及其接口电路

1、按键直接与I/O口连接

【例9-8】按图9-13(a)、(b),试分别编制按键扫描子程序。

解:按图9-13(a)编程如下:

KEYA:ORL P1,#07H ;置P1.0~P1.2为输入态

MOV A,P1 ;读键值,键闭合相应位为0

CPL A ;取反,键闭合相应位为1

ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位

JZ GRET ;全0,无键闭合,返回

LCALL DY10ms ;非全0,有键闭合,延时10ms,软件去抖动

MOV A,P1 ;重读键值,键闭合相应位为0

CPL A ;取反,键闭合相应位为1

ANL A,#00000111B;屏蔽高5位,保留有键值信息的低3位

JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合

JB Acc.0,KA0 ;转0#键功能程序

JB Acc.1,KA1 ;转1#键功能程序

JB Acc.2,KA2 ;转2#键功能程序

GRET:RET

KA0: LCALL WORK0 ;执行0#键功能子程序

RET

KA1: LCALL WORK1 ;执行1#键功能子程序

RET

KA2: LCALL WORK2 ;执行2#键功能子程序

RET

按图9-13(b)编程如下:

KEYB:ORL P1,#07H ;置P1.0~P1.2为输入态

MOV A,P1 ;读键值,键闭合相应位为1

ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位

JZ GRET ;全0,无键闭合,返回

LCALL DY10ms ;非全0,有键闭合,延时10ms,软件去抖动MOV A,P1 ;重读键值,键闭合相应位为1

ANL A,#00000111B ;屏蔽高5位,保留有键值信息的低3位

JZ GRET ;全0,无键闭合,返回;非全0,确认有键闭合JB Acc.0,KB0 ;转0#键功能程序

JB Acc.1,KB1 ;转1#键功能程序

JB Acc.2,KB2 ;转2#键功能程序

GRET:RET

KB0: LCALL WORK0 ;执行0#键功能子程序

RET

KB1: LCALL WORK1 ;执行1#键功能子程序

RET

KB2: LCALL WORK2 ;执行2#键功能子程序

RET

四、矩阵式键盘及其接口电路

矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。

2. 矩阵式键盘按键的识别

识别按键的方法很多,其中,最常见的方法是扫描法。下面以图7.5中8号键的识别为例来说明扫描法识别按键的过程。

按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平。只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平。然而,第2行为低电平时,能否肯定是8号键按下呢?

回答是否定的,因为9、10、11号键按下,同样会使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,这种依次轮流每次选

通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察8号键按下时的工作过程,当第0列处于低电平时,第2行处于低电平,而第1、2、3列处于低电平时,第2行却处在高电平,由此可判定按下的键应是第2行与第0列的交叉点,即8号键。

3. 键盘的编码

对于独立式按键键盘,因按键数量少,可根据实际需要灵活编码。对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。如图9-15中的8号键,它位于第2行,第0列,因此,其键盘编码应为20H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按排进行编码。以图7.5中的4×4键盘为例,可将键号编码为:01H、02H、03H、…、0EH、0FH、10H等16个键号。编码相互转换可通过计算或查表的方法实现。

【例9-10】按图9-15及图9-16,试编制矩阵式键盘扫描程序。

解:

KEY: MOV P1,#0F0H ;行线置低电平,列线置输入态

KEY0: MOV A,P1 ;读列线数据

CPL A ;数据取反,“1”有效

ANL A,#0F0H ;屏蔽行线,保留列线数据

MOV R1,A ;存列线数据(R1高4位)

JZ GRET ;全0,无键按下,返回

KEY1: MOV P1,#0FH ;行线置输入态,列线置低电平

MOV A, P1 ;读行线数据

CPL A ;数据取反,“1”有效

ANL A, #0FH ;屏蔽列线,保留行线数据

MOV R2,A ;存行线数据(R2低4位)

JZ GRET ;全0,无键按下,返回

JBC F0,WAIT ;已有消抖标志,转

SETB F0 ;无消抖标志,置消抖标志

LCALL DY10ms ;调用10ms延时子程序(参阅例4.13),消抖

SJMP KEY0 ;重读行线列线数据

GRET: RET

WAIT: MOV A,P1 ;等待按键释放

CPL A ;

ANL A,#0FH ;

JNZ W AIT ;按键未释放,继续等待

KEY2: MOV A,R1 ;取列线数据(高4位)

MOV R1,#03H ;取列线编号初值

MOV R3,#03H ;置循环数

CLR C ;

KEY3: RLC A ;依次左移入C中

JC KEY4 ;C=1,该列有键按下,(列线编号存R1)

DEC R1 ;C=0,无键按下,修正列编号

DJNZ R3,KEY3 ;判循环结束否?未结束继续寻找有键按下的列线

KEY4: MOV A,R2 ;取行线数据(低4位)

MOV R2,#00H ;置行线编号初值

MOV R3,#03H ;置循环数

CLR C ;

KEY5: RRC A ;依次右移入C中

JC KEY6 ;C=1,该行有键按下,(行线编号存R2)

INC R2 ;C=0,无键按下,修正行线编号

DJNZ R3,KEY5 ;判循环结束否?未结束继续寻找有键按下的行线

KEY6: MOV A,R2 ;取行线编号

CLR C ;

RLC A ;行编号×2

RLC A ;行编号×4

ADD A,R1 ;行编号×4+列编号=按键编号

KEY7: CLR C ;

RLC A ;按键编号×2

RLC A ;按键编号×4(LCALL+ RET共4字节)

MOV DPTR,#TABJ ;

JMP @A+DPTR ;散转,执行相应键功能子程序

TABJ: LCALL WORK0 ;调用执行0#键功能子程序

RET ;

LCALL WORK1 ;调用执行1#键功能子程序

RET ;

……

LCALL WORK15 ;调用执行15#键功能子程序

RET

【例9-11】按图9-17,试编制中断方式键盘扫描程序,将键盘序号存入内RAM 30H。

解:

ORG 0000H ;复位地址

LJMP STAT ;转初始化

ORG 0003H ;中断入口地址

LJMP PINT0 ;转中断服务程序

ORG 0100H ;初始化程序首地址

STA T: MOV SP,#60H ;置堆栈指针

SETB IT0 ;置为边沿触发方式

MOV IP,#00000001B ;置为高优先级中断

MOV P1,#00001111B ;置P1.0~P1.3置为输入态,置P1.4~P1.7输出0 SETB EA ;CPU开中

SETB EX0 ;开中

LJMP MAIN ;转主程序,并等待有键按下时中断

OGR 2000H ;中断服务程序首地址

PINT0: PUSH Acc ;保护现场

PUSH PSW ;

MOV A,P1 ;读行线(P1.0~P1.3)数据

CPL A ;数据取反,“1”有效

ANL A, #0FH ;屏蔽列线,保留行线数据

MOV R2,A ;存行线(P1.0~P1.3)数据(R2低4位)

MOV P1,#0F0H ;行线置低电平,列线置输入态

MOV A,P1 ;读列线(P1.4~P1.7)数据

CPL A ;数据取反,“1”有效

ANL A,#0F0H ;屏蔽行线,保留列线数据(A中高4位)

MOV R1,#03H ;取列线编号初值

MOV R3,#03H ;置循环数

CLR C ;

PINT01:RLC A ;依次左移入C中

JC PINT02 ;C=1,该列有键按下,(列线编号存R1)

DEC R1 ;C=0,无键按下,修正列编号

DJNZ R3,PINT01 ;判循环结束否?未结束继续寻找有键按下列线

PINT02:MOV A,R2 ;取行线数据(低4位)

MOV R2,#00H ;置行线编号初值

MOV R3,#03H ;置循环数

PINT03:RRC A ;依次右移入C中

JC PINT04 ;C=1,该行有键按下,(行线编号存R2)

INC R2 ;C=0,无键按下,修正行线编号

DJNZ R3,PINT03 ;判循环结束否?未结束继续寻找有键按下行线

PINT04:MOV A,R2 ;取行线编号

CLR C ;

RLC A ;行编号×2

RLC A ;行编号×4

ADD A,R1 ;行编号×4+列编号=按键编号

MOV 30H,A ;存按键编号

POP PSW ;

POP Acc ;

RETI

思考题(作业):

课后小记:

简单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引脚图 表各引脚功能及推荐工作条件

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)设计难点和遗留问题(包括设计中遇到的难题和解决方法,以及尚未解决的问题和解决的思路);

51单片机最小系统制作 全过程

51单片机最小系统制作 第一章概述 1.1 缘起 1. 给51初学者提供一个简单的DIY的教材。 第二章跑马灯和串口 2.1 第一步:准备 准备一下器件: 1、烙铁(质量好点) 2、焊锡(细) 3、烙铁架(带一个专用海绵) 4、松香块 5、万用表(要有带响的,听听红黑表笔短接时的声音出来快不快) 6、PCB面万用板1块 7、40pin 插座1个 8、11.0592M晶振1个 9、30P瓷片电容2个 10、11个LED 11、电阻排1K 1个到VCC,做跑马灯LED的限流电阻 12、max232或者兼容的芯片 13、16pin的插座上去 14、STC89C51 15、其它杂物 以上的投资加起来,不会超出100元。

价格数量和封装如下: STC的单片机可以串口下载。 解释一下: LED:8个挂在P1口,排电阻是上拉限流的;2个作为串口收发的指示灯;1个LED作为电源指示灯; 独石电容6个:5个是使用在max232上的;一个是使用在单片机上,作为电源去耦的; 10K电阻1个,接在EA上,上拉到5V; 电解电容和电阻构成上电复位电路;(STC单片机不需要)

自己买2个DB9的母头,焊接一根串口电缆; 准备一个3PIN的插座,焊接在PCB的面包板上; 还有电源,Dc5V的电源很多,电源电压差一点问题不大;很多单片机现在电源范围都宽; STC单片机应该可以工作在4V以上,具体查资料。 准备好以上物品,可以准备焊接好了。 来一张全家福: 2.2 第二步:焊接单片机最小系统

2.3 第三步:焊接串口指示灯 2.4 第四步:在P1口上焊接跑马灯

2.5 第五步:焊接Dc5V电源指示灯 2.6 第六步:焊接max232的5个0.1u电容

51单片机最小系统电路介绍

51单片机最小系统电路介绍 单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。 单片机最小系统晶振Y1也可以采用6MHz或者,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。 单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好 口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。 " 设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。 标识符号地址寄存器名称 P3 0B0H I/O口3寄存器 PCON 87H 电源控制及波特率选择寄存器 SCON 98H 串行口控制寄存器 SBUF 99H 串行数据缓冲寄存器 TCON 88H 定时控制寄存器 TMOD 89H 定时器方式选择寄存器 TL0 8AH 定时器0低8位 - TH0 8CH 定时器0高8位 TL1 8BH 定时器1低8位 TH1 8DH 定时器1高8位

51单片机_最小系统免费下载

单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Study-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。 一、内容提要 本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。 二、原理简介 在了解原理之前,首先让我们思考一个问题,什么是单片机,单片机有什么用?这是一个有意思的问题,因为任何人都不能给出一个被大家都认可的概念,那到底什么是单片机呢?普遍来说,单片机又称单片微控制器,是在一块芯片中集成了CPU(中央处理器)、RAM(数据存储器)、ROM(程序存储器)、定时器/ 计数器和多种功能的I/O(输入/ 输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C 语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。 在简单了解了什么是单片机之后,然后我们来构建单片机的最小系统,单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入/ 输出设备等(见图1)。 图1 单片机最小系统框图 三、电路详解 依据上文的内容,设计51 系列单片机最小系统见图2。

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单片机最小系统设计

基础强化训练任务书 学生姓名:董勇涛专业班级:电子0902 指导教师:洪建勋工作单位:信息工程学院 题目:基于51单片机最小系统设计 一、训练目的 主要目的就是对学生进行基础课程、基本技能、基本动手能力的强化训练,提高学生的基础理论知识、基本动手能力,提高人才培养的基本素质。 二、训练内容和要求 1、基础课程和基本技能强化训练 (1)设计一个基于51单片机最小系统电路; (2)对所设计电路的基本原理进行分析; 2、文献检索与利用、论文撰写规范强化训练 要求学生掌握基本的文献检索方法,科学查找和利用文献资料,同时要求学生获得正确地撰写论文的基本能力,其中包括基本格式、基本排版技巧和文献参考资料的写法、公式编排、图表规范制作、中英文摘要的写法等训练。 3、基本动手能力和知识应用能力强化训练 (1)学习PROTEL软件; (2)绘制电路的原理图和PCB版图,要求图纸绘制清晰、布线合理、符合绘图规范; 4、查阅至少5篇参考文献,按《武汉理工大学课程设计工作规范》要求撰写基础强化训练报告书,全文用A4纸打印。 三、初始条件 计算机;Microsoft Office Word 软件;PROTEL软件 四、时间安排 1、20011年7 月 11日集中,作基础强化训练具体实施计划与报告格式要求的说明; 学生查阅相关资料,学习电路的工作原理。 2、2011年7 月 12日,电路设计与分析。 3、2011年7 月 13日至2010年7 月 14日,相关电路原理图和PCB版图的绘制。 4、2011年7 月15日上交基础强化训练成果及报告,进行答辩。 指导教师签名:年月日系主任(或责任教师)签名:年月日 目录 摘要.................................................................................................................... 错误!未定义书签。

单片机最小系统制作方案(适合初学者)

教学】单片机最小系统制作方案(适合初学者) 在写本单片机教程前,先自我介绍一下,我今年刚28岁,从事单片机教学二年。教学经验不足,写的不好,还请谅解,但是,我一定会尽力的。同时也希望大家能把我当朋友,共同进退。 本人喜欢上网,不喜欢运动,所以比较胖。我很喜欢在房间里做自己想做的事,如做网站,并建有自己的网站:〖教师吧〗:https://www.360docs.net/doc/d16564273.html,保证长期有效。QQ是569 43772,E-MAIL:99xsw@https://www.360docs.net/doc/d16564273.html, 单片机最小系统制作 一、确定任务 开发单片机最小系统 二、任务分析: 该系统具有的功能: (1)具有2位LED数码管显示功能。 (2)具有八路发光二极管显示各种流水灯。 (3)可以完成各种奏乐,报警等发声音类实验。 (4)具有复位功能。 三、功能分析 (1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能;(2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能; (3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。 (4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。 四、设计框图

五、硬件电路设计 根据本系统的功能,和单片机的工作条件,我们设计出下面的电路图。

六、元件清单的确定: 数码管:共阴极2只(分立) 电解电容:10UF的一只 30PF的电容2只 220欧的电阻9只 4.7K的电阻一只 1.2K的电阻一只 4.7K的排阻一只, 12MHZ的晶振一只 有源5V蜂名器一只 AT89S51单片机一片 常开按钮开关1只 紧锁座一只(方便芯取下来的,绿色的) 发光二极管(5MM红色)8只 万能板电路版15*17CM S8550三极管一只 4.5V电池盒一只,导线若干。 七、硬件电路的焊接 按照原理图把上面的元件焊接好,详细步骤省略。 八、相关程序编写 针对上面的电路原理图,设计出本系统的详细功能: (1)、第一个发光二极管点亮,同时数码管显示“1”。 (2)、第二个发光二极管点亮,同时数码管显示“2”。 (3)、依次类推到第八个发光二极管点亮,同时数码管显示“8”。以上出现的是流水灯的效果

51单片机最小系统讲解及应用

51单片机最小系统 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 下面给出一个51单片机的最小系统电路图. 说明 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系 统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典 型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的 取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的, 原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定 量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率, 用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机

特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.这一点是初学者容易忽略的. 因此可以看出,其实要熟悉51单片机的40个引脚功能也很容易: 总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个.29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,对于初学者,这32个引脚就是要经常跟它们打交道的了.它们是: P0端口P0.0~P0.7共8个 P1端口P1.0~P1.7共8个 P2端口P02.0~P2.7共8个 P3端口P3.0~P3.7共8个 使得单片机工作的最小电路 80C51为例 首先,我们在使用protel和proteus的软件画电路图时,你会发现原先40个引脚的芯片变成了38个引脚,那是因为它把第40和第20个引脚VCC和GND隐藏了,所以要是的单片机开始工作至少需要一个VCC(电源)和GND(接地)。 其次,学习过组成原理的同学或者说学习过计算机导论的同学一定知道,计算机的冯·诺依曼体系,什么是冯·诺依曼体系。简单的说就是程序(指令)存储,顺序执行,也就是说指令是一条一条执行的,即CPU从ROM(他可以称为程序存储器,但不准确)中取出指令然后再执行。取指令并执行有严格的先后顺序,那么就需要一个时钟来准确的使CPU 稳定工作。 所以,第二个需要的就一个时钟电路。一个内部时钟电路是由两个电容(CAP)和一个石英晶振(Crystal)组成。CPU的时钟周期(震荡周期)由石英晶振决定(常用6MHZ或12MHZ),两个电容取10~30pF,并把他们接在XTAL1(输入)和XTAL2(输出)两端。

基于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) 致谢............................................. 错误!未定义书签。

单片机最小系统

STC89C52单片机简介 概述 STC89C52是51系列单片机的一个型号,它是STCMEL公司生产的。 STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用STCMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可为您提供许多较复杂系统控制应用场合。 STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 主要功能特性 兼容MCS51指令系统 8k可反复擦写(>1000次)Flash ROM 32个双向I/O口 ? 256x8bit内部RAM 3个16位可编程定时/计数器中断 ? 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共8个中断源 2个读写中断口线 3级加密位

低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 8051单片机的引脚功能 MCS-51系列单片机一般采用40个引脚,双列直插式封装,用HMOS工艺制造,其外部引脚排列如图所示。其中,各引脚的功能为: (a) DIP引脚图 (b) 逻辑符号 8051单片机的引脚 ⑴主电源引脚 Vcc(40脚):接+5V电源正端 Vss(20脚):接+5V电源地端 一般Vcc和Vss间应接高频去耦电容和低频滤波电容。 ⑵外接晶体或外部振荡器引脚 XTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反

电子时钟基于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; }

FPGA和外围51单片机的通信

1 单片机与FPGA的接口方式 单片机与FPGA的接口方式一般有两种,即总线方式与独立方式。MCS-51单片机具有很强的外部总线扩展能力,利用片外三总线结构很容易实现单片机与FPGA的总线接口,而且单片机以总线方式与FPGA进行数据与控制信息通信也有许多优点:速度快;节省PLD芯片的I/O口线;相对于非总线方式,单片机编程简捷,控制可靠;在FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。 单片机与FPGA以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构,其通信的时序必须遵循单片机内固定的总线方式读/写时序。FPGA的逻辑设计也相对比较复杂,在程序设计上必须与接口的单片机程序相结合,严格安排单片机能访问的I/O空间。单片机以总线方式与FPGA 进行数据通信与控制时,其通信工作时序是纯硬件行为,速度要比前一种方式快得多,另外若在FPGA内部设置足够的译码输出,单片机就可以仅通过19根I/O线在FPGA与单片机之间进行通信和控制信息交换,这样可以节省FPGA芯片的I/O线。其原理图如图1所示。 2 总线接口逻辑设计 2.1 接口设计思想 单片机与CPLD/FPC,A以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构。MCS-51系列单片机的时序图如图2所示。

ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。若需从FPGA中读出数据,单片机则通过指令“MOVXA,@DPTR”使RD信号为低电平,由P0口将锁存器中的数据读入累加器A;但若欲将累加器A的数据写进FPGA,则需通过指令“MOVx DPTR,A”和写允许信号WR。这时,DPTR中的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,然后由WR的低电平并结合译码,将累加器A的数据写入图中相关的锁存器。 通过对MCS-51单片机总线读/写时序的分析,设计了图3所示的接口电路。在FPGA中,设计了两个模块:一个是总线接口模块,负责单片机与FPGA的总线接口逻辑;另一个是寄存器单元及外部接口模块,运用总线接口模块来操作此模块。 在总线应用时,MCS-51单片机的P0口是作为地址/数据总线分时复用的,因此应在总线接口模块中设计一个三态缓冲器,实现P0口的三态接口;又因MCS-51单片机在访问外部空间时,它的地址为16位,因此借助地址锁存使能信号ALE在FPGA中实现高8位与低8位地址的编码,组合成16位地址,然后再根据MCS-51单片机的读/写信号,实现对FPGA的读写操作。 在接口设计中,采用了VHDL语言实现其接口逻辑。用VHDL语言编写,往往比较方便和严谨,注意整个过程的逻辑思路,并且尽量避免语言的冗余,造成比较长的延时。-MCS-51单片机与FPGA的通信读写电路的部分程序

单片机最小系统讲解

晶振:一般选用11.0592M,因为可以准确地得到9600波特率和19200波特率 晶振电路:单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。他是由一个晶振和两个瓷片电容组成的,x1和x2分别接单片机的x1和x2,晶振和瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。 复位电路:给单片机一个复位信号(一个一定时间的低电平)使程序从头开始执行;一般有两中复位方式:上电复位,在系统一上电时利

用电容两端电压不能突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,这时如果手按着一直不放,系统将一直复位,不能正常工作,在这里我们需要注意用的电容是电解电容,是有正负的,如果接反了,他就会爆炸,我们可以用并口或者串口把程序下到单片机中,这样我们就可以省去了买烧录器, 3、电源,说了半天还没有说到电源,要不单片机怎么工作呀,图中没有给出,第20管脚是地GND,第40管脚是电源VCC,一般我们在电源vcc处。加一个0.1uf的瓷片电容,滤掉电源中的高频雑波,使系统更安全。注意51单片机使用的是5付直流电源。 89c51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器 电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。 重点介绍: C1、C2作用:震荡补偿电容,可以放宽起震频率,让时钟电路容易起震。 C3的作用:为极性电容,上电瞬间,电容导通,可以通交流阻直流。给RST连续两个机器周期的高电平,即可完成上电复位,复位

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中断服务程序流程图如下:

51单片机最小系统制作

51单片机最小系统1.设计框图 2.硬件电路设计

3.元件清单 共阴极数码管2只(分立) 10UF电解电容2只(限压16V)30PF瓷片电容2只 220欧的电阻9只 4.7K的电阻1只 1.2K的电阻1只 4.7K的排阻1只 12MHZ的晶振1只 S8550三极管1只 单排针2排 自锁小按键1只 蜂名器1只(长音) STC89C51单片机1片 常开按钮开关1只(轻触开关)40引脚紧锁座或40引脚芯片插槽1只(前者方便单片机取下来的,但价格较贵;后者便宜,不便于拔插) 发光二极管(5MM红色)10只 电路板1张(单孔锡板,带九针串口座的焊盘) USB转串口线1根(笔记本电脑必买、台式电脑选买) USB头一个(如下一页实物图所示)双头USB线1根(两头都能插入USB 头里面) 细导线2米(单芯、铁线) 2CM铜柱8根(一头凸起,一头凹下)

104瓷片电容5片 MAX232芯片1片 串口头1个(母头、9孔式) 串口线1根(一端9孔、一端9针)****蓝色器件为台式电脑用**** 注意:有的元器件(如电阻、瓷片电容等)非常便宜,一般按10个为单位买,否则别人不卖。 必备工具:万用表、电烙铁、焊锡丝、松香、吸锡器、斜口钳、镊子 相关软件:Protel 99 SE、Keil 3、单片机烧录软件 4.下载电路 STC89C52 1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。 2、振荡电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了。 3、复位(RST,第9引脚):至于复位是何含义及为何需要复位,在单片机功能中介绍。 4、EA(31引脚):EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 5、P1口发光管电路:P1.0-P1.7(第1-8引脚)连接到8个470欧电阻驱动8个发光管。 6、单片机引脚控制连接:两排单排插连接单片机40个引脚,方便以后扩展或测试各引脚。 7、在线编程下载接口:用一个5X2(长为5的双排插)连接电源VCC、GND、P1.5(第6脚)、P1.6(第7脚)、P1.7(第8脚)和RST(第9脚),然后通过在线编程下载模块连接到电脑的并口,运行Keil编程软件可以实现在线编程和仿真,边改程序边调试电路(观看发光管的表演,当然导演就是大家自己!)

#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,用以消除机械抖动。 主循环流程图大致如下:

51单片机外扩RAM

单片机外部RAM扩展模块 MCS-51系列单片机外部RAM为64K,在一些特殊场合下,远不能满足需要, 本文就AT89C51讨论MCS-51系列单片机大容量RAM的扩 首先介绍128K随机读取RAM HM628128。HM628128 是32脚双列直插式128K静态随机读取RAM,它具有容 量大、功耗低、价格便宜、集成度高、速度快、设计和 使用方便等特点。如若在系统中加入掉电保护电路,保 护数据有很高的可靠性,可以和EEPROM相媲美。 技术特性: (1)最大存取时间为120ns; (2)典型选通功耗75mW;典型未选通功耗10uW; (3)使用单一5V电源供电; (4)全静态存储器,不需要时钟及时序选通信号; (5)周期时间与存取时间相等; (6)采用三态输出电路,数据输入和输出端公用; 图6 HM628128外部引脚(7)所有输入和输出引脚均与TTL电平直接兼 容; (8)有两个片选端,适合于低功耗使用,即为了保存信息,用电池作为后 备电源。保存信息的最低电源电压Vcc=2V。 引脚安排及功能表: 图6是HM628128的外部引脚排列图,各引脚名称及功用分别如下: A0~A16是17条地址线;I/O0~I/O7是8条双向数据线;CS1是片选1,低电平有效,CS2是片选2,高电平有效;WR是写控制线,当CS1为低电平,CS2为高电平时,WR的上升沿将I/O0~I/O7上的数据写到A0~A16选中的存储单元 中;OE是读出允许端,低电平有效。 HM628128的功能表如表3所示。 其中,H表示高电平,L表示低电平,X表示任意状态 由于AT89C51直接外部RAM容量为64K,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE锁存信号来锁存低8位地址。又由于AT89C51的外部数据和外设地址通用,若扩展外设必然占用数据地址。因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,

51单片机最小系统设计

一、内容及要求 内容:设计制作一个51最小系统,用最小系统控制8个发光2极管。 要求:全部点亮,依次点亮,交换点亮;用最小系统控制蜂鸣器;用最小系统控制电机。 二、设计思路 使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。可以运用输出端口指令MOV P0,A或MOV P0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现 图2-1 主程序流程图 流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应

以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。 程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1~Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的彩灯。具体程序流程图2-1所示。 三、硬件设计 3.1 直流稳压电源电路 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分!本项目直流稳压电源为+5V。如下图所示: 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 图3-1 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V—5.5V,所以通常给单片机外接5V 直流电源。由于时间关系,此处用3节1.5V的干电池供电,在此不在赘述此稳压电源电路图原理。 3.2单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。单片机最小系统如下图3-2所示。

51单片机最小设计系统与电源电路

单片机最小系统介绍 单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。最小系统原理图如图4.1所示。 图4.1最小系统电路图 电源供电模块 图4.1.1 电源模块电路图 对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。 复位电路

图4.1.2 复位电路图 单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。 单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。 复位电路由按键复位和上电复位两部分组成。 (1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。 (2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。 单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。 在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。 单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。 STC89C51使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。

相关文档
最新文档