重庆理工大学毕业论文设计 基于单片机的16*16LED点阵显示屏设计
外部中断ETC中断控制片内Flash存储器片内RAM定时器0定时器1计数器输入CPU振荡器总线控制4I/O端口串行端口P0P1P2P3TXDRXD
图3-3 AT89系列单片机的基本结构框图
3、单片机的内部组成
AT89系列单片机的内部结构主要是由CPU、定时器/计数器、串行口、存储器、中断逻辑/并行口几部分组成。 (1)CPU
CPU是由运算器及控制器组成,作为控制中心和指挥中心,决定单片机的主要功能。
ACC是一个累加器,简称累加器A,8位寄存器,当进行逻辑和算术运算时,累加器存放操作数,运算的结果还是存放在累加器中。
寄存器B也是一个8位寄存器,寄存器B用于乘法和除法指令中。在除法中,除数取自B,被除数取自ACC,商数放在ACC中,而余数则放在B中。在乘法运算中,乘数的操作指令来自ACC和B中,而乘积的结果放在AB寄存器中,B寄存器是作为中间结果寄存器使用的。
PSW是一个8位的寄存器,作为一个标志寄存器,用来存放各种程序状态执行的信息,供程序判别和查询。PSW的标志和格式如下: 表3-1
D7 CY
D6 AC D5 D4 D3 D2 D1 D0 F0 RS1 RS0 OV —— P 此寄存器各位的含义如下:
11
重庆理工大学毕业论文设计 基于单片机的16*16LED点阵显示屏设计
CY(PSW.7):进位标志。执行算术运算指令时,最高位D7位有进位或者借
位时,CY=1,最高位D7位没有进位或者借位,CY=0。CY作为位累加器,可以被硬件或者软件职位或清零,起作用相当于中央处理器中的累加器A,进位操作和执行比较指令也会影响CY标志位。
AC(PSW.6):辅助进位标志。辅助进位标志指的是当执行加减运算指令时,
低四位向高四位有进位借位时,AC会被置成1,否则就会被清零。在进行十进制加减运算时,需要进行十进制调整,需要用AC位进行判断,详见指令系统中的DAA指令。
F0(PSW.5):用户标志位。F0是状态标记位,根据用户自己的需要通过软件来置位和复位。设定标志位状态以后,通过软件测试F0来控制程序的流向。
RS1、RS0(PSW.4、PSW.3):8051有4组8个8位工作寄存器,每组命名R0~R7。 通过控制这两位的值就可以控制哪一组寄存器作为工作寄存器,这是通过软件来改变RS1、RS0的值进行选择的。RS0、RS1与寄存器区的对应关系见表3-2: 表3-2
RS1 0 0 1 1 RS0 0 1 0 1 工作寄存器组 0组(00H-07H) 1组(18H-0FH) 2组(10H-17H) 3组(18H-1FH) OV(PSW.2):溢出标志。在进行带符号位加减运算指令中,运算结果超过累加器的有效范围时,累加器A就会溢出,溢出即产生运算错误的结果,溢出标志位PSW.2=1。如果没有超过累加器的有效范围,溢出标志位PSW.2=0就表示运算结果正确。在进行乘法运算时,如果累加器A溢出,标志位PSW.2=1表示乘积的结果超过255,乘积分别在累加器A与寄存器B中;乘积结果没有超过255,标志位PSW.2=0,这时乘积只在累加器A中。在除法运算指令中,标志位PSW.2=1,就表示除数等于0,所以不能进行除法运算,反之表示除数不为零,可以进行运算。
P(PSW.0):奇偶标志。奇偶标志位PSW.0表示累加器A中1的个数,累加器A中1的个数为偶数P=0,1的个数为奇数P=1。
12
重庆理工大学毕业论文设计 基于单片机的16*16LED点阵显示屏设计
(2)存储组织
AT89系列单片机的内存结构如下:
FFFFH外部1000Hcode区0FFFH内部(EA=1)0000H0FFFH外部(EA=0)0000H
(a)
FFH80H7FH2FH20H00H特殊功能寄存器用户data区bdata区4个工作寄存器区idata区data区
(b)
FFFFHxdata区00FFH0000Hpdata区
(c)
图3-4 AT89系列单片机内存的结构
3.4 系统硬件电路的设计
本设计的硬件电路可以分成单片机系统及外围电路、列驱动器和行驱动器电
路三部分。
13
重庆理工大学毕业论文设计 基于单片机的16*16LED点阵显示屏设计
1、 单片机系统及外围电路
单片机采用AT89C51,时钟频率为采用24M的晶振,高的晶振频率能获得较高的刷新频率,可以使显示更加稳定。P0口的低四位与4-16线译码器相连用来发送行数据,P0.4~P0.6口与两片级联的74HC595组成的16位输出的移位寄存器相连,用来发送列数据。单片机的外围震荡电路:
图3-5 单片机的振荡电路
2、 行驱动电路
行驱动电路是由两片74HC595级联而成,74HC595具有8位串入并出移位寄存器和一个8位输出锁存器的结构,两片级联的74HC595具有16位串入并出移位寄存器和一个16位输出锁存器的结构,用来驱动led点阵的行。74HC595具有独立的输出锁存器个和独立的移位寄存器,在输出本行数据驱动点阵的同时,单片机已经为驱动器传输下一行的数据,能达到重叠处理的目的,缩短数据传输时间。图3-6是由两个74LS595级联成的16位输出的列驱动器:
14
重庆理工大学毕业论文设计 基于单片机的16*16LED点阵显示屏设计
图3-6 列驱动器
74HC595的外形及管脚说明图如图3-7和表3-3所示。74HC595有8个串行移位寄存器,每个串行移位寄存器连接着一个输出锁存器,当8位数据全部传输完毕保存在输出锁存器中,当上升沿到来时,进行数据输出。DS是串行数据输入端,Q0~Q7是并行数据输出端,作为LED点阵驱动端,控制LED的点亮。Q7’是芯片拓展端口,与下一个74HC595的串行数据输入端相连,形成16位串入并出移位寄存器和一个16位输出锁存器的结构驱动LED。SH_CP是移位寄存器时钟输入端,每来一个上升沿,Q0中的数据移动到Q1中,Q1中的数据移动到Q2 中,这样循环往复。下降沿移位寄存器中的端口数据保持不变。ST_CP是存储寄存器中的时钟输入口。下降沿到来时,存储器中的数据保持不变,上升到来时,移位寄存器中的数据存储到存储器中。通常将ST_CP拉到低电平,移位结束后再将ST_CP端移位寄存器中的数据清零。OE为输出允许高电平禁止输出。
图3-7 74HC595外形图
15