设计单片机并行口控制的两个5×7点阵LED显示器的驱动电路,并编写程序实现在两个5×7点阵LED显示器上的字符显示。 电路方面主要包括以下3部分。 (a)设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。 (b)采用动态驱动的方式,设计单片机并行端口与两个5×7点阵LED显示器的驱动电路,包括控制点阵LED行和列的连线。 (c)设计点阵LED的给电流电路(单片机并行端口接上拉电阻)。 编写单片机并行口控制(驱动)两个5×7点阵LED显示器字符(串)显示程序,结合要显示信息的(字符)字模,实现数字(0—9)或简单的英文字符的显示。显示方式和内容自定,如每隔一段时间循环显示数字0—9 或英文字符。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg51.h>
- #define u8 unsigned char //无符号字符型
- #define u16 unsigned int
- #define SPEED 1000
- u8 code table[]={
- /*-- 文字: --*/
- 0xFF,0xFF,0xFF,0xFF,
- /*-- 文字: --*/
- 0xFF,0xFF,0xFF,0xFF,
- /*-- 文字: 0 --*/
- 0xC1,0xDD,0xC1,0xFF,
-
- /*-- 文字: 1 --*/
- 0xED,0xC1,0xFD,0xFF,
-
- /*-- 文字: 2 --*/
- 0xD9,0xD5,0xCD,0xFF,
-
- /*-- 文字: 3 --*/
- 0xD5,0xD5,0xC1,0xFF,
-
- /*-- 文字: 4 --*/
- 0xF3,0xEB,0xC1,0xFB,
-
- /*-- 文字: 5 --*/
- 0xFF,0xC5,0xD5,0xD1,
-
- /*-- 文字: 6 --*/
- 0xFF,0xC1,0xD5,0xD1,
-
- /*-- 文字: 7 --*/
- 0xFF,0xCF,0xDF,0xC1,
-
- /*-- 文字: 8 --*/
- 0xFF,0xC1,0xD5,0xC1,
-
- /*-- 文字: 9 --*/
- 0xFF,0xC5,0xD5,0xC1,
- /*-- 文字: --*/
- 0xFF,0xFF,0xFF,0xFF,
-
- /*-- 文字: --*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF };
- u8 i,k,m=0,n=0;
- u16 j;
- void main()
- {
- P0=0XFF;
- P2=0X00;
- P3=0X00;
- while(1)
- {
- for(i=0;i<48;i++)
- {
- for(j=0;j<SPEED;j++)
- {
- for(k=0;k<10;k++)
- {
- m=i+k;
- n=k-8;
- if(k>7)
- {
- P2=0;
- P3=(0X01<<n);
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
单片机并行口驱动的两个5×7点阵LED显示器字符显示.rar
(83.82 KB, 下载次数: 61)
|