第1章 课题概述
1.1 课题意义LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
1.2课题目的通过课程设计,进一步熟悉和掌握AT89C51单片机的结构及工作原理,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。通过完成一个包括电路设计和程序开发的完整过程,进一步了解开发一单片机应用系统的全过程,通过此综合训练,为以后毕业设计打下一定的基础。
(1)利用74HC595扩展单片机IO口间接控制LED点阵使其显示。
(2)综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力,加深对单片机课程的全面认识。
(3)通过本次课程设计能够对程序进行编写和调试。
(4)通过本次系统设计,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。
1.3课题内容 以AT89C51单片机为控制器,用一个8*8点阵LED点阵显示屏,显示“●、○、♥”图形,通过按键来选择要显示的图形。
1.4设计方案点阵LED一般采用扫描式显示,实际运用分为三种方式: 一、点扫描;二、行扫描;三、 列扫描。 若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即 可。若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
所以本设计采用列扫描的方式,行由单片机向74HC595送串行数据,然后74HC595并行输出到LED点阵模块,利用外部中断检测按键控制切换显示图像数据输出,以达到设计要求的目的。
第2章 硬件实现及单元电路设计
2.1 硬件元器件的选择硬件元器件:AT89C51单片机、两个8位位移寄存器74HC595、一块8*8LED点阵、一个按键。
2.1.1 单片机型号选择
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与89C51引脚和指令系统完全兼容。 图2.1.1 AT89C51引脚图
2.1.2 单片机IO扩展电路芯片选择74HC595具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器有相互独立的时钟。利用它可以将8线IO缩小到3个IO使用即可满足设计需求。
图2.1.2 74HC595引脚图
2.1.3 8*8LED点阵模块选择如下图一为8×8点阵LED外观及引脚图,图二为其等效电路图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。满足设计需求。
图(一) 图(二)
2.2 硬件电路设计2.2.1主控电路的设计- 晶振电路设计:该电路晶振采用11.052MHz晶振,为单片机提供机械脉冲源。
- 复位电路设计:在单片机的RST端给高电平可使得单片机复位。
(3)电源电路设计:该电路采用VS1838b稳压三极管,使得系统电源稳定在5V。
(4)单片机IO:引脚如图所示的单片机是引脚双列直插封装方式,电源引脚40脚与接地脚20。 P0口作输入口使用时,应先向口锁存器写入1。P1口是一个带有内部上拉电阻的8 位双向I/O端口。P1的输出缓存可驱动4个TTL输入。P2口是一个带有内部上拉电阻的8位双向I/O端口。P3口也是一个带有内部上拉电阻的8位双向I/O端口, P3端口还用于一些复用功能。
2.2.2 LED点阵模块电路设计
74HC595的输入端连接单片机的P2.2,P3.3,P2.3,输出端控制LED点阵模块引脚。 2.2.3 按键电路设计如图为按键电路,采用上拉电阻式设计,使得按键初始状态稳定在高电平,抗干扰能力得到加强。
其中按键接口为单片机外部中断引脚。
第3章 软件设计
3.1 程序流程图第4章 调试及分析
本次设计是我第一次接触LED点阵显示设计,在经过老师简介LED点阵工作原理后,我在电脑仿真上先利用电源和地简单的测试理论,然后在一次次动手过程中最终理解了LED点阵的工作原理,在书写程序时,我分为以下几个步骤:
- 学会使用74HC595输出预设的数据。
- 结合74HC595点亮LED点阵里面的任意LED灯。
- 将点亮LED点阵单个LED函数封装成整体显示函数,显示预设简单图案如图一。
- 调通按键部分,使其工作正常,并可随意控制。
- 将按键和LED显示结合起来,利用按键改变LED显示图案。
- 将设计要求的图案替换原先简单图形,如图二至四。
图一 图二
图三 图四
心得体会
本次课程设计分为两个部分,单片机开发板焊接、调试与程序设计。我们花了一天的时间焊接,调试单片机。看似简单的一件事,需要耐心和细心。其中贴片元件是最难焊的。最后还是顺利完成了。
程序设计部分,之前参考例程,把一个简单的图形显示了出来,获得了不少的成就感,然后按照例程里面的图形数组的数据,自己修改,把自己设想的图案显示出来。之后一直在努力实现按键切换功能的实现,但一直都没有思路,后来想到用三个普通按键实现三种图形切换,发现这种方法实现起来很简单,之后想起应该要尽量减少硬件的使用以降低成本和工艺复杂度,用一个按键结合外部中断来实现图形切换的功能,反应速度要比之前显著提高。
改进的思路如下:之前采用一个一维数组储存一个图形的数据,如果要增加多个图形,则明显增加变量,然后我就想到了用一个二维数组来储存多个图形数据,因为其本身就已经保留了图形编号,便于调用。关于图形切换,采用按键触发中断,当按键按下时,其中断服务函数里面的变量自增一次,而在主函数里面查询这个变量的值,不同的值显示不同的图案。
最终实现了一个按键切换三个图形的功能,但主体程序完成后,我发现之前的图形取模不规范,然后利用软件取模的方法,使得模组数据规范化,使得最终的显示达到标准。
参考文献
【1】曾屹.单片机原理与应用.第2版.湖南:中南大学出版社,2009
【2】郭天祥.51单片机C语言教程.新概念.北京:电子工业出版社,2009
3.2主程序的设计
3.3 显示程序设计
(详见附件)