红外线遥控16乘16LED显示汉字 - 图文

更新时间:2023-12-16 06:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课程设计

华南师范大学增城学院

课 程 论 文

题目:红外线遥控LED点阵显示

课 程 名 称 单片机原理及应用技术 考 查 学 期 2013 /2014学年第2 学期 考 查 方 式 课程论文 姓 名 学 号

专 业 应用电子 成 绩 指 导 教 师 梁建军

单片机课程设计

目录 ................................................................................................................ 错误!未定义书签。 一、系统设计要求及功能: ........................................................................................................... 2

1、设计题目:......................................................................................................................... 2 2、设计要求:......................................................................................................................... 2 3、作品功能: ......................................................................................................................... 2 二、总体设计: .............................................................................................................................. 2

1、设计思想:......................................................................................................................... 2 2、硬件总体设计方框图: ..................................................................................................... 3 3、软件总体设计方框图: ..................................................................................................... 3 三、硬件设计: .............................................................................................................................. 4

1.单片机系统及外围电路[1] ................................................................................................... 4 2、电源供电电路模块............................................................................................................. 6 3. 16*16LED显示屏 [2] .......................................................................................................... 6 4.列驱动电路 ............................................................................................................................ 8 4.行驱动器 ............................................................................................................................. 10 5.提取字模软件 ..................................................................................................................... 13 五、软件设计: ............................................................................................................................ 14

1、程序由上自下的方框图 ................................................................................................... 14 六、调试: .................................................................................................................................... 15

1、调试工作分硬件调试和软件调试两部分: ................................................................... 15 七、总结: .................................................................................................................................... 16 八、参考资料: ............................................................................................................................ 16 附件: ............................................................................................................................................ 17

1.原理图附件:..................................................................................................................... 17 2、软件附件:....................................................................................................................... 17 3、元器件清单....................................................................................................................... 29

1

单片机课程设计

一、系统设计要求及功能:

1、设计题目:

红外线遥控LED点阵显示的设计

2、设计要求:

(1)、利用红外器件,编写发送和接收红外信号的程序; (2)、按下按键,能用LED显示对应的数字或字符(使用16*16点阵LED 显示)

3、作品功能:

该作品接上外置的5V电源之后,可以通过操作遥控器的按键显示

相应的汉字,通过我自己遥控器的“电源键,menu键,TEST键,+键,返回键,上一首键,播放键”分别在16*16LED点阵上显示“林家裕单片机板”7个字。

二、总体设计:

1、设计思想:

首先根据自己作品的设计要求,分析作品的功能,然后就将总体的功能划分模块,根据划分的模块设计模块电路原理图,最后将各个模块进行组合成成品。

本作品根据功能需求设计有最小系统模块;电源供电模块;16*16LED点阵显示模块

由于点阵的显示需要用到提取字符的字模,故还需要用到相应的软件来提取字模

2

单片机课程设计

2、硬件总体设计方框图:

电源供电模 红外线接收模块 块 STC89C52单 片机最小系 统模块 16*16LED点阵显示模块 图2.1 红外线遥控LED点阵显示硬件组成框图

3、软件总体设计方框图:

红外线解码程序 声明变量与函数 主函数main入口 T0和定时器外部中断0 初始化子程序 74HC595锁 存器初始化 74LS154驱动电路初始化 提取一组发射码函数(用户码,用户码,数据码,数据反码) 16*16LED显示屏 图2.2 红外线遥控LED点阵显示软件组成框图

3

单片机课程设计

三、硬件设计:

1.单片机系统及外围电路 [1]

单片机采用MSC-51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显示更稳定。单片机的串口与列驱动器相连,用来显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号。P0口和P2口空着,在有必要的时候可以扩展系统的ROM和RAM。

STC89C52单片机管脚说明如下:

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当

P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接

收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,

输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL

4

单片机课程设计

门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电

平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的

地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个

机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),

不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

5

单片机课程设计

图3.1 STC89C52单片机最小系统

2、电源供电电路模块

由于单片机使用的是+5V电源,可以通过USB线直接连接电源即可为单片机提供正常工作电压和其他外围电路的驱动

图3.2电源供电模块

3. 16*16LED显示屏 [2]

由于市面上难以购买到16*16点阵的LED显示屏,故采用4个8*8点阵显示模块拼凑成一个16*16的LED点阵显示屏

8*8点阵显示模块10888BS的(红色)列输入线接至内部LED的阴极端,行输入线接至内部LED的阳极端(若阳极端输入为高电平,阴极端输入低电平,则该LED点亮)。

6

单片机课程设计

通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭,该8*8LED点阵的8*8LED点阵引脚图和8*8LED点阵等效电路分别如下图图3.3和图3.4所示

图3.3 8*8LED点阵引脚图

7

单片机课程设计

图3.4 8*8LED点阵等效电路

4.列驱动电路

列驱动电路由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。

图3.5 74HC595结构图表

74HC595的外形及内部结构如图3.6所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的

8

单片机课程设计

下一个数据打入最低位。74HC595引脚说明见表3-1。

表3-1 74HC595引脚说明

符号 Oo~O7 GND Q7’ SRCLR SRCLK RCLK CE SER VCC 引脚 1~7 8 9 10 11 12 13 14 16 描述 并行数据输出 地 串行数据输出 主复位(低电平) 移位寄存时钟输入 存储寄存时钟输入 输出有效(低电平) 串行数据输入 电源 移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同步的级联输出。

图3.6列驱动电路

9

单片机课程设计

将2片74HC595进行级连,可共用一个移位时钟SCK及数据锁存信号RCK。

这样,当第一行需要显示的数据经过8x8=64个SCK时钟后便可将其全 部移入74HC595中,此时还将产生一个数据锁存信号RCK将数据锁存在74HC595中,并在使能信号G的作用下,使串入数据并行输出,从而使与各输 出位对应的场驱动管处于放大或截止状态;同时由行扫描控制电路产生信号使第一行扫描管导通,相当于第一行LED的正端都接高,显然,第一行LED管的亮灭 就取决于74HC595中的锁存信号;此外,在第一行LED管点亮的同时,再在74HC595中移入第二行需要显示的数据,随后将其锁存,同时由行扫描控 制电路将第一行扫描管关闭而接通第二行,使第二行LED管点亮,以此类推,当第十六行扫描过后再回到第一行,这样,只要扫描速度足够高,就可形成一幅完整 的文字或图像。

4.行驱动器

由于4点阵显示器有16行,为充分利用单片机的接口,本电路中加入了一个4-16线译码器74LS154,其输入是一个16进制码,解码输出为低态扫描信号,它的结构如图3.7所示。

图3.7 74LS154译码器结构图

74LS154 引脚说明如表3-2

表3-2

10

单片机课程设计

符号 引脚 描述 输出端 Y0~Y10,Y11~Y15 1~11 ,13~17 GND 12 18~19 20~23 24 GND电源地 使能输出端 地址输出端 VCC电源正 G1~G2 A、B、C、D Vcc

74ls154真值表如下表

[3]

74ls154真值表

11

单片机课程设计

图3-7 行驱动电路

如图3-7所示的行驱动电路中,把74LS154的G2引脚接地,G1引脚连接到单片机的P2^7脚,通过控制该引脚的使能就可以以A、B、C、D四脚为输入端。就会形成16种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出,即会有16路输出。如果一行64点全部点亮,则通过74LS154的电流将达640 mA,而实际上,74LS154译码器提供不了足够的吸收电流来同时驱动64个LED同时点亮,因此,应在74LS154每一路输出端与16x64点阵显 示器对应的每一行之间用一个三极管来将电流信号放大,本文选用的是PNP三极管S9015。这样,74LS154某一输出脚为低电平时,对应的三极管发 射极为高电平从而使点阵显示器的对

12

单片机课程设计

应行也为高电平。

5.提取字模软件

PCtoLCD2002软件有2种各种方式:字符模式和图形模式,由于该我只是使用字符模式,故仅简单介绍一下字符模式的使用,首先打开该软件之后,点

击设置的那个图标之后弹出下图图3.8所示:

图3.8

在窗口将相应的参数按照这些参数设置即可,设置完成之后就将需要的字符输进,

相应的方框下如下图图3.9所示,然后点击生成字模,该软件就会自动生成相应字符的字模了,然后将该字模复制进程序里面就可以了

图3.9

13

单片机课程设计

五、软件设计:

1、程序由上自下的方框图

红外解码程Y 判断遥控器是否有按键 程序初始化 开始 N Y

序解码 Y 根据解码得到的数据码判断遥控器的按键 Y 跳转去执行相应的按键功能 Y 74HC595和74LS154的初始化 Y 驱动LED点阵显示相应的字 结束 14

单片机课程设计

六、调试:

1、调试工作分硬件调试和软件调试两部分:

(1)、首先,硬件调试主要是先搭建硬件平台,然后利用万用表等工具对电路检查,最后应用程序进行功能调试。硬件调试比较费时,需要细心和耐心,也需要熟练掌握电路原理。

(2)、然后,可以直接应用一些编辑或仿真软件进行软件调试,比如单片机C51编辑软件Keil。该软件提供了一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。通过编译、运行,可以检查程序错误。但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。在软件调试过程中要仔细耐心,即便是多写或少些一两个字符,都无法编译成功。而有时往往在Keil中编译、运行无错,但烧录到单片机中运行起来就会出错,很可能是编程时管脚或时序编辑得不对。

(3)、还有一种方式,即应用仿真软件搭建电路的软件平台,再导入程序进行仿真调试。如果电路出错,可以在计算机上方便的修改电路,程序出错可以重新编辑程序,这种方法节时、省力,经济、方便。应用仿真软件Proteus仿真。 (4)、总之,调试过程是一个软硬件相结合调试的过程,硬件电路是基础,软件是检测硬件电路和实现其功能的关键。

(5)、在调试过程中,首先必须明确调试顺序。例如:本设计是在单片机系统基础上建立起来的,所以必须先确定单片机基础电路能否正常工作。首先需要调试最小系统,使其可以正常工作,我通过写测试最小系统的程序,是P0~P2口全部输出低电平,然后用线将其连接到共阳的led灯,如果led灯能正常发光,则代表最小系统正常工作,否则就继续检查电路,测试红外线是否正常工作时,把红外线的程序固化到单片机里面之后,由于我在程序中设置了当某些按键按下之后,单片机不同的I/O口输出低电平,参照最小系统的测试方法则可以判断红外解码功能是否正常工作,测试LED点阵的就简单很多了,连接好电路之后,如果按下相应的按键能正确显示相应的字,则代表16*16点阵显示屏可以正常工作,否则就继续调试程序。其实硬件调试的过程,也是软件调试的过程,有时候很难区分两者之间的区别。

15

单片机课程设计

七、总结:

该作品目前可以正常通过遥控器按键的作用在16*16LED点阵上显示不同的字但是还有一些遗憾就是,功能不够强大,如果想显示另外的字,只能先把最小系统复位,重新开始按下遥控器才可以显示另外的字

从这次课程设计中最大的收获,可能是在硬件层面的动手能力的提升吧,本次课程设计,需要自己分析自己的作品功能,然后根据原理图来焊接硬件,由于是第一次焊接,很多元器件自己都不熟悉哪一些功能的,就到网上查资料或者是问同学,特别是那些LED点阵和S9015的PNP三极管,弄清楚了它们的管脚接法

从这次课程设计过程中,自己查了很多资料,网上的,图书馆的,都参考了很多资料,从而也提升了自己的知识面

最重要的是,当看见一个成品在自己的努力之下,看着作品上可以显示自己想想显示的字符时,心中很自然的泛起了一种自豪感和成功感,突然间觉得,有些东西努力去做了,自己也可以完成的。很可惜的是我的这个作品还有很多不足,以后可以想多功能点发展,扩展一下作品的功能,例如解决切换字需要重新复位系统的问题,还有就是实现汉子的上下左右滚动等功能

八、参考资料:

[1]万隆.《单片机原理及应用技术》.电子工业清华大学出版社.北京 [2] 张义和.《例说51单片机》.第三版.人民邮电出版社.北京 [3]

.

http://wenku.http://www.wodefanwen.com//link?url=p9MSaJ8f_leWhv8Imhv3lKUHkkVrNrT74JpIC-eFcWagNbdVAgwOLtFJLbXmxt4MIRYwL7SsBFutaD0wezuPhLXugtuK8SVKqLWOqKo1w1C

16

单片机课程设计

附件:

1.原理图附件:

2、软件附件:

17

单片机课程设计

#include #define uchar unsigned char #include #define uint unsigned int uchar irtime; uchar i,j; uchar startflag; uchar irdata[33]; //数组,存放那些引导码和客户码的那33位数据 uchar bitnum; uchar irreceok; uchar ircode[4]; uchar irprosok; uchar disp[8]; sbit A_=P2^0; sbit B_=P2^1; sbit C_=P2^2; sbit D_=P2^3; sbit EN=P2^7;//低电平使能 sbit ds=P2^6;//数据脚 sbit SCK=P2^5;//上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器数据不变 sbit RCK=P2^4;//上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。 //RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。 void key(); void displed(uchar t); uchar code zifu[]= { 0xF7,0xDF,0xF7,0x3F,0xF4,0xFF,0x00,0x00,0xF6,0xFF,0xF7,0x77,0xFF,0xEF,0xF7,0xDF, 0xF7,0x3F,0xF4,0xFF,0x00,0x00,0xF4,0xFF,0xF7,0x3F,0xF7,0xDF,0xF7,0xEF,0xFF,0xFF,/*\林\ 0xF7,0xFD,0xCB,0x6D,0xDB,0x6D,0xDB,0x6B,0xDA,0xDB,0xDA,0xD7,0x59,0xB5,0x9A,0x6E, 0xDB,0x01,0xDB,0xDF,0xDB,0xAF,0xDB,0x77,0xDA,0xF7,0xD3,0xFB,0xCF,0xFB,0xFF,0xFF,/*\家\

//存放那 四个字节的数据 18

单片机课程设计

0xEF,0xBF,0xEF,0x7F,0x6E,0xFF,0xA8,0x00,0xE7,0x7F,0xEE,0x9F,0xFF,0xFF,0xF7,0x7F, 0xEE,0x80,0x9D,0xBD,0xF3,0xBD,0xBD,0xBD,0xDE,0x80,0xE7,0x7F,0xFF,0x7F,0xFF,0xFF,/*\裕\ 0xFF,0xF7,0xFF,0xF7,0xE0,0x37,0x6D,0xB7,0xAD,0xB7,0xCD,0xB7,0xED,0xB7,0xE0,0x00, 0xED,0xB7,0xCD,0xB7,0xAD,0xB7,0x6D,0xB7,0xE0,0x37,0xFF,0xF7,0xFF,0xF7,0xFF,0xFF,/*\单\ 0xFF,0xFF,0xFF,0xFE,0xFF,0xF9,0x80,0x07,0xFB,0xBF,0xFB,0xBF,0xFB,0xBF,0xFB,0xBF, 0xFB,0xBF,0x03,0xBF,0xFB,0x80,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,/*\片\ 0xF7,0xDF,0xF7,0x3F,0xF4,0xFF,0x00,0x00,0xF6,0xFF,0xF7,0x3E,0xFF,0xF9,0x80,0x07, 0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x80,0x03,0xFF,0xFD,0xFF,0xFD,0xFF,0xE1,0xFF,0xFF,/*\机\ 0xF7,0xDF,0xF7,0x3F,0xF4,0xFF,0x00,0x00,0xF6,0xFF,0xF7,0x3E,0xFF,0xF9,0xC0,0x07, 0xDB,0xFE,0xD8,0x7D,0xDB,0x9B,0xBB,0xE7,0x3B,0x9B,0xB8,0x7D,0xFF,0xFE,0xFF,0xFF,/*\板\}; void chushihua_595() { } void write_595(uchar temp) { uchar i,data_=temp; EN=1; for(i=0;i<8;i++)//传值8位 { if(data_&0x01==0x01)//低位为1 { ds=1; SCK=0; RCK=0; 19

单片机课程设计

} } } ds=1; //低位为0 else { } ds=0; //产生一个上升沿 SCK=0; SCK=1; SCK=0; data_>>=1; RCK=0;//显示数据 RCK=1; RCK=0; void WriteS(uchar data1,uchar data2) { } void yimaqi_154(uchar W) {

write_595(data2); write_595(data1); EN=0;//使能 switch(W) { case 16: { } case 15: { A_=0; B_=1; 20

A_=1; B_=1; C_=1; D_=1; break; 单片机课程设计

} C_=1; D_=1; break; case 14: { } case 13: { } case 12: { } case 11: { } case 10: { 21

A_=1; B_=0; C_=1; D_=1; break; A_=0; B_=0; C_=1; D_=1; break; A_=1; B_=1; C_=0; D_=1; break; A_=0; B_=1; C_=0; D_=1; break; 单片机课程设计

} A_=1; B_=0; C_=0; D_=1; break; case 9: { } case 8: { } case 7: { } case 6: { } 22

A_=0; B_=0; C_=0; D_=1; break; A_=1; B_=1; C_=1; D_=0; break; A_=0; B_=1; C_=1; D_=0; break; A_=1; B_=0; C_=1; D_=0; break; 单片机课程设计

case 5: { } case 4: { } case 3: { } case 2: { } case 1: { A_=0; B_=0; C_=0; D_=0; 23

A_=0; B_=0; C_=1; D_=0; break; A_=1; B_=1; C_=0; D_=0; break; A_=0; B_=1; C_=0; D_=0; break; A_=1; B_=0; C_=0; D_=0; break; 单片机课程设计

} } } break; void delay1(uint z) { } void init() { } void irwork() 们转换为16进制的 { }

24

uint x,y; for(x=z;x>0;x--) for(y=7;y>0;y--); //定时器T0初始化 //T0工作于工作方式2,8位自动重装 TMOD=0X02; TH0=0X00; TL0=0X00; ET0=1; EA=1; TR0=1; IT0=1; EX0=1; EA=1; //允许定时器T0工作 //启动定时器 //中断方式为下降沿有效 //外部中断0中断允许控制位 //中断允许总控制位 //接收到的那些数据是二进制的数据,现在把他disp[0]=ircode[0]/16; disp[1]=ircode[0]; disp[2]=ircode[1]/16; disp[3]=ircode[1]; disp[4]=ircode[2]/16; disp[6]=ircode[3]/16; disp[7]=ircode[3]; // 数据码1 //数据码1 disp[5]=ircode[2];

单片机课程设计

void irpros() { uchar k,i,j; k=1; uchar value; //红外处理函数,(提取)处理客户码那4个字节 for(j=0;j<4;j++) //执行完这个循环后就提取完四个个字节 { for(i=0;i<8;i++) //执行完这个循环后就提取完一个字节的数据了 { value=value>>1; if(irdata[k]>6) //判断数据是0还是1,如果是0的话就会用时1.125/0.256约等于4.4,如果是数据1传输就会用时2.25/0.256约等于8.8,,所以当此数值大于6时则为数据1,小于6则为数据0 } void main() { chushihua_595(); init(); while(1) { if(irreceok) //判断红外接收是否OK { } { } irwork(); irprosok=0; irpros(); //提取那四个字节的数据 irreceok=0; key(); } irprosok=1; } ircode[j]=value; { } k++; value=value|0x80; if(irprosok) //判断是否提取完那几个字节的数据 ,若提取完,则转换 25

单片机课程设计

} } void timer0() interrupt 1 { } void int0() interrupt 0 { if(startflag) { //判断是否是引导码,引导码一共用时9ms左右

irtime++; //红外时间 255之后就会溢出,重新幅值0; if(irtime>32) 9ms/0.256=33.15 } void key() {

{ } irdata[bitnum]=irtime; irtime=0; bitnum++; if(bitnum==33) { } else { startflag=1; irtime=0; } //按键功能函数 //电源 } bitnum=0; irreceok=1; bitnum=0; if(ircode[2]==0x45) { } displed(0); else if(ircode[2]==0x47) //memu { 26

单片机课程设计

} displed(16); else if(ircode[2]==0x44) //TEST { } else if(ircode[2]==0x40) //+ { displed(48); } else if(ircode[2]==0x43) //返回 { displed(64); } else if(ircode[2]==0x07) //上一首 { displed(80); } else if(ircode[2]==0x15) //播放 { displed(96); } else if(ircode[2]==0x09) //下一首 { } else if(ircode[2]==0x16) //0 { } else if(ircode[2]==0x19) //- { } else if(ircode[2]==0x0d) //c { } else if(ircode[2]==0x0C) { } else if(ircode[2]==0x18) //2 27

displed(32); //1 单片机课程设计

} { } else if(ircode[2]==0x5E) //3 { } else if(ircode[2]==0x08) //4 { } else if(ircode[2]==0x1C) { } else if(ircode[2]==0x5A) { } else if(ircode[2]==0x42) //7 { } else if(ircode[2]==0x52) //8 { } else if(ircode[2]==0x4A) { } //9 //6 //5 void displed(uchar t) { while(1) { //一个 for(i=1;i<17;i++) for循环,分别选中16个列 { WriteS(0xff,0xff); yimaqi_154(i); //消影 //选 中列数据 WriteS(zifu[i*2-2+2*t],zifu[i*2-1+2*t]); //显示内容 //再//延 yimaqi_154(i); 选中列数据 delay1(7); 时的时间就是显示的时间

28

单片机课程设计

开列选 } } } EN=0; //打

3、元器件清单

序号 元器件名称 1 2 3 4 5 6 7 8 9 STC89C52RC单片机 74LS154译码器 USB插口 1N4007整流二极管 1K上拉电阻 1K电阻 10K电阻 8*8LED点阵 74HC595 数量 1 1 1 1 1 3 1 4 2 1 16 1 10 按键 11 510电阻 12 22uf电容

29

单片机课程设计

课程论文成绩评定表

指导老师评语: 成绩评定: 指导教师签名: 年 月 日

30

本文来源:https://www.bwwdw.com/article/54h5.html

Top