当前位置:文档之家› 简易计数器的设计

简易计数器的设计


启动;SDA的上升沿和SCL在高电平时通 信停止。数据传输必须带响应,相关的 响应时钟脉冲由主机产生。在响应的时 钟脉冲期间发送器释放SDA 线(高); 在响应的时钟脉冲期间接收器必须将 SDA 线拉低,使它在这个时钟脉冲的高 电平期间保持稳定的低电平。通常被寻 址的接收器在接收到的每个字节后,除 了用CBUS 地址开头的数据,必须产生 一个响应。
UART0 /RST RESET UART1 SFR总线 SMBus MONEN p0驱动
VDD监 视器
WDT 80 51 内 核
SPI总线
PCA
定时器 0,1,2,3, 4 P0,p1, p2,p3 锁存 器
交 叉 开 关
p1驱动
p2驱动
XTAL1
外部振 荡器
系统时钟
XTAL2
p3驱动
内部振 荡器
器完成对单片机机器周期的计数。每一 个机器周期定时器加1,通过编程来设定 要定时的时间,定时时间到了向CPU申请 中断操作让显示计数值加1。显示部分采 用周立功单片机公司自行设计的数码管 显示驱动及键盘扫描管理芯片ZLG7290 驱动八段LED共阴数码管显示当前的计 数值, ZLG7290与微控制器之间采用 I2C串行总线接口。系统框图如下:
检测是否有按键 按下 Y N
shu++
执行相应按键命令
中断服务子程序
死循环等待中断
主程序
谢谢大家
g
g
g
g
g
g
7
SegB
G
F
E
D
C
B
SEGB
Dig0
4
SegC
SEGC
2
SegD
SEGD
DIG0_SEG[7..0]
1
SegE
SEGE
10
SegF
SEGF
Dig1
5
SegG
SEGG
Buzzerp1.6
7290INT
7290RST
W
SCL
SDA
3
SegDp
SEGDP
P
G
+5V
Dig0
N
D
12
Dig7
DIG1
系统的软件介绍: 本系统软件编写用C语言程序,包括 头文件的声明,主函数,写数,定时器 初始化,中断,延时,显示部分。系统 主程序流程图和中断子程序流程图如下:
程序开始
程序开始
设置定时器工作模 式
定时器赋初值
定时器赋初值
aa加1
N
开总中断
aa==500 Y
下 一 次 中 断
启动定时器
aa清零
RST
INT
Dig0
Dig1
Dig2
Dig3
Dig4
Dig5
Dig6
Dig7
Dig7
Dig6
Dig5
Dig4
Dig3
Dig2
Dig1
Dig0
G S S
OSC2 S S
OSC1
S S
VCC
S
S
e e e N
e
e e
e
e
g
g g g
g g
g
g
D
H
G E F
D C
B
A
DIG0_SEG[7..0]
1
1
1
1
1
2.7~3.6V,端口I/O,RST和JTAG引 脚的耐压为5V。工作温度范围是-40~ +85℃。 C8051F020单片机的外接晶振 22.1184MHz。因此系统时钟周期为 (1/22.1184)uS。 51 单片机输入的时钟 脉冲是由晶体振荡器的输出经12 分频后 得到的,因此一个机器周期包含12个振 荡周期。而对于CIP51内核只基于时钟 周期,所以指令时序都以时钟周期计算。 70%的指令执行时间为1-2个系统时
Buzzer
LS1
+5V
2
C
2 6
u
F
I2C总线介绍: I2C(Inter-Integrated Circuit)总 线是由PHILIPS公司开发的两线式串行总 线,用于连接微控制器及其外围设备 。 它是同步通信的一种特殊形式,具有接 口线少,控制方式简单,通信速率较高 的特点。只需要一条串行数据线SDA, 一条串行时钟线SCL 。它是一个真正的 多主机总线,如果两个或更多主机同时 初始化,数据传输可以通过冲突检测和
(6) 提供有10种数字和21种字母的译 码显示功能, 或者直接向显示缓存写入 显示数据;不接数码管而仅使用键盘管 理功能时,工作电流可降至 1mA; (7)与微控制器之间采用I2C串行总线 接口,只需两根信号线,节省 I/O资源; 工作电压范围:+3.3~5.5V; 工作温度范围:-40~+85℃;
本系统采用定时器1工作在方式1,定时 器对机器周期Tc计数,每个机器周期计 数器加1。在工作方式1下,最大计数值 M=65536,N为计数次数,计数初值 =M-N。定时时间为Tc*N 。 c8051F020提供22个中断源,允许 大量的模拟和数字外设中断微控制器 , 本系统中每检测到时间到了1秒,向 CPU申请中断,响应中断后显示的数字 加1。本系统所用到的c8051简单图示如 下:
当从机不能响应从机地址时,从机必须 使数据线保持高电平。主机然后产生一 个停止条件终止传输或者产生重复起始 条件开始新的传输。I2C总线的寻址方式 有7位寻址和10位寻址,这两种寻址防止 互相兼容,可以结合使用。以下四个图 分别为I2C总线连接图,数据传输有效 性 ,起始和停止条件,总线数据传输和 应答图。
本系统中先把十进制显示数据转换 为BCD码,然后直接向ZLG7290显示缓 冲区的八个寄存器写入显示数据, ZLG7290再按照下载数据并译码命令的 数据表进行译码并最终显示。数码管是 共阴式的。DPY1和DPY2是四位连体式 共阴数码管,共同组成完整的八位。数 码管在工作时需要消耗较大的电流,需 加限流电阻,要增加数码管的亮度,可 适当减小电阻值。键盘扫描电路中,我 们对键盘进行裁剪,只使用了16个功能
IN4148
Diode
D
1
R20
R19
SCL
SDA
key8
key7
key6
key5
key4
key3
key2
key1
4.7K
4.7K
R
R
R
R
R
R
R
R
8
7
6
5
4
3
2
1
1
2
1
1
2
2
1
1
9
0
5
4
6 2 1 2
5
4
3
3
ZLG7290
U
3.3K
3.3K
3.3K
3.3K
3.3K
3.3K
3.3K
3.3K
3
SCL
SDA
U
S
S
4 1
G
W
E
E
E
3
SCL
N
2
1
0
1
C
D
key4
key4
S
S
1
4
SDA
VCC
2
key5
key5
S
S
5
8
1
5
3
SDA
key6
key6
+5V
S
S
1
6
4
key7
key7
G
S
S
N
1
7
7290RST 5
D
0.1uF
key8
key8
S
S
1
8
C 6
+5V
4
keyB
keyA
+5V
2
R18
0
K
7290INT IN4148 Diode
仲裁防止数据被破坏;串行的8 位双向 数据传输位速率在标准模式下可达 100kbit/s,快速模式下可达400kbit/s, 高速模式下可达3.4Mbit/s;连接到相同 总线的IC 数量只受到总线的最大电容 400pF 限制。SDA 线上的数据必须在时 钟的高电平周期保持稳定。数据线的高 或低电平状态只有在SCL 线的时钟信号 是低电平时才能改变。串行数据SDA的下 降沿和串行时钟SCL在稳定高状态时通信
键盘 SMBus(I2C) 微控制器 c8051F020 ZLG7290 LED显示
系统所用到的硬件资源介绍: C8051F020是一种混合信号片上系 统单片机,内核为CIP-51微控制器。内 部有5 个16位通用定时器:其中三个16 位计数/定时器与标准8051 中的计数/定 时器兼容,还有两个16 位自动重装载定 时器可用于ADC、SMBus、UART1或作 为通用定时器使用。这些计数/定时器可 以用于测量时间间隔,对外部事件计数 或产生周期性的中断请求。C8051F020 单片机支持双时钟,其工作电压范围为
C8051F020原理框图
数码管显示驱动和键盘扫描用到 ZLG7290,其特性如下: (1)直接驱动 8位共阴式数码管(1 英 寸以下)或 64只独立的 LED;
(2)能够管理多达 64 只按键,自动消除抖 动,其中有 8 只可以作为功能键使用; (3)段电流可达 20mA,位电流可达 100mA以上; (4) 利用功率电路可以方便地驱动 1 英寸 以上的大型数码管; (5) 具有闪烁、段点亮、段熄灭、功能键、 连击键计数等强大功能;
钟周期,而在本系统中指令都为单字节指 令,在取指令周期中,指令取出到指令 寄存器后立即译码执行,因此执行一条 指令只需要一个机器周期。所以在本系 统中一个时钟周期即为一个机器周期。 定时器可以看作是对单片机机器周期的 计数器,每个机器周期定时器加1,因此 可以把输入的时钟脉冲看成机器周期信 号 ,定时器每接收一个输入脉冲的时间 刚好为一个时钟周期(1/22.1184)uS 。
相关主题