目录
第1章设计目的.....................................................................11.1设计任务.....................................................................11.2设计原理.....................................................................1第2章硬件电路设计.................................................................22.1ATC51介绍及管脚功能.......................................................22.1.1管脚功能........................................................................................................................................................32.2 MAX7219介绍及管脚描述......................................................42.2.1 MAX7219管脚描述...................................................................................................................................42.3DS12C887管脚图及功能........................................................72.3.1管脚功能........................................................................................................................................................82.4硬件电路设计图..............................................................10第3章系统软件设计...............................................................113.1 MAX7219....................................................................113.1程序框图....................................................................133.2按键电路....................................................................143.2.1流程框图.......................................................................................................................................................15第4章总结........................................................................16参考文献:.........................................................................18
第1章设计目的
1.1设计任务
STC12C5A60S2(引脚排序及基本功能同ATS51)作为主控芯片,设计数码管亮度控制电路。一是设计MAX7219
驱动LG31AH(或同型号共阴极)数码管;二是设计按键电路,作为数码管亮度的参数输入;三是设计根据不
同的输入参数改变数码管显示亮度的程序;四是扩展时钟芯片DS12C887时钟芯片作为数码管的显示内容。
1.2设计原理
本设计主要是以ATC51为主芯片,用时钟芯片DS12C887进行扩展并用按键控制由MAX7219驱动的数码管显
示亮度的电路。主要结构如图1-1
MAX7219数码管
ATC51 DS12C887
按键 |
图1-1 数码管亮度原理框图
主电路组成部分:(1)时钟DS12C887 时钟扩展电路(2)MAX7219 驱动数码管电路(3)按键电路
(4)8 段数码管(5)电阻、电容、晶振等等。
1
第2章硬件电路设计
2.1ATC51介绍及管脚功能
ATS51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes 的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器
既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强
大,低价位ATS51
单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:
·\u19982XMCS-51 产品指令系统完全兼容
·4k字节在系统编程(ISP)Flash闪速存储器
·1000次擦写周期
·\u20840X静态工作模式:0Hz-33MHz
·\u19977X级程序加密锁 ·4.0-5.5V的工作电压范围
·128×8字节内部RAM
·\u20840X双工串行 UART 通道
·低功耗空闲和掉电模式
·中断可从空闲模唤醒系统
·\u30475X门狗(WDT)及双数据指针
·\u281X电标识和快速编程特性
·灵活的在系统编程(ISP字节或页写模式)
图2-1ATC51引脚图
2.1.1管脚功能
VCC:供电电压。
GND:接地。
P0 口:P0 口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P0口的管脚第一次写1时,被定义为输入。P0能够用于外部程序数据,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0 输出原码,此时P0外部必须接上拉电阻。
写入1 后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P1口:P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1口缓冲器能接收输出4TTL门电流。P1 口管脚
在FLASH编程和校验时,P1口作为低八位地址接收。
2
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)这是由于上拉的缘故。
P3口也可作为ATC51的一些特殊功能口,如下表所示: 口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(写选通)
P3.7/RD(读选通)
P3口同时为闪烁编程和编程校验接收一些。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个的高电平时间。
ALE/PROG:当访问外部时,允许的用于锁存地址的低位字节。在FLASH期间,此用于输入脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该被略微拉高。如果在外部执行状态ALE禁止,置位无效。
/PSEN:外部的选通信号。在由外部程序取指期间,每个两次/PSEN有效。但在
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程/EA/VPP:当/EA保持低电平时,则在此期间外部程序(0000H-FFFFH)淘网 ,不管是否有内部程序存储器。访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
XTAL2:来自反向振荡器的输出。期间,此引脚也用于施加12V编程电源(VPP)
2.2 MAX7219介绍及管脚描述
MAX7219/MAX7221是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者个的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。
3
图2-2MAX7219引脚图
2.2.1 MAX7219 管脚描述
1 DIN 串行数据输入端口。在时钟上升沿时数据被载入内部的16位寄存器。2,3,5-8,10,11 DIG0–DIG7 八个数据驱动线路置显示器共阴极为低电平。关闭时7219此管脚输出高电平,7221呈现高阻抗。
4,9 GND 地线(4脚和9脚必须同时接地)
12 LOAD(MAX7219)载入数据。连续数据的后16位在LOAD端的上升沿时被锁定。
13 CLK时钟序列输入端。最大速率为10MHz.在时钟的上升沿,数据移入内部移位寄存器。下降沿时,数据从DOUT端输出。对MAX7221来说,只有当cs端为低电平时时钟输入才有效。
14-17,20-23 SEG A–SEG G,DP7 段和小数点驱动,为显示器提供电流。当一个段驱动关闭时,7219的此端呈低电平,7221呈现高阻抗。
18 SET 通过一个电阻连接到VDD来提高段电流。
19 V+ 正极电压输入,+5V
24 DOUT串行数据输出端口,从DIN输入的数据在16.5个时钟周期后在此端有效。当使用多个MAX7219/MAX7221时用此端方便扩展。
4
图2-3 MAX7219 的内部引脚分配
如图,工作时,MAX7219规定一次接收16位数据,在接收的16位数据中:D15~D12可以与操作无关,可以任
意写入,D11~D8决定所选通的内部寄存器地址,D7~D0为待显示数据或是初始化控制字。在CLK脉冲作用下,DIN
的数据以串行方式依次移入内部16 位寄存器,然后在一个LOAD 上升沿作用下,锁存到内部的寄存器中。注意在 |
(七)亮度控制
MAX7219/MAX7221通过加在V+和ISET之间的一个外部电阻来控制显示亮度。段驱动电流一般是流入ISET端电流的100倍。这个电阻可以是固定的,也可以是可变电阻,通过前面板来控制以选择合适的亮度。其最小值为9.53KΩ ,它设定段电流为40mA。显示亮度也可以通过亮度寄存器来控制。
数字控制显示亮度是通过亮度寄存器的低四位来控制的脉宽调制器来控制。调制器将段电流平均分为16个阶次,最大值为由RSET设置的最大电流的31/32,最小值为电流峰值的1/32 (MAX7221为15/16到1/16)。表7列出了亮度寄存器的格式。最小数据熄灭时间设置为时钟周期的1/32.
(八) 扫描控制寄存器 扫描控制寄存器用来设定扫描显示器的个数,从1个到8 个.它们将以800Hz的扫描速率
5
6
2.3DS12C887管脚图及功能
图2-3DS12C887引脚图
2.3.1管脚功能
DS12C887的各管脚的功能说明如下:
内 RAM 中的数据,并可对其进行读、写操作;当VCC 的输入小于+4.25V时,禁止用户对内部 RAM进行
GND、VCC:直流电源,其中VCC 接+5V 输入,GND接地,当 VCC 输入为+5V时,用户可以访问 DS12C887
读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电
源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。
7
(1)MOT:模式选择脚,DS12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。
(23)SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的数据信息。
(14)AS:地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。
(17)DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。在写操作中,DS的下降沿将使总线AD0~AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即ReadEnable。
(15)R/W:读/写输入端,该管脚也有2 种工作模式,当 MOT接 VCC 时,R/W工作在 Motorola模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W 为高电平时为读操作,R/W为低电平时为写操作;当 MOT接 GND 时,该脚工作在Intel 模式,此时该作为写允许输入,即Write Enable。
(19)
保证 DS12C887在掉电时,其内部控制寄存器不受影响。 I ——
(13)C
——
8
2.4硬件电路设计图
9
第3章系统软件设计
3.1 MAX7219
程序:CLK EQU T1
DIN EQU RXD
LOAD EQU T0
ORG 0000H
LJMP DISP
ORG 0090H ;
DISP:
MOV R7,#0FFH ;选择译码方式 LCALLMAX7219 ;写入 MOV A,#09H ;置译码器方式寄存器地址
LCALL MAX7219 ;写入 MOV A,#0BH ;置MAX7219 显示扫描位数寄存器地址 MOV R7,#07H ;选择8 位显示方式 MOV A,#0AH ;置亮度寄存器地址
MOV R7,#05H ;选择占空比
LCALLMAX7219 ;写入
MOV A,#0CH ;置关闭显示寄存器地址
MOV R7,#01H ;选择进入正常工作,00H表示关闭
LCALL MAX7219 ;写入
MOV40H,#01H
MOV41H,#01H
MOV42H,#05H
MOV30H,40H
MOV 31H,41H
MOV 32H,42H
MOV 33H,#08H
MAIN:MOV R0,#30H
CLR LOAD ;
MOV R1,#01H ;指向第0 位LED
MOV R3,#08H ;显示器个数
LOOP: MOV A,@R0 ;取显示缓冲区数据 MOV R7,A ;显示2
10
MOVA,R1 ;LED 显示的位地址给A
LCALL MAX7219 ;
INC R0 ;指向下一个显示数据
INC R1 ;指向下一位LED
DJNZR3,LOOP ;
SJMP MAIN
;MAX7219子程序
MAX7219:
CLR LOAD ;将LOAD信号拉低
LCALL XH1 ;一位字节送入7219
MOV A,R7 ;
LCALL XH1 ;
NOP
NOP
SETB LOAD ;产生LOAD上升沿,锁存数据
RET
XH1:MOV R2,#08H ;总共有8位,移8次
MOV DIN,C ;给DIN 口NOP NEXT: CLR CLK ;将CLK拉低
RLC A ;A 中值左移入进位累加器C中
NOP DJNZ R2,NEXT ;没完成则继续RET SETB CLK ;CLK 上升沿,移入数据
SHORT_DELAY:
MOV 10H,#40 ;10ms
DEL1: MOV 11H,#125
DEL2: DJNZ 11H,DEL2 ;125*2us=0.25ms
DJNZ 10H,DEL1 ;0.25ms*40=10ms
RET
END
11
3.1程序框图
开始
定义变量
初始化
设置首地址
传送数据
显示
返回
12
3.2按键电路
程序:MAIN1:
JNB K1, KEY1 查寻P1.0接的键盘是否有键接下,为低电平按下。
JNB K2, KEY2 同上
JMP MAIN 查寻键盘的循环体
KEY1:
LCALL DL20MS 调用延时20毫秒,去除机械抖动
P1.0,DISP 重新查寻,亦去抖。JB
LCALL PRO1
确认有键按下,调用真正处理程序JMP KEY1 执行结束,返回查寻循环
KEY2:
LCALL DL20MS 同上
P1.1,DISP JB
LCALL PRO2
JMP KEY2
PRO1:
incR5;亮度+
MOVA,#0AH
MOVB,R5 ;亮度调节
RET PRO2: LCALL MAX72191
MOVB,R5
MOVA,#0AH
LCALL MAX72191 DEC R5
RET
MAX72191:
CLR LOAD ;将LOAD信号拉低
LCALL XH1 ;一位字节送入7219
MOV A,R5 ;
LCALL XH1 ;
NOP
NOP
SETB LOAD ;产生LOAD上升沿,锁存数据
RET
XH1: MOV R2,#08H ;总共有8位,移8次
NEXT:CLR CLK ;将CLK拉低
RLC A ;A中值左移入进位累加器C中
MOV DIN,C ;给DIN口
NOP
SETB CLK ;CLK 上升沿,移入数据
NOP |
|
13
RET
3.2.1流程框图
开始
定义变量
初始化
设置输入参
数
返回
14
第4章总结
通过此次课程设计,使我更加扎实的掌握了有关单片机方面的知识,在设计过程中遇到了很多问题,但经过一次又一次的思考,但是还是有些问题还是不能过解决,也暴露出了我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识能过运用。
在课程设计过程中,我们不断发现错误,不断改正,不断获取。在设计中遇到了很多问题,最后在老师的指导下,终于能够解决大部分问题。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升。我认为,在这学期的课设中,不仅培养了思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在课设上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践,这对于我们的将来也有很大的帮助。
15
参考文献:
[1]彭虎,周佩玲,傅忠谦.微机原理与接口技术.第二版.电子工业出版,2010;[2]张毅刚、彭喜元.单片机原理及应用.高等教育出版社;
[3]靳达.单片机典型模块设计实例导航.人民邮电出版社,2003;
16
Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务