编号:
课程设计说明书
题 目: 8X8点阵显示数字 院 (系): 机电工程学院 专 业:机械设计制造及其自动化 学生姓名及学号:
陈业钦 0800110307 阮春晖 0800110325 陆紫珊 0800110303
2011年12月16日
前言
单片机的实际应用一直是单片机初学者难以掌握的问题。我们的课程设计方法也许不是最佳方案,但也是我们组经过讨论及整合各种资料,再加上自己的创意来完成属于我们自己的课程设计。
设计内容:设计一块电路板,编程使板上的8X8点阵显示器显示数字。 要求:1、在8X8点阵显示0到9的数字,且显示清晰。
2、当按键按一次,则显示的数字加一,从0 到 9 循环。
LED点阵电子显示屏是集微电子技术,计算机技术,信息处理技术于一体的大型显示屏系统。随着单片机技术的不断发展,单片机的日益平民化以及LED技术的不断创新,使得高亮度高清晰的LED点阵显示屏的成本逐渐降低。LED显示屏可以随时改变内容,操作简单,成本低,具有实用性,给人们的生活带来了许多的用途和方便。点阵数高,可以显示图形或汉字,而且清晰度高,还有许多附加功能。近年LED显示屏已广泛应用于室内、外需要进行服务内容和服务宗旨宣传的公众场所如电信、邮政大厅、营业部、车站机场、港口体育场等信息的发布,政府机关政策、政令的发布,各类市场营销的信息和宣传等。
系统采用51系列单片机控制,即AT89C51单片机作控制器。在电路设计时,选用P3.2、P3.3管脚,以外部中断的方式实现按键信号的读入。由于用中断方式,不会影响到程序的流程控制,有利于控制程序的设计。硬件电路设计简单,只需在I/O口(经过上拉电阻后)与8?8点阵之间接入限流电阻限流即可,同时也有利与程序的设计。经过第一次试验之后发现点阵不怎么亮,故经过思考,在P0口与8?8点阵之间接入74HC573进行驱动(将74HC573的11脚接高电平后,输出随输入改变);在完成设计任务功能的基础上,还增加了扩展功能。
2
目录
第1章 系统概述 .......................................................................................................................... 4
1.1系统设计思路和方案 ........................................................................................................ 4 1.2可行性分析 ........................................................................................................................ 4 1.3各功能模块及其组成 ........................................................................................................ 5
1.3.1 中断按键 ................................................................................................................ 5 1.3.2 AT89C51 ................................................................................................................. 5 1.3.3 74HC573 .................................................................................................................. 5 1.3.4 8*8点阵 ............................................................................................................ 5
第2章 单元电路设计与仿真 ...................................................................................................... 7
2.1 电路设计 ........................................................................................................................... 7
2.1.1 单片机最小系统电路............................................................................................. 7 2.1.2 中断按键电路 ........................................................................................................ 8 2.1.3 8*8点阵控制电路 .............................................................................................. 8 2.2 程序设计 ........................................................................................................................... 9
2.2.1 8*8点阵数字显示编码....................................................................................... 9 2.2.2 程序设计 .............................................................................................................. 10 2.3 仿真 ................................................................................................................................. 12 第3章 电路的安装与调试 ........................................................................................................ 12
3.1 制版 ............................................................................................................................... 12 3.2调试 .................................................................................................................................. 13 3.3出现的问题 ...................................................................................................................... 13 第4章 结束语 ............................................................................................................................ 13 附件: ............................................................................................................................................ 14
1.元件清单表 ....................................................................................................................... 14 2. 原理图 ............................................................................................................................... 14 3. PCB图 ............................................................................................................................... 15 参考文献: .................................................................................................................................... 15
3
第1章 系统概述
1.1系统设计思路和方案
系统采用51系列单片机控制,在电路设计时,选用P3.2、P3.3管脚,以外部中断的方式实现按键信号的读入。由于用中断方式,不会影响到程序的流程控制,有利于控制程序的设计。
AT89C51单片机作控制器,8?8点阵显示器,其中,P0作为点阵列控制口,P2作为点阵行控制口字,第31脚(EA)接电源,P3.2、P3.3口分别接开关K2、K3。由于采用单片机直接控制8?8点阵,所以硬件电路设计简单,只需在I/O口(经过上拉电阻后)与8?8点阵之间接入限流电阻限流即可,同时也有利与程序的设计。经过第一次试验之后发现点阵不怎么亮,故经过思考,在P0口与8?8点阵之间接入74HC573进行驱动(将74HC573的11脚接高电平后,输出随输入改变),如下图:
在完成设计任务功能的基础上,还增加了扩展功能,即增加了按键选择模式,和动态扫描显示0~9以及组员的学号(中间以心形隔开)。
1.2可行性分析
由于51系列单片机拥有两个外部中断,用两个按键来实现依次加一和减一功能较为简单。其4组32个I/O口,能满足利用两组来控制8?8点阵的要求。至于其他的扩展功能,通过编程也可以实现。
4
1.3各功能模块及其组成 1.3.1 中断按键
通过按键(分别连INT0和INT1脚),输入一个触发源,经过单片机处理后,使其按相应的设定改变I/O口的电平,从而控制 8?8点阵做相应的显示。
1.3.2 AT89C51
AT89C51最小系统模块包括一个复位电路,一个晶振电路。本设计的复位电路由一个按键、一个极性电容和两个串联的电阻组成(连RST脚),晶振电路由一个11.0592M和两个30pf的普通电容构成(连XTAL1和XTAL2脚)。
本设计所用到的I/O口为P0和P2。
1.3.3 74HC573
八进制3态非反转透明锁存器,此处用它的放大功能(相当于三极管),将其锁存端接高电平,其输出随输入而改变。
1.3.4 8*8点阵
8?8点阵上下两排引脚,每排8个,一共16个,共由64个发光二极管组成,
且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第1脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第a脚接低电平,而(1、2、3、4、5、6、7、8)接高电平,那么第一列就会点亮。如下图所示:
5
本设计所用的点阵封装图如下所示:
6
第2章 单元电路设计与仿真
2.1 电路设计
2.1.1 单片机最小系统电路
单片机最小系统主要有复位电路和晶振电路构成。 (1)复位电路
在51单片机中最常见的复位电路有上电复位和手动复位,如下图所示:
RST引脚是复位信号的输入端,复位信号为高电平有效,有效的持续时间在
24个振荡周期以上才能复位。这里选择手动复位电路,能在单片机死机时及时复位。
(2)晶振电路
单片机的振荡时钟有内部时钟和外部时钟两种方式。
内部振荡方式:如下图所示,单片机内有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成内部自激振荡器并产生振荡时钟脉冲。
外部振荡方式:将外部已有的时钟脉冲信号引入单片机内。 本设计采用内部振荡方式。
7
2.1.2 中断按键电路
中断按键电路取决于控制程序的设计,在控制程序中选用中断为负跳变触发
方式,因此中断按键设计如下所示,当按键未按下时,相应管脚为高电平,当按键按下时,管脚电平负跳变,触发中断,使控制程序转入中断服务程序。
2.1.3 8*8点阵控制电路
8?8点阵内部有64个LED组成,驱动时为了增加其亮度,P0口在加上拉电阻的前提下再加一个74HC573芯片(当三极管放大作用)。由资料知,LED发光二极管的压紧一般为1.5-2V,工作电流一般为10-20mA,去I=15mA,U=2V,得出上拉电阻值为:R=200?,这里取R=270?。总电路如下:
8
2.2 程序设计
2.2.1 8*8点阵数字显示编码
由1.3.4 8?8点阵显示原理知,当某行置低电平,某列置高电平时,对应的LED发光二极管就亮。
下图所示“0”字符的编码,当选择第一行时,将相应的行管脚置低,由于没有二极管发亮,故对应的列全置低;当选择第二行时,将相应的行管脚置低,由于3、4、5个二极管亮,故相应的列管脚置高,依次可得选择行的编码为:
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
“0”的编码为:{0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18}; “1”的编码为:{0x00,0x08,0x18,0x08,0x08,0x08,0x08,0x08}; “2”的编码为:{0x00,0x18,0x24,0x24,0x08,0x10,0x20,0x3C}; “3”的编码为:{0x00,0x18,0x24,0x04,0x08,0x04,0x24,0x18}; “4”的编码为:{0x00,0x08,0x08,0x18,0x28,0x3C,0x08,0x08}; “5”的编码为:{0x00,0x3C,0x20,0x38,0x04,0x04,0x24,0x18}; “6”的编码为:{0x00,0x18,0x24,0x20,0x38,0x24,0x24,0x18}; “7”的编码为:{0x00,0x3C,0x24,0x04,0x08,0x10,0x10,0x10}; “8”的编码为:{0x00,0x18,0x24,0x24,0x18,0x24,0x24,0x18}; “9”的编码为:{0x00,0x18,0x24,0x24,0x1C,0x4,0x24,0x18}; “10”的编码为:{0x4C,0xD2,0x52,0x52,0x52,0x52,0x52,0xEC};
9
2.2.2 程序设计
(1)开机检测程序
开机检测程序让8?8点阵全部点亮,以检测屏幕是否有坏点。主要语句如下:
P0=0xff;//列置高
P2=0x00;//行置低,全亮
P0=0x00;//关闭所有LED (2)数字显示程序
8?8点阵以列动态扫描显示的方式显示0-9任意数字。程序如下: void display(int n)//n为待显示的数 {
int a;
for(a=8;a>0;a--) {
P2=table[a];//已编码的行数表
10
P0=graph[n][a];//已编码的列二维数表
}
}
(3)外部中断程序 ①外部中断1
该段程序用来控制依次加一功能,程序如下: void INT_0() interrupt 0 { EX0=0; delay(50); EX0=1;
if(lie==12) lie=0; else { lie++;
P0=graph[lie][hang]; delay(500); }
}
②外部中断2
该段程序用来控制依次减一功能,程序如下: void INT_1() interrupt 2 { EX1=0; delay(50); EX1=1;
if(lie==0) lie=12; else { lie--;
P0=graph[lie][hang]; delay(500); }
}
11
③定时中断
动态扫描的时间为1ms,对定时器0赋相应的值,程序如下: void t0(void) interrupt 1 { }
TH0=(65536-1000)/256; TL0=(65536-1000)%6; P2=tab[hang];
P0=graph[lie][hang]; hang++; if(hang==8) hang=0;
2.3 仿真
基于Proteus和Keil C对设计的程序和硬件进行联调仿真,初步验证了原理图和程序的正确性,意味着可以进入下一步操作——用Protel 99进行PCB布线,制版。
3.电路的安装与调试
3.1 制版
①去打印店把画好的PCB用专用的油纸打印出来 ②用熨斗将油纸上电路线条印到铜板上 ③将印好的铜板泡到适量浓度的氯化铁溶液中 ④在预留的元件孔位上钻孔
⑤安放元件,并将元件用焊锡将其焊在电路板上 ⑥用万用表测各个连接点,检查电路的通断情况 ⑦下载程序调试,直至符合要求为止
12
3.2调试
①下载开机检测程序,检查屏幕是否有坏点
②如果没有坏点,则下载显示单个数字的程序进去(如下载显示“0”的程序)检查编码是否出错
③如过编码没错,则下载0-9依次递增的程序,调节延迟程序,直到符合要求 ④下载扩展其他功能的程序,调节,直到达到预定的功能
3.3出现的问题
(1)点阵显示的亮度不够
经过小组讨论分析,应该是流过二极管的电流不够大,所以在第二次做板的时候加上了74HC573芯片,放大电流,第二次测试发现亮度果然增大。 (2)没注意点阵封装,导致编码出现乱码
我们买的点阵型号是D03883NO,原来没测管脚,以为正负两边分,哪知不是,后来从网上找了D03883NO的封装文件,重新布图,才成功。 (3)有时按下一次按键,连跳几个数字
经过测试,原来是消抖延迟的时间不够长,加长消抖时间后,此现象消除。
第四章 结束语
本系统能够完成设计任务,即能按要求显示0-9数字,并能够用按键控制 数字的递增或递减,显示也较为稳定清晰。值得一提的是,本系统在实现设计任务外还能实现自动显示指定数字的功能。对于本系统,经小组讨论,主要有以下改进意见:用颜色点阵,这样显示的效果会更好;增加屏幕滚动显示效果,增强动感,使可视界面更爽;增加键盘扫描输入功能,方便及时输入各种信息数据。
学习单片机这门课程,要掌握单片机指令系统中C语言编程各种基本语法及C程序设计的基本知识和方法,以及单片机与其他设备相连的输入输出中断等接口技术。在本次课程设计中,主要使用了Protel 99、Protenus已经Keil C等软件进行硬件电路和控制程序的设计,同时,在制作硬件电路PCB板时,对热转印法制版的流程和应注意的问题有了更深的掌握,例如在腐蚀板电路时要注意腐蚀安全,还有环境保护等等。在PCB板布线时应根据实际元件的封装来绘
13
制PCB图纸。这次单片机课程设计使我们从硬件软件的结合上理论联系实际,提高动手能力,从而更全面掌握单片机的应用。
附件:
1.元件清单表
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 名称 铜板 单片机 单片机插槽(快换) 排针 晶振 按键 点阵 74HC573 电阻 电阻 三极管 电阻 极性电容 电容 11.0592M 型号参数 数量 2 1 1 2排 1 6 1 1 10 20 8 10 2 4 备注 废一块 废3个 废5 废10 全废 废5 废1 废2 10?12 AT80C51 8?8 1K 270 9012 10K 10Uf 30Pf 2.原理图
14
3.PCB图
参考文献:
1. 2. 3. 4. 5. 6.
陈海宴· 51单片机原理及应用:基于Keil C与Proteus·北京航空航天大学出版社·2010 周向红·51单片机课程设计·华中科技大学出版社·2011
朱清慧·Proteus教程:电子线路设计、制作与仿真·清华大学出版社·2008 郭天祥·新概念51单片机C语言教程·电子工业出版社·2009
温子祺·51单片机C语言创新教程·北京航空航天大学出版社·2011 雷伏容·51单片机常用模块设计查询手册·清华大学出版社·2010
15