基于单片机IAP技术的LED显示屏控制系统
发布时间:2008/5/27 0:00:00 访问次数:336
1 双色led单元板硬件组成及工作原理
常见的室内双色led单元板电路框图如图1(a)所示。其中行扫描电路由2片74hc138(3-8译码器)构成的4-16译码器加上多个4953(mos管)组成的,扫描方式为1/16。上下半屏分别由2组用74hc595串行移位寄存器实现红色、绿色显示数据的列输入,在图1(a)所示的64×32标准led单元板中,每组串行移位寄存器中有8个74hc595级联,4组共用了32个74hc595。74hc595内部电路框图如图1(b)所示。所有4组74hc595的控制信号rck、sck、en全部接在一起。74hc595的控制信号和4组串行移位寄存器的输入以及行扫描控制信号a、b、c、d构成整个led单元板的输入;74hc595的控制信号经驱动后和4组串行移位寄存器的输出以及行经过驱动的扫描控制信号a、b、c、d构成整个led单元板的输出,用于级联下一个led单元板的输入。双色led单元板等效电路框图如图1(c)所示。
2 led显示控制系统的硬件组成及工作原理
led显示控制系统的硬件组成如图2所示。从表面上看是一个普通的单片机简单应用,实际上在设计此系统时已经考虑了很多硬件、软件及硬软件配合的因素。首先在使用51单片机的前提下,用其串行口方式0似乎可以利用单片机发出的移位脉冲将8位数据送入74hc595中,但要实现图2中8位数据的同时输入必须加其他的辅助芯片,而且在缩短数据传输时间上没有什么好处。其次,采用fpga、cpld等可编程芯片设计成专用硬件电路与单片机接口可大幅度提高数据传输的速度,但成本也将同步大幅度提高。
在图2所示的系统中采用了以下的设计理念:①由p0口同步输出8位字型点阵数据。②用p3.6产生sck信号,软件中相应使用“movx@r0,a”指令,在形成sck信号的同时减少指令的字节数。③由p2.0至p2.3输出行扫描信号,软件中将a、b、c、d存放在dph的低4位中。④rck和en分别由p3.4、p3.5控制。⑤sst89e516单片机的串行口与pc机通信。利用该单片机的iap功能下载显示所需的字型数据和控制程序。
3 led显示控制系统的数据组织及软件优化
led显示控制系统的数据组织如图3所示。从图2可以得到图3(a)所示的从正面看过去显示行与显示数据位以及颜色的对应关系。为了提高数据的读取速度,将显示数据按扫描行进行连续排列,可得到图3(b)所示的存储单元与扫描行、存储单元数据位及颜色的关系。
具体编程时可按下列步骤进行:①将准备扫描的行地址送p2口的低4位中。②将dptr指向待显示行相应存储单元的首地址。③以dptr为指针,使用“moxca,@a+dptr”读显示数据,并将显示数据送p0口。④通过p3.6产生sck,同时dptr加1。⑤重复②、③、④直到一行数据显示完毕,通过p3.4产生rck将通过移位寄存器移入的一行数据显示。⑥重复②、③、④、⑤直到15行数据全部显示完毕。⑦重复①~⑥刷新显示。
根据上述编程步骤,可以很容易编出显示第i行的子程序1。子程序1的第3行至第9行为循环体,送1字节的显示数据共需10个机器周期,机器码的字节数为11。通过分析74hc595的sck为上升沿有效,可用单片机的写信号(wr)来代替,故子程序1中的第5、6、7行3条指令可用“movx@r0,a”一条指令来替换,实验表明这样的替换是可靠的。显示第i行的子程序2为替换后的程序,送1字节的显示数据所需机器周期减为9,机器码的字节数减为6。再对显示第i行的子程序2仔细分析后发现,在仅使用sst89e516内部64 kb的flash存储器作为显示数据存储且不增加辅助电路的前提下,只有子程序2第7行“djnz r0,dp1”这条2个机器周期2字节指令,可以利用sst89e516内部64 kb的flash存储器大的特点,直接简单的重复256次子程序2中第3、4、5、6行4条单字节指令,从而可以缩短2个机器周期的时间。这样送1字节的机器周期可以减少为7,但程序需要增加1 kb。对64 kb的flash存储器来说,程序增加1kb减少不了多少显示数据。与子程序1相比,子程序3速度提高了30%。在图2所示12 mhz晶振并利用sst89e516的倍速功能,其1个机器周期为0.5μs,在忽略其他数据处
1 双色led单元板硬件组成及工作原理
常见的室内双色led单元板电路框图如图1(a)所示。其中行扫描电路由2片74hc138(3-8译码器)构成的4-16译码器加上多个4953(mos管)组成的,扫描方式为1/16。上下半屏分别由2组用74hc595串行移位寄存器实现红色、绿色显示数据的列输入,在图1(a)所示的64×32标准led单元板中,每组串行移位寄存器中有8个74hc595级联,4组共用了32个74hc595。74hc595内部电路框图如图1(b)所示。所有4组74hc595的控制信号rck、sck、en全部接在一起。74hc595的控制信号和4组串行移位寄存器的输入以及行扫描控制信号a、b、c、d构成整个led单元板的输入;74hc595的控制信号经驱动后和4组串行移位寄存器的输出以及行经过驱动的扫描控制信号a、b、c、d构成整个led单元板的输出,用于级联下一个led单元板的输入。双色led单元板等效电路框图如图1(c)所示。
2 led显示控制系统的硬件组成及工作原理
led显示控制系统的硬件组成如图2所示。从表面上看是一个普通的单片机简单应用,实际上在设计此系统时已经考虑了很多硬件、软件及硬软件配合的因素。首先在使用51单片机的前提下,用其串行口方式0似乎可以利用单片机发出的移位脉冲将8位数据送入74hc595中,但要实现图2中8位数据的同时输入必须加其他的辅助芯片,而且在缩短数据传输时间上没有什么好处。其次,采用fpga、cpld等可编程芯片设计成专用硬件电路与单片机接口可大幅度提高数据传输的速度,但成本也将同步大幅度提高。
在图2所示的系统中采用了以下的设计理念:①由p0口同步输出8位字型点阵数据。②用p3.6产生sck信号,软件中相应使用“movx@r0,a”指令,在形成sck信号的同时减少指令的字节数。③由p2.0至p2.3输出行扫描信号,软件中将a、b、c、d存放在dph的低4位中。④rck和en分别由p3.4、p3.5控制。⑤sst89e516单片机的串行口与pc机通信。利用该单片机的iap功能下载显示所需的字型数据和控制程序。
3 led显示控制系统的数据组织及软件优化
led显示控制系统的数据组织如图3所示。从图2可以得到图3(a)所示的从正面看过去显示行与显示数据位以及颜色的对应关系。为了提高数据的读取速度,将显示数据按扫描行进行连续排列,可得到图3(b)所示的存储单元与扫描行、存储单元数据位及颜色的关系。
具体编程时可按下列步骤进行:①将准备扫描的行地址送p2口的低4位中。②将dptr指向待显示行相应存储单元的首地址。③以dptr为指针,使用“moxca,@a+dptr”读显示数据,并将显示数据送p0口。④通过p3.6产生sck,同时dptr加1。⑤重复②、③、④直到一行数据显示完毕,通过p3.4产生rck将通过移位寄存器移入的一行数据显示。⑥重复②、③、④、⑤直到15行数据全部显示完毕。⑦重复①~⑥刷新显示。
根据上述编程步骤,可以很容易编出显示第i行的子程序1。子程序1的第3行至第9行为循环体,送1字节的显示数据共需10个机器周期,机器码的字节数为11。通过分析74hc595的sck为上升沿有效,可用单片机的写信号(wr)来代替,故子程序1中的第5、6、7行3条指令可用“movx@r0,a”一条指令来替换,实验表明这样的替换是可靠的。显示第i行的子程序2为替换后的程序,送1字节的显示数据所需机器周期减为9,机器码的字节数减为6。再对显示第i行的子程序2仔细分析后发现,在仅使用sst89e516内部64 kb的flash存储器作为显示数据存储且不增加辅助电路的前提下,只有子程序2第7行“djnz r0,dp1”这条2个机器周期2字节指令,可以利用sst89e516内部64 kb的flash存储器大的特点,直接简单的重复256次子程序2中第3、4、5、6行4条单字节指令,从而可以缩短2个机器周期的时间。这样送1字节的机器周期可以减少为7,但程序需要增加1 kb。对64 kb的flash存储器来说,程序增加1kb减少不了多少显示数据。与子程序1相比,子程序3速度提高了30%。在图2所示12 mhz晶振并利用sst89e516的倍速功能,其1个机器周期为0.5μs,在忽略其他数据处
上一篇:基于单片机的智能充电器设计