武汉理工大学《单片机原理与应用》课程设计说明书
(5)定时器/计数器
8051内部有两个16位可编程序的定时器/计数器,均为二进制加1计数器,分别命名为T0和T1。 (6)中断系统
8051可处理5个中断源(2个外部,3个内部)发出的中断请求,并可对其进行优先权处理。外部中断的请求信号可以从P3.2, P3.3引脚上输入,有电平或边沿两种触发方式;内部中断源有3个,2个定时器/计数器中断源和1个串行口中断源。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。
2. 16*16点阵LED
下图为8×8点阵LED外观及引脚图,其等效电路如下图所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。
5
武汉理工大学《单片机原理与应用》课程设计说明书
点阵LED扫描法介绍:
点阵LED一般采用扫描式显示,实际运用分为三种方式: (1)点扫描; (2)行扫描;(3) 列扫描。
若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
3.红外控制相关介绍
红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作,如图1 所示。发射部份包括键盘矩阵、编码调制、LED红外发送器;接收部份包括光、电转换放大器、解调、解码电路。
HT6221 键码的形成:
当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms
6
武汉理工大学《单片机原理与应用》课程设计说明书
的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。
2.2 设计方案介绍
1.设计总体思路
本次课程设计的要求是利用红外遥控器控制,在16×16点阵的显示器件上循显示“武汉理工大学”6个汉字,控制项目:循环显示的速度可调,循环显示进入方向(从左至右、从右至左、从上到下、从下往上)。由于要用16*16点阵显示汉字,而80C51的I/O接口是8位的,我们可以用4个8*8点阵来组成。由于80C51的I/O口不多(只有4组,32个),为了节约I/O口,我们用74HC154(4线-16译码器)作为点阵的列驱动,P2口和P0口作为数据线。为了显示16*16的点阵汉字,我们需建一个表先将要显示的汉字的点阵码存起来(这里我们可以用网上别人做的16*16点阵汉字提取软件来获得我们所需要的汉字的点阵码),然后编写一个合适的查表程序就可以按给定要求显示汉字。至于改变汉字移动的速度,可以通过用按键改变汉字在LED上的显示时间来改变,通过改变的数值大小就可以改变汉字的移动速度。
题目所要求的用红外控制我们可以先用开关模拟达到要求,再将开关的功能用红外来实现,这样就可以基本上达到要求。通过红外接收器所解出来的码将其送到89C51的一个I/O口以达到开关的效果。这样就可以基本达到要求了。
2. 与题目相关的具体设计
汉字的显示:可以采用扫描的方式,先使一个I/O口产生一个选行(列)信号(通过74HC154),先选中一行,对选中的行进行扫描,然后用另外2组I/O口输送数据,这样一个字的1/16就送到LED点阵上了,接着选下一行,这样经过16次就可以显示一个字了,再适当延时使显示的字清晰。
汉字的移动:在LED上显示一个汉字并延时后,可以通过增加所取表的地址(加2);这样下一次LED上显示的字就移动了一个点阵,可以通过适当的设计来控制汉字移动循环的的次数。汉字的左右上下移动:可以通过建立不同的表,来实现汉字的各种移动,或者改变查表的方式来实现。
7
武汉理工大学《单片机原理与应用》课程设计说明书
3.程序框图
开始
系统初始化
等待遥控信号出现
按1? 是 左移动 否
是 按2? 右移动 否
是 按3?
否 上移动
是 按4? 下移动否是
按5? 否 是
加速 否
按6? 否 是 减速 否
系统主程序流程图
移动 选点阵行号并增一 送新行数据 切换显示数据 送新行号,打开显示 退出移动 显示驱动程序流程图
8
武汉理工大学《单片机原理与应用》课程设计说明书
4 硬件连线图及仿真结果
4.1 硬件连线图
9