LED灯实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理学与信息科学学院
微机接口课程设计报告
设计题目点阵LED屏显示设计
学生专业班级计算机科学与技术2013级02班
学生姓名(学号)赵世飞(20133739)
设计小组其他同学姓名(学号)唐辉(20133649)
于晨(20133701)指导教师李绍静
完成时间 2016年04月14日
实习(设计)地点信息楼526
2016 年 4 月 16 日
一、课程设计目的和任务
利用点阵LED屏向上卷动显示“青岛农业大学”;
熟悉Keil软件和STC-ISP-v4.80软件的使用,微机原理实验箱及其开发环境;
查阅点阵LED屏的工作原理,如何获取图形,结合原理图了解芯片如何驱动点阵LED屏工作,了解LED点阵的基本结构,学习LED点阵的扫描显示方法。
二、分析与设计
1.设计任务分析:实验系统中的16*16LED点阵由四块8*8LED点阵组成,点阵中对应点的正、负极为“1”、“0”时,该灯点亮。
2.设计方案论证:16*16LED点阵行线为阳极线,列线为阴极线,显示时采用按行扫描,从第0行开始逐行赋值“1”,同时用2个字节控制16列的阴极端,使指定小灯发光。
3.硬件设计及原理图:
点阵LED单元原理图
点阵LED显示实验接线图
4
程序流程图
/*头文件hzdot.h*/
unsigned char code hzdot[224] = {
0x80,0x00,0x80,0x00,0xFC,0x1F,0x80,0x00,
0xF8,0x0F,0x80,0x00,0xFF,0x7F,0x00,0x00,
0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,
0xF8,0x0F,0x08,0x08,0x08,0x0A,0x08,0x04,//青0x40,0x00,0x20,0x00,0xF8,0x0F,0x08,0x08,
0x28,0x08,0xC8,0x08,0x48,0x0A,0x08,0x04,
0xF8,0x3F,0x20,0x20,0x20,0x20,0x22,0x22,
0x22,0x22,0xFE,0x23,0x00,0x14,0x00,0x08,//岛
0x40,0x00,0xC0,0x00,0x40,0x20,0xFC,0x7F,
0x44,0x20,0xA2,0x10,0xA0,0x08,0x30,0x1D,
0x18,0x05,0x14,0x02,0x12,0x04,0x11,0x0C,
0x90,0x18,0x50,0x70,0x38,0x10,0x10,0x00,//农0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x22,
0x22,0x62,0x24,0x32,0x24,0x12,0x28,0x0A,
0x38,0x0A,0x28,0x06,0x20,0x02,0x20,0x02,
0x20,0x22,0xFF,0x7F,0x00,0x00,0x00,0x00,//业
0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
0x80,0x00,0xFF,0x7F,0x80,0x00,0x40,0x01,
0x40,0x01,0x40,0x02,0x20,0x02,0x20,0x04,
0x10,0x08,0x08,0x18,0x04,0x70,0x02,0x20,//大0x80,0x10,0x08,0x31,0x30,0x13,0x10,0x09,
0xFE,0x7F,0x02,0x20,0xF1,0x17,0x00,0x02,
0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x01,0x40,0x01,0x80,0x00,//学0x80,0x00,0x80,0x00,0xFC,0x1F,0x80,0x00,
0xF8,0x0F,0x80,0x00,0xFF,0x7F,0x00,0x00,
0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,
0xF8,0x0F,0x08,0x08,0x08,0x0A,0x08,0x04,//青};
/*程序源代码*/
#include<sst89x5x4.h>
#include<Absacc.h>
#include<hzdot.h>
#define Row1 XBYTE[0xef00]
#define Row2 XBYTE[0xdf00]
#define Col1 XBYTE[0xbf00]
#define Col2 XBYTE[0x7f00]
void Delay(void)
{
unsigned char i;
for(i=0;i<60;i++);
}
void clear(void)//清屏
{
Row1 = 0x00;
Row2 = 0x00;//行(阳极端)
Col1 = 0xff;
Col2 = 0xff;//列(阴极端)
}
void main(void)
{
unsigned char Scan = 0x01,i,j;
unsigned int count = 0;
clear(); //清屏
while(1)
{
for(i=0;i<50;i++)
{
for(j=0;j<8;j++) //0-7行
{
Row1 = 0x00; //消隐
Col1 = ~hzdot[count];
Col2 = ~hzdot[count+1];
count += 2;
Row1 = Scan;
Scan = (Scan<<1)|(Scan>>7);
Delay();
}
Row1 = 0x00;
for(j=0;j<8;j++) //8-15行
{
Row2 = 0x00; //消隐
Col1 = ~hzdot[count];
Col2 = ~hzdot[count+1];
count += 2;
Row2 = Scan;
Scan = (Scan<<1)|(Scan>>7);
Delay(); //延时
}
Row2 = 0x00;
count -= 32;
}
count += 2; //换帧
if(count == (224-32))
count = 0;
}
}
三、系统实施
系统实现与调试过程中遇到的主要问题分析:汉字显示时出现鬼影现象,加入消隐程序解决;最后一个文字显示完成立刻跳显第一个文字,在汉字数组最后加上第一个汉字的字模,实现连续滚屏。
系统运行的结果:向上卷动显示“青岛农业大学”。
四、总结与体会
通过这次综合实验,我们小组有很多的心得体会,有些关于单片机的,更多的是有关于人与人之间关系方面的。
从开始接触题目到系统的实现,再到设计说明书的完成,每走一步对我来说都是新的尝试与挑战。
这次课程设计经历颇多,受益颇多让我巩固了学过的知识,获得了很多新的知识虽然开始的时候可以说是举步维艰,但是当自己真正的用心去做的时候才发现事情本身也并没有想象中的那么难。
我现在是切实感受到了用心。
我相信我会一直坚守这个信念去指引我接下来的人生道路。
通过这次试验,我对单片机点阵LED显示设计进行了仿真设计,在方案设计和芯片的选择上,培养了我的综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识,还锻炼了我个人的查阅资料的能力,动手能力,发现问题和解决问题的能力。
并且我们熟悉掌握有关器件的性能及测试方法。
从设计结果上可以看出进行单片机的系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,程序修改、编译后很快就能看到效果,大幅度的节省制作电路板的时间,非常适合设计开发,对于提高产骗的开发效率、降低开发成本等有重要意义。
感谢老师的辅导和教育,我相信通过本次课程设计让我对单片机有了一个更好的认识,无论是在将来的学习生活还是工作中要脚踏实地,认真钻研,善于请教。
课程设计虽然时间短暂,但我学到了很多东西,是我的眼界得到了开口,感受颇深。
五、参考书目
张荣标,微型计算机原理与接口技术.第2版,机械工业出版社,2015.08.
赵丽清,惠鸿忠,单片机原理与C51基础,机械工业出版社,2015.07.
谭浩强,C程序设计(第四版),清华大学出版社,2010.06.
课程设计成绩评定表。