1632点阵电路设计.docx
- 文档编号:11694638
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:21
- 大小:340.28KB
1632点阵电路设计.docx
《1632点阵电路设计.docx》由会员分享,可在线阅读,更多相关《1632点阵电路设计.docx(21页珍藏版)》请在冰豆网上搜索。
1632点阵电路设计
16×32点阵数字钟及汉字显示
一.电路原理框架设计
实现功能:
点阵显示的实时时钟以及汉字等字符的左移显示
实用特征:
采用双电源供电,断电后时钟由电池供电还能继续运行,而且精确性较高
实现原理:
1. 时钟显示是由DS1302精确的时钟芯片产生时钟信号并将其送至单片机,经过单片机处理后再输送到点阵显示模块。
2. 汉字显示并左移原理是先写入与本点阵驱动相应的代码进单片机,通过单片机控制程序取表进行处理后送点阵模块显示
电路主要模块及原理图:
1.单片机最小系统及控制按键电路
2.DS1302与单片机接口电路
DS1302除了系统上电时由系统供电外,如果主电源断电还有一电池给DS1302供电,防止断电后DS1302数据消失。
4.点阵行驱动模块电路
行驱动采用74LS154(4-16线译码器)及PNP三极管,由于是16×32点阵显示功率较大故采用8550NP三极管。
5.点阵列驱动电路
列驱动采用74HC595移位寄存器将控制位级连接入单片机,每个74HC595数据输入端单独接单片机。
16×32点阵模块由8块小的8×8点阵模块通过级连而拼成,共16行,32列。
二:
主要元器件选择:
单片机:
AT89S51采用市场上比较常用的AT89S51
三极管:
点阵的行驱动电路用,这里采用PNP管,具体型号用8550
点阵块:
为了电路简单,采用双色8×8点阵
晶振:
采用的是12MHZ的晶振
电源部分:
采用5V电压供电,采用的是L7805稳压芯片供电
电阻:
大部分是限流电阻,阻值为4.7K或10K,1K
译码器:
4-16线采用市场上较为常用的74LS154,用来作行驱动
移位寄存器:
采用74HC595移位寄存器作列驱动,驱动列
端口分配及连接:
P1.0-P1.2:
DS1302与单片机接口
P1.3-P1.4:
K0,K1按键,用来调整时间,按下为0
P0:
P0口接点阵行驱动电路接译码器
P2:
P2口点阵列驱动电路接74HC595
最后是做好之后的图
附:
点阵时间显示源程序
//===================================================================================//
//*标题:
16*32点阵数字钟显示程序
//*说明:
时钟信号产生采用DS1302,列采用74HC595驱动(共4个),行驱动采用4-16线译码器74LS154
//*功能:
通过动态扫描显示时钟,可显示时,分,秒,日期中的月和日
//*作者:
HEY
//*日期:
2006-05-29
//*邮箱:
billy3416@
//*备注:
此是我刚接触单片机时的一个小制作程序和电路设计上难免有不足之处请谅解
//===================================================================================//
#include
#include
#defineucharunsignedchar
//===================================================================================//
//用到的引脚及端口定义
//===================================================================================//
sbitSERIALIN_0=P2^0; //定义P2.0为列向第1个74HC595的DATA输入
sbitSERIALIN_1=P2^1; //定义P2.1为列向第2个74HC595的DATA输入
sbitSERIALIN_2=P2^2; //定义P2.2为列向第2个74HC595的DATA输入
sbitSERIALIN_3=P2^3; //定义P2.3为列向第2个74HC595的DATA输入
sbitCLOCK_DATA=P1^0; //定义P1.0为DS1302的DATA端口
sbitCLOCK_RST=P1^1; //定义P1.1为DS1302的复位输出端口
sbitCLOCK_SCLK=P1^2; //定义P1.2为DS1302的时钟信号状态控制
sbitK0=P1^3; //K0为按键1,用来选择要调整时间的选项(时和分)
sbitK1=P1^4; //K1为按键2,执行加1
sbitCLOCK=P2^4; //74HC595的移位时钟控制
sbitLATCH=P2^5; //74HC595的锁存输出时钟控制
voidcontrol(); //调整时间控制函数
voidtime();
uchar CLOCK_TIME[3]={0,0,0}; //定义时钟时间数据存储区,分别为(时,分,秒)
uchar BUFFER[8]={0,0,0,0,0,0,0,0}; //显示缓冲区
uchar YEAR[3]={0,0,0}; //定义时钟年月日数据存储区
uchar temp[4]={0,0,0,0}; //定义74HC595的移位缓冲区
uchar FLASH_STOP; //显示小时和分钟之间的两点控制位
uchar sec_flash; //用单片机定时器模拟的一秒(用来控制小时和分中之间的两点)
//===================================================================================//
//定义0-9的点阵显示代码段 8*8
//===================================================================================//
ucharcodebmp[10][8]={
{0xe3,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xe3}, //0
{0xf7,0xc7,0xf7,0xf7,0xf7,0xf7,0xf7,0xc1}, //1
{0xe3,0xdd,0xdd,0xfd,0xfb,0xf7,0xef,0xc1}, //2
{0xe3,0xdd,0xfd,0xe3,0xfd,0xfd,0xdd,0xe3}, //3
{0xfb,0xf3,0xeb,0xdb,0xdb,0xc1,0xfb,0xf1}, //4
{0xc1,0xdf,0xdf,0xc3,0xfd,0xfd,0xdd,0xe3}, //5
{0xe3,0xdd,0xdf,0xc3,0xdd,0xdd,0xdd,0xe3}, //6
{0xc1,0xdd,0xfd,0xfb,0xf7,0xf7,0xf7,0xf7}, //7
{0xe3,0xdd,0xdd,0xe3,0xdd,0xdd,0xdd,0xe3}, //8
{0xe3,0xdd,0xdd,0xdd,0xe1,0xfd,0xdd,0xe3}, //9
};
//===================================================================================//
//定义0-9的点阵显示代码段 8*8 与上面不同的是多了小时和分钟之间的两点
//===================================================================================//
ucharcodebmp_1[10][8]={
{0xe3,0xdd,0x5d,0xdd,0xdd,0x5d,0xdd,0xe3}, //:
0
{0xf7,0xc7,0x77,0xf7,0xf7,0x77,0xf7,0xc1}, //:
1
{0xe3,0xdd,0x5d,0xfd,0xfb,0x77,0xef,0xc1}, //:
2
{0xe3,0xdd,0x7d,0xe3,0xfd,0x7d,0xdd,0xe3}, //:
3
{0xfb,0xf3,0x6b,0xdb,0xdb,0x41,0xfb,0xf1}, //:
4
{0xc1,0xdf,0x5f,0xc3,0xfd,0x7d,0xdd,0xe3}, //:
4
{0xe3,0xdd,0x5f,0xc3,0xdd,0x5d,0xdd,0xe3}, //:
5
{0xc1,0xdd,0x7d,0xfb,0xf7,0x77,0xf7,0xf7}, //:
6
{0xe3,0xdd,0x5d,0xe3,0xdd,0x5d,0xdd,0xe3}, //:
7
{0xe3,0xdd,0x5d,0xdd,0xe1,0x7d,0xdd,0xe3}, //:
8
};
//===================================================================================//
//定义0-9的点阵显示代码段数码似的字模 8*8 显示数据前有一横杠将月和日格开
//===================================================================================//
ucharcodebmp_2[10][8]={
{0xff,0xff,0xf8,0xfa,0x8a,0xfa,0xf8,0xff}, //-0
{0xff,0xff,0xfe,0xfe,0x8e,0xfe,0xfe,0xff}, //-1
{0xff,0xff,0xf8,0xfe,0x88,0xfb,0xf8,0xff}, //-2
{0xff,0xff,0xf8,0xfe,0x88,0xfe,0xf8,0xff}, //-3
{0xff,0xff,0xfa,0xfa,0x88,0xfe,0xfe,0xff}, //-4
{0xff,0xff,0xf8,0xfb,0x88,0xfe,0xf8,0xff}, //-5
{0xff,0xff,0xf8,0xfb,0x88,0xfa,0xf8,0xff}, //-6
{0xff,0xff,0xf8,0xfe,0x8e,0xfe,0xfe,0xff}, //-7
{0xff,0xff,0xf8,0xfa,0x88,0xfa,0xf8,0xff}, //-8
{0xff,0xff,0xf8,0xfa,0x88,0xfe,0xf8,0xff}, //-9
};
//===================================================================================//
//定义0-9的点阵显示代码段模拟数码似的字模 8*8
//===================================================================================//
ucharcodebmp_3[10][8]={
{0xff,0xff,0x8f,0xaf,0xaf,0xaf,0x8f,0xff}, //0
{0xff,0xff,0xef,0xef,0xef,0xef,0xef,0xff}, //1
{0xff,0xff,0x8f,0xef,0x8f,0xbf,0x8f,0xff}, //2
{0xff,0xff,0x8f,0xef,0x8f,0xef,0x8f,0xff}, //3
{0xff,0xff,0xaf,0xaf,0x8f,0xef,0xef,0xff}, //4
{0xff,0xff,0x8f,0xbf,0x8f,0xef,0x8f,0xff}, //5
{0xff,0xff,0x8f,0xbf,0x8f,0xaf,0x8f,0xff}, //6
{0xff,0xff,0x8f,0xef,0xef,0xef,0xef,0xff}, //7
{0xff,0xff,0x8f,0xaf,0x8f,0xaf,0x8f,0xff}, //8
{0xff,0xff,0x8f,0xaf,0x8f,0xef,0x8f,0xff}, //9
};
//===================================================================================//
//定义0-59模拟七段数码管显示8*8
//===================================================================================//
ucharcodebmp_4[60][8]={
{0xff,0xff,0x88,0xaa,0xaa,0xaa,0x88,0xff}, //00
{0xff,0xff,0x8e,0xae,0xae,0xae,0x8e,0xff}, //01
{0xff,0xff,0x88,0xae,0xa8,0xab,0x88,0xff}, //02
{0xff,0xff,0x88,0xae,0xa8,0xae,0x88,0xff}, //03
{0xff,0xff,0x8a,0xaa,0xa8,0xae,0x8e,0xff}, //04
{0xff,0xff,0x88,0xab,0xa8,0xae,0x88,0xff}, //05
{0xff,0xff,0x88,0xab,0xa8,0xaa,0x88,0xff}, //06
{0xff,0xff,0x88,0xae,0xae,0xae,0x8e,0xff}, //07
{0xff,0xff,0x88,0xaa,0xa8,0xaa,0x88,0xff}, //08
{0xff,0xff,0x88,0xaa,0xa8,0xae,0x88,0xff}, //09
{0xff,0xff,0xe8,0xea,0xea,0xea,0xe8,0xff}, //10
{0xff,0xff,0xee,0xee,0xee,0xee,0xee,0xff}, //11
{0xff,0xff,0xe8,0xee,0xe8,0xeb,0xe8,0xff}, //12
{0xff,0xff,0xe8,0xee,0xe8,0xee,0xe8,0xff}, //13
{0xff,0xff,0xea,0xea,0xe8,0xee,0xee,0xff}, //14
{0xff,0xff,0xe8,0xeb,0xe8,0xee,0xe8,0xff}, //15
{0xff,0xff,0xe8,0xeb,0xe8,0xea,0xe8,0xff}, //16
{0xff,0xff,0xe8,0xee,0xee,0xee,0xee,0xff}, //17
{0xff,0xff,0xe8,0xea,0xe8,0xea,0xe8,0xff}, //18
{0xff,0xff,0xe8,0xea,0xe8,0xee,0xe8,0xff}, //19
{0xff,0xff,0x88,0xea,0x8a,0xba,0x88,0xff}, //20
{0xff,0xff,0x8e,0xee,0x8e,0xbe,0x8e,0xff}, //21
{0xff,0xff,0x88,0xee,0x88,0xbb,0x88,0xff}, //22
{0xff,0xff,0x88,0xee,0x88,0xbe,0x88,0xff}, //23
{0xff,0xff,0x8a,0xea,0x88,0xbe,0x8e,0xff}, //24
{0xff,0xff,0x88,0xeb,0x88,0xbe,0x88,0xff}, //25
{0xff,0xff,0x88,0xeb,0x88,0xba,0x88,0xff}, //26
{0xff,0xff,0x88,0xee,0x8e,0xbe,0x8e,0xff}, //27
{0xff,0xff,0x88,0xea,0x88,0xba,0x88,0xff}, //28
{0xff,0xff,0x88,0xea,0x88,0xbe,0x88,0xff}, //29
{0xff,0xff,0x88,0xea,0x8a,0xea,0x88,0xff}, //30
{0xff,0xff,0x8e,0xee,0x8e,0xee,0x8e,0xff}, //31
{0xff,0xff,0x88,0xee,0x88,0xeb,0x88,0xff}, //32
{0xff,0xff,0x88,0xee,0x88,0xee,0x88,0xff}, //33
{0xff,0xff,0x8a,0xea,0x88,0xee,0x8e,0xff}, //34
{0xff,0xff,0x88,0xeb,0x88,0xee,0x88,0xff}, //35
{0xff,0xff,0x88,0xeb,0x88,0xea,0x88,0xff}, //36
{0xff,0xff,0x88,0xee,0x8e,0xee,0x8e,0xff}, //37
{0xff,0xff,0x88,0xea,0x88,0xea,0x88,0xff}, //38
{0xff,0xff,0x88,0xea,0x88,0xee,0x88,0xff}, //39
{0xff,0xff,0xa8,0xaa,0x8a,0xea,0xe8,0xff}, //40
{0xff,0xff,0xae,0xae,0x8e,0xee,0xee,0xff}, //41
{0xff,0xff,0xa8,0xae,0x88,0xeb,0xe8,0xff}, //42
{0xff,0xff,0xa8,0xae,0x88,0xee,0xe8,0xff}, //43
{0xff,0xff,0xaa,0xaa,0x88,0xee,0xee,0xff}, //44
{0xff,0xff,0xa8,0xab,0x88,0xee,0xe8,0xff}, //45
{0xff,0xff,0xa8,0xab,0x88,0xea,0xe8,0xff}, //46
{0xff,0xff,0xa8,0xae,0x8e,0xee,0xee,0xff}, //47
{0xff,0xff,0xa8,0xaa,0x88,0xea,0xe8,0xff}, //48
{0xff,0xff,0xa8,0xaa,0x88,0xee,0xe8,0xff}, //49
{0xff,0xff,0x88,0xba,0x8a,0xea,0x88,0xff}, //50
{0xff,0xff,0x8e,0xbe,0x8e,0xee,0x8e,0xff}, //51
{0xff,0xff,0x88,0xbe,0x88,0xeb,0x88,0xff}, //52
{0xff,0xff,0x88,0xbe,0x88,0xee,0x88,0xff}, //53
{0xff,0xff,0x8a,0xba,0x88,0xee,0x8e,0xff}, //54
{0xff,0xff,0x88,0xbb,0x88,0xee,0x88,0xff}, //55
{0xff,0xff,0x88,0xbb,0x88,0xea,0x88,0xff}, //56
{0xff,0xff,0x88,0xbe,0x8e,0xee,0x8e,0xff}, //57
{0xff,0xff,0x88,0xba,0x88,0xea,0x88,0xff}, //58
{0xff,0xff,0x88,0xba,0x88,0xee,0x88,0xff}, //59
};
//===================================================================================//
//名称:
delay
//说明:
延时函数
//功能:
根据需要取不同的值,实现不同的延时效果
//===================================================================================//
voiddelay()
{
ucharn;
for(n=0;n<=125;n++);
}
voiddelay2(ucharm)
{
ucharn;
while(m--)
{
for(n=0;n<=200;n++);
}
}
//===================================================================================//
//名称:
shift
//说明:
74HC595左移程序
//功能:
实现74HC595的移位输入
//===================================================================================//
voidshift()
{
ucharj;
for(j=0;j<8;j++)
{
temp[0]=temp[0]<<1; //将temp[0]左移1位
SERIALIN_0=CY; //进位输出到移位寄存器
temp[1]=temp[1]<<1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1632 点阵 电路设计