16 16LED点阵显示屏.docx
- 文档编号:5595200
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:16
- 大小:685.71KB
16 16LED点阵显示屏.docx
《16 16LED点阵显示屏.docx》由会员分享,可在线阅读,更多相关《16 16LED点阵显示屏.docx(16页珍藏版)》请在冰豆网上搜索。
1616LED点阵显示屏
单片机课程设计
课题:
16*16点阵LED电子显示屏
系别:
专业:
姓名:
学号:
XXXXXX学院
2010年12月30日
一、设计目的
1、学习和熟悉单片机的系统开发及应用。
2、了解并熟悉点阵屏的接口连接及软件控制。
二、设计要求
1、设计一个16*16点阵LED电子显示屏。
2、要求在目测条件下LED电子显示屏各点亮度均匀、充足,显示图形和文字应稳定、清晰无串扰。
图形文字显示有静止、移入移出等显示方式。
三、系统总体设计框图
图一
图二主程序流程图
开始
初始化
显示缓冲区数据
装载显示数据至缓冲区
是否调时?
调时程序
是
否
图三定时器流程图
本次设计是基于STC52单片机,用16*16点阵屏作为显示器显示时间,并附带闹钟,滚动字幕显示功能的多功能时钟,具有很强的实用性和装饰性,新颖时尚。
本系统采用STC52单片机为系统的控制核心,系统主要包括控制模块,LED点阵模块,驱动模块,报警模块。
四、各部分电路设计
1、控制模块:
以STC52单片机为控制核心,加上晶振振荡电路和复位电路组成的最小系统,如图四所示:
图四
2、LED点阵模块
采用四个8*8的LED单色高亮红光点阵模块组成16*16的点阵屏,单点电气属性:
VOL:
1.8-2.6V,AMP:
5-15MA。
扫描方式为动态扫描。
图五
电路图如图六所示:
图六
3、驱动模块
行线驱动:
采用两个74LS573锁存器分别连接点阵块的行线,作为点阵块的电流驱动,控制端口为P0和P1。
列线驱动:
采用两各74LS138三线八线译码器组合成四线十六线译码器作为点阵屏的列选控制,接点阵屏的列线,ABCD分别对应的控制端口为P2.0、P2.1、P2.2、P2.3。
电路如图七所示:
图七
4、按键及蜂鸣器
一共有设有五个按键:
模式、设定、增加、减少、确定,分别对应的端口为P3.3、P3.5、P3.1、P3.2、P3.4。
蜂鸣器用三极管作为驱动,控制端口为P3.6.
电路如图八所示:
图八
5、电源
因电路所需电流较大,同时考虑到单片机的工作电压,本系统选用4节5号电池作为电源供电。
5、整体电路图
仿真图如下:
6、程序设计
/*********************************************************
程序名称:
LED16*16点阵显示时间
简要说明:
P1口接上行线,P0口接下行线,P2口接扫描线
*********************************************************/
#include
#defineucharunsignedchar
#defineuintunsignedint
#definehang1P1//上行线
#definehang2P0//下行线
#definelieP2//列线
#definelight200//显示亮度
sbitk1=P3^5;
sbitk2=P3^0;
sbitk3=P3^1;
sbitk4=P3^4;
sbitkr=P3^2;
sbitspk=P3^6;
uchardisbuf[2][16];
ucharLED;
ucharhour=12,minute=00,second;
ucharset=0;
ucharchange=0;
ucharcodeshuzi[][6]=
{
0x3E,0x7F,0x49,0x45,0x7F,0x3E,//0
0x00,0x42,0x7F,0x7F,0x40,0x00,//1
0x46,0x63,0x71,0x59,0x4F,0x46,//2
0x22,0x63,0x49,0x49,0x7F,0x36,//3
0x38,0x3C,0x22,0x7F,0x7F,0x20,//4
0x27,0x67,0x45,0x45,0x7D,0x39,//5
0x38,0x7C,0x4E,0x4B,0x79,0x30,//6
0x01,0x01,0x79,0x7D,0x07,0x03,//7
0x36,0x7F,0x49,0x49,0x7F,0x36,//8
0x06,0x4F,0x69,0x39,0x1F,0x0E,//9
};
ucharcodeseg[]=
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
};
/*****可变延时*****/
voiddelay(void)
{
unsignedchari;
for(i=0;i } /*****可变延时*****/ voiddelayms(uintx) { uchari; while(x--) for(i=0;i<120;i++); } /*****蜂鸣器*****/ voidbeep() { uchari,j=70; for(i=0;i<200;i++) { while(--j);spk=~spk; } delayms(300);spk=0; } /*****装载显示数据至缓冲区*****/ voidload_time(void) { unsignedchari; for(i=0;i<6;i++) { if(set==1&&change==0) {disbuf[0][i]=disbuf[0][i+7]=0;} else{disbuf[0][i]=shuzi[hour/10][i]; disbuf[0][i+7]=shuzi[hour%10][i];} if(set==1&&change==1) {disbuf[1][i+3]=disbuf[1][i+10]=0;} else{disbuf[1][i+3]=shuzi[minute/10][i]; disbuf[1][i+10]=shuzi[minute%10][i];} } if(LED){disbuf[0][14]=disbuf[0][15]=0x6c;} else{disbuf[0][14]=disbuf[0][15]=0x00;} } /*****扫描显示数据缓冲区的内容*****/ voiddisplay(void) { unsignedchari; for(i=0;i<16;i++) { lie=seg[i]; hang1=disbuf[0][i]; hang2=disbuf[1][i]; delay(); hang1=0x00; hang2=0x00; } } /***********设置时间*********/ voidchangetime() { if(k1==0) delayms(100); if(k1==0) {beep(); set=1; change=! change;} if(set==1&&change==1&&k2==0) {beep(); if(++hour==24)hour=0;} if(set==1&&change==1&&k3==0) {beep(); if(--hour==0xff)hour=23;} if(set==1&&change==0&&k2==0) {beep(); if(++minute==60)minute=0;}; if(set==1&&change==0&&k3==0) {beep(); if(--minute==0xff)minute=59;} if(set==1&&k4==0)set=0; } /*****主程序*****/ voidmain(void) { TMOD=0x01;//定时器010msin12Mcrystal用于计时 //定时器1//中断显示汉字 TH0=0xd8; TL0=0xf0; IE=0x82; TR0=1; while (1) { load_time(); display(); changetime(); } } /************定时中断0(计时)***************/ voidtime0(void)interrupt1using1 { staticunsignedcharcount;//定义内部静态变量 TH0=0xd8;//重新赋值 TL0=0xf0; count++; switch(count) { //case0: //case20: //case40: //case60: //case80: case50: LED=! LED;//半秒LED闪烁 break; default: break; } if(count==100) { count=0; second++;//秒加1 if(second==60) { second=0; minute++;//分加1 if(minute==60) { minute=0; hour++;//时加1 if(hour==24) hour=0; } 7、设计总结 1、设计过程中遇到的问题及解决方法 由于初次进行单片机电路设计,对单片机及相关的硬件设备不够了解,造成连接电路时发生引脚接错现象。 通过仔细了解相关的知识要点和与同学交流解决了该问题。 在焊接电路板时碰到的不小心短路情况,也因多次练习终于成功。 2、设计体会 我通过完成这次的单片机课程设计,让我对单片机的理论有了深入的了解,更好的了解单片机这门课程对我的设计有着至关重要的作用。 同时在具体的制作设计过程中我发现理论知识与实际的应用存在着不小的差距。 在完成这篇论文后,我学会了很多知识,特别是对单片机课程产生了浓厚的兴趣。 3、对设计的建议 通过本次课程设计,我发现我们在学习课本知识的时候,更应该时常动手做实验,巩固和运用学过的知识,理论结合实际地学习。 八、参考文献 [1]梅丽凤,单片机原理及接口技术,清华大学出版社,2004 [2]扬恢先,黄辉,单片机原理及应用,人民邮电出版社,2006 [3]张毅刚,单片机原理及应用,高等教育出版社,2003 [4]张连华,单片机应用系统设计方法,科学之友,2010, [5]楼然苗,51系列单片机设计实例,北京航空航天出版社, 成绩评定· 一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。 二、评分 评分项目 设计报告评分 答辩评分 平时表现评分 合计 (100分) 任务完成 情况 (20分) 课程设计 报告质量 (40分) 表达情况 (10分) 回答问题 情况 (10分) 工作态度与纪律 (10分) 独立工作 能力 (10分) 得分 班级姓名学号 成绩: 分(折合等级) 指导教师签字年月日 课程设计成绩评定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 16LED点阵显示屏 LED 点阵 显示屏