红外遥控与点阵显示器件的应用._第1页
红外遥控与点阵显示器件的应用._第2页
红外遥控与点阵显示器件的应用._第3页
红外遥控与点阵显示器件的应用._第4页
红外遥控与点阵显示器件的应用._第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学单片机原理与应用课程设计说明书1软件及原理介绍1.1 Protuse软件简介Proteus具有和其他EDA工具一样的原理图编辑、印刷电路板(PCB)设计及电路仿 真功能,最大的特色是其电路仿真的交互化和可视化,如图2-1所示。通过Proteus软件的VSM(虚拟仿真模式),用户可以对模拟电路、数字电路、模数混合 电路、单片机及外围元器件等电子线路进行系统仿真。Proteus软件由ISIS和ARES两部分构成,其中ISIS是一款便捷的电子系统原理 设计和仿真平台软件,ARES是一款高级的PCB布线编辑软件。Proteus ISIS是一种操作简便而又功能强大的原理图编辑工具,它运行于W

2、in dows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点有:实现了单片机仿真和SPICE电路仿真的结合。具有模拟电路仿真、数字电路仿 真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器,如示波器、逻辑分析 仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以 及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设 置断点等调试功能,同时可以观察各个变量、寄

3、存器等的当前状态,因此在该软 件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境, 如 Keil C51 uVision2 等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE分析于一身的电路设计和仿真软件,功能 极其强大。PROTEUS还有使用极方便的印刷电路板高级布线编辑软件(PCB)。特别指 出,PROTEUS库中数千种仿真模型是依据生产企业提供的数据来建模的。因 此,PROTEUS设计与仿真极其接近实际。目前,PROTEUS已成为流行的单片机系统设计与仿真平台,应用于各种领域。实践证明:PROTEUS是单片机应用产品研发的灵活、高效、正确的设计与

4、仿真 平台,它明显提高了研发效率、缩短了研发周期,节约了研发成本。PROTEUS的问世,刷新了单片机应用产品的研发过程。武汉理工大学单片机原理与应用课程设计说明书1.2 Keil软件简介KEIL是德国开发的一个51单片机开发软件平台,最开始只是一个支持C语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过KEIL的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在KEIL的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞 大,要远远超过伟福等厂家软件用户群,操作有不懂的地方只

5、要找相关的书看 看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变 为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编, 目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器 码,用于MCS-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不断 发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不 断发展,Keil软件是目前最流行开发 MCS-51系列单片机的软件,这从近年来各 仿真机厂商纷纷宣布全面支持 Keil即可看出。Keil提供了包括C编译器

6、、宏汇 编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过 一个集成开发环境(uVision )将这些部份组合在一起。运行 Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、 WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只 支持该软件),即使不使用 C语言而仅用汇编语言编程,其方便易用的集成环 境、强大的软件仿真调试工具也会令你事半功倍。我们将通过一

7、些实例来学习 Keil软件的使用,在这一部份我们将学习如何输入源 程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。 武汉理工大学单片机原理与应用课程设计说明书1.3单片机介绍单片机也被称为微控制器(Microco ntroller Un it ),常用英文字母的缩写 MCU表 示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当 中。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可 靠而性能不

8、错获得了很大的好评。此后在 8031上发展出了 MCS51系列单片机系 统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求 的提高,开始出现了 16位单片机,但因为性价比不理想并未得到很广泛的应 用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着 INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16 位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了 飞速提高,处理能力比起80年代提高了数百倍。当代单片机系统已经不再只在 裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片 机上。而在作为

9、掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的 Windows和Linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实 上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机 械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上 电脑以及鼠标等电脑配件中都配有 1-2部单片机。而个人电脑中也会有为数不少 的单片机在工作。汽车上一般配备 40多部单片机,复杂的工业控制系统上甚至 可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。单片机又称单片微控制器,它不是完成某一个

10、逻辑功能的芯片,而是把一个计算机 系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺 少了 I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、 价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解 计算机原理与结构的最佳选择。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费 很大力气才能做到的,有些则是花大力气也很难做到的。只因为单片机的通过你 编写的程序可以实现咼智能,咼效率,以及咼可靠性! 武汉理工大学单片机原理与应用课程设计说明书2设计原理或方法2.1主要模块介绍2.1

11、.1 MCS-51单片机的结构及编程方法51单片机内包含下列几个部件:一个8位CPU;一个片内振荡器及时钟电路;4KB ROM程序存储器;128B RAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路;32条可编程的I/O线(4个8位并行I/O端口); 两个16位的定时/计数器; 一个可编程全双工串行口;5个中断源、两个优先级嵌套中断结构。图1 8051单片机的组成框图(1) cpu中央处理器运算器运算器的功能是进行算数、逻辑运算。它可以对半字、单字节等数据进行操作。 运算器还包含有一个布尔处理器,用来处理位操作。程序计数器PC程序计数器PC是一个自动加1的16

12、位寄存器,EU51 无SUE 4KU掩KROMX751 4KB I-PROM特蛛功能1288泄时器/讨数话TO, J1CPU00$G8井存【心接门串疔接HC 0 1P0 PlIP2 P3TXD Rxr丄1丁INTOINTI用来存放即将要取出的指令码的地址, 武汉理工大学单片机原理与应用课程设计说明书 可对64KB程序存储器直接寻址。指令寄存器指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读出的指令代 码送入指令寄存器,经指令译码器后由定时与控制电路发出相应的控制信号,完 成指令功能。(2)存储器MCS-51单片机按程序存储器可分为内部无 ROM 型(如8031 )和内部有ROM型

13、(如8051)两种, 连接时引脚有区别。如右图所示:程序存储器:一般将只读存储器(ROM )用做程序 存储器。(3)特殊功能寄存器(SFR)MCS-51有21个特殊功能寄存器(也称为专用寄存器),包括算术运算寄存器、 指针寄存器、I/O 口锁存器、定时器/计数器、串行口、中断、状态、控制寄存器 等。图2 80C51内部结构(4)I/O 接口KAM 删 时Hd4o*功牆過诅威害R.ft*动歳I功曇POO-TO 7P2O-P2T卄林十肚一Jtl曲士1:X I *gHir 1TMRI1TMP2EPROMROMIB晋PSFN-*L l F屮EATK5iT*XTAL1X I U 2OFFFH0000HC

14、=i理冲聯=PC* 1 PCnDPTRu2申BL Wa堡时匿8 0i iii t H )PL a Pi 7:!:i:;t;P3 0-PJ.7FFFFH1000H外部程序存储器内部程序费器(EA=1)OFFFH0000H外部程序酬器(EA=0)武汉理工大学单片机原理与应用课程设计说明书I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传 送过程中的速度匹配和增加它的负载能力。8051内部有4个8位并行接口 PO, P1,P2, P3,有1个全双工的可编程串行I/O接口。(5)定时器/计数器8051内部有两个16位可编程序的定时器/计数器,均为二进制加1计数器,分别 命名为

15、T0和T1。(6)中断系统8051可处理5个中断源(2个外部,3个内部)发出的中断请求,并可对其进行 优先权处理。外部中断的请求信号可以从 P3.2, P3.3引脚上输入,有电平或边沿 两种触发方式;内部中断源有 3个,2个定时器/计数器中断源和1个串行口中断 源。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组 成。2.1.2 16*16点阵 LED8 8单色点阵共需要64个发光二极管组成,且每个二极管是放置在行线与列线的 叉点上。下图为8X8点阵LED外观及引脚图,其等效电路如下图所示,只要其 对应的X、Y轴顺向偏压,即可使LED发亮。图3 8 X点阵外观及引脚图

16、图4 8X8 LED点阵等效电路LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动 电路就可以实现多行的同名列共用一套列驱动器。以16X16点阵为例,把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的 接法),先送出对应第1行发光管亮灭的数据并锁存,然后选通第10 D F 3 A 1 Hooooooooo ooo o ooo o ooo o ooo o ooo o ooo o ooo o ooo汗鹹阵埠接面弓脚 oooooooo 2 G E 7 C E 6 478 解码图5红外遥控系统框图HT6221键码的形成:当发射器按键按下后,即有遥控码发

17、出,所按的键不同遥控编码也不同。这种遥 控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms间隔0.56ms、周期为1.125ms的组合表示二进制的“0”以脉宽为0.565ms、间隔1.685ms、周 期为2.25ms的组合表示二进制的“ 1。健融 *编时调制*IED*武汉理工大学单片机原理与应用课程设计说明书2.2设计方案介绍2.2.1设计总体思路本次课程设计的要求是利用红外遥控器控制,在16X16点阵的显示器件上循环显示武汉理工大学”6个汉字,控制项目:循环显示的速度可调,循环显示进入方 向(从左至右、从右至左、从上到下、从下往上)。由于要用16*16点阵显示汉 字,而80C51

18、的I/O接口是8位的,我们可以用4个8*8点阵来组成。由于80C51 的I/O 口不多(只有4组,32个),为了节约I/O 口,我们用74HC154( 4线-16 译码器)作为点阵的列驱动,P2 口和P0 口作为数据线。为了显示16*16的点阵 汉字,我们需建一个表先将要显示的汉字的点阵码存起来,然后编写一个合适的 查表程序就可以按给定要求显示汉字。至于改变汉字移动的速度,可以通过用按 键改变汉字在LED上的显示时间来改变,通过改变的数值大小就可以改变汉字 的移动速度。2.2.2与题目相关的具体设计汉字的显示:可以采用扫描的方式,先使一个I/O 口产生一个选行(列)信号(通过74HC154),

19、先选中一行,对选中的行进行扫描,然后用另外2组I/O 口输送数据,这样一个字的1/16就送到LED点阵上了,接着选下一行,这样经过 16次就可以显示一个字了,再适当延时使显示的字清晰。汉字的移动:在LED上显示一个汉字并延时后,可以通过增加所取表的地址(加2);这样下一次LED上显示的字就移动了一个点阵,可以通过适当的设计 来控制汉字移动循环的的次数。汉字的左右上下移动:可以通过建立不同的表, 来实现汉字的各种移动,或者改变查表的方式来实现。武汉理工大学单片机原理与应用课程设计说明书3系统硬件线路设计图材厂匚二匚匚LLP雹FT冷M il jLj、UMXV 尸G3XX1甘| 川.Lb廿p LJ

20、益 XX 口口目71可 j 11 UN 7 ?r -r r0 u Ll nM TT P uEpp-zum : u耳匚Zl 口心c 祜五IM話丄c 、*、 唧劭6鼻J肿c打1krf.L LbIn-10C6TH廿-k 武汉理工大学单片机原理与应用课程设计说明书4程序框图系统主程序流程图显示驱动程序流程图11武汉理工大学单片机原理与应用课程设计说明书5资源分配P1.0到P1.3接74HC154( 4-16译码器)给16*16点阵提供选行信号。P0.0到P0.7接16*16点阵的上半块作为数据线,给16*16点阵上部提供数据,点亮相应 的LED,P2.0到P2.7接16*16点阵的下半块作为数据线,给

21、16*16点阵下部提供 数据,点亮相应的LED。P1.4接开关,用于控制移动速度(减慢移动速度),P1.5接开关,用于控制移动速度(加快移动速度),P1.6接开关,用于控制系统的显示是否开始。PL0-PL3接译班SB他 0-P0. 7PZ 0-P2. 7接】“lbf谄的抉件为数删EF3. T按豐蚱武汉理工大学单片机原理与应用课程设计说明书6源程序#in elude #defi ne uchar un sig ned char#defi ne uint un sig ned intsbit key0=P3A7;sbit key仁卩3八2;uchar zt,z,speed,flag;uchar c

22、ode han zi=Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff, Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff, Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,Oxff,/武,0xfb,0x0fb,0xfb,0xf9,0xdb,0x03,0xdb,0xfb,0xdb,0xfb,0xd8,0x07,0x9b,0x77,0xdb,0x77, 0xfb,0xf7,0x00,0x3f,0xfb,0xc7,0xbb,0xfb,0x

23、cb,0xfd,0xfb,0xfe,0xfb,0xf8,0xff,0xff,/汉,0xf7,0xdf,0xbb,0xdf,0xd9,0x81,0xcf,0x7f, 0xfe,0xfe,0xdf,0xfd,0xd1,0xfb,0xde,0x77,0xdf,0xaf,0xdf,0xdf,0xdf,0x2f,0xdc,0xf7, 0x83,0xf9,0xdf,0xfc,0xff,0xfd,0xff,0xff,/理,0xdd,0xf7,0xdd,0xf3,0xc0,0x07,0x9d,0xef, 0xdd,0xed,0xff,0xed,0x80,0xdd,0xb6,0xdd, 13武汉理工大学单片机原

24、理与应用课程设计说明书0xb6,0xdd,0x80,0x01,0xb6,0xdd,0xb6,0x9d,0x00,0xdd,0xbf,0xf9,0xff,0xfd,0xff,0xff,/工,Oxff,Oxfb,Oxdf,Oxfb,Oxdf,Oxfb,Oxdf,Oxfb,0xdf,0xfb,0xdf,0xfb,0xdf,0xfb,0xc0,0x03,Oxdf,Oxfb,Oxdf,Oxfb,Oxdf,Oxfb,Oxdf,Oxfb,0x9f,0xfb,0xdf,0xf3,0xff,0xfb,0xff,0xff,/大,Oxfb,Oxff,Oxfb,Oxfd,Oxfb,Oxfd,Oxfb,Oxfb,0xf

25、b,0xf7,0xfb,0xcf,0xfa,0x3f,0x01,0xff,0xfa,0x7f,0xfb,0x9f,0xfb,0xef,0xfb,0xf7, 0xfb,0xfb,0xf3,0xf9,0xfb,0xfb,0xff,0xff,/学,0xfd,0xdf,0xf3,0xdf,0x77,0xdf,0x96,0xdf, 0xf6,0xdf,0xf6,0xdd,0x76,0xde,0x96,0x81, 0xf6,0x9f,0xf6,0x5f,0xe6,0xdf,0xd7,0xd7,0x37,0xdf,0xf5,0x9f,0xf3,0xdf,0xff,0xff,0xff,0xff,0xff,0x

26、ff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,;uchar code Iie=0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff;武汉理工大学单片机原理与应用课程设计说明书void delay(uchar x) /延时函数void scan f_di

27、r() / 判断按键if(key0=0)delay(3);if(key0=0) zt+; while(!key0); if(zt=4) zt=0; uchar i,j; for(i=0;ix;i+) for(j=0;j120;j+);显示汉字 将编号为c的汉字从第b条开始显示n条到屏幕的I条开始void left() 左移动uchar i,zishu,x; P1= 0x00; for(zishu=0;zishu6;zishu+) /6个字 P0=0xff; P2=0xff;15武汉理工大学单片机原理与应用课程设计说明书for(x=0;x16;x+)/从左向右移动16次,(第一屏、第二屏。) i

28、f(zt!=O) break; for(z=0;zspeed;z+)改变在z的值可以调整移动速度 for(i=0;i16;i+)/16 列循环显示 scanf_dir(); if(zt!=O) break; P1= liei;PO=ha nzi2*i+zishu*32+x*2; P2=ha nzi2*i+zishu*32+x*2+1; /* 例:开始显示第 一列,显示数组的P0第一个数据和P1第二个数据第二列,显示数组的P0第三 个P1第四个数据.当显示第二屏时,第一列显示的为数组的第五个和第六个数据,第二列为第7和第8个数据,当显示第十六屏的时候,第一列显示的数据为第33和第34个,第二列为

29、第35个和36个,即加了 32*zishu个*/ delay(3);P0=0xff;P2=0xff; void showc(uchar c,uchar b,uchar n, uchar l)右移动辅助函数uchar i; 16武汉理工大学单片机原理与应用课程设计说明书 for(i=0;in;i+) scanf_dir(); if(zt!=1) break; P1= liei+l; P0=hanzic*32+i*2+b*2;P2=ha nzic*32+i*2+1+b*2; delay(3); P0=0xff; P2=0xff;void right()/ 右移动uchar i,zishu; P1=

30、 0x00; for(zishu=0;zishu6;zishu+) for(i=0;i16;i+) if(zt!=1) break; 17 for(z=0;zspeed;z+)这个可以调整移动速度 showc(zishu,0,16-i,i); showc (zishu+1,15-i,i,0); 武汉理工大学单片机原理与应用课程设计说明书 void up()/ 上移动uchar i,zishu,y,n; uchar t1,t2,t3; P1= 0x00; for(zishu=0;zishu6;zishu+) P0=0xff;P2=0xff; for(n=0 ;n 2; n+)for(y=0;y8

31、;y+)if(zt!=2) break; for(z=0;zspeed;z+)/可以调整移动速度 for(i=0;iy)|(t2(7-y); P2=(t2y)|(t3(7-y); delay(1);PO=Oxff;P2=0xff;void dow n() / 下移动uchar i,zishu,y,n; uchar t1,t2,t3; P1= 0x00; for(zishu=0;zishu6;zishu+) P0=0xff;P2=0xff; for(n=0; n2;n+) for(y=0;y8;y+)if(zt!=3) break; for(z=0;zspeed;z+)调整速度 for(i=0;

32、i16;i+)武汉理工大学单片机原理与应用课程设计说明书sca nf_dir(); if(zt!=3) break;if(n=0)void mai n() zt=0;EA=1;t1=hanzi2*i+zishu*32; t2=hanzi2*i+1+zishu*32;t3=ha nzi2*i+1+zishu*32+32; else t1=ha nzi2*i+1+zishu*32+32;t2=ha nzi2*i+zishu*32; t3=ha nzi2*i+zishu*32+32; P仁 liei;P0=(t1(7-y); P2=(t2y)|(t1(7-y); delay(1); P0=0xff;

33、 P2=0xff; 20 EX0=1;IT0=1;speed=20; while(1)scan f_dir(); if(zt=O) left();else if(zt=1) right();else if(zt=2) up();else if(zt=3) dow n(); void exin t() in terrupt 0 flag+; if(flag=1) speed=10;else if(flag=2) speed=50;flag=0; 武汉理工大学单片机原理与应用课程设计说明书21武汉理工大学单片机原理与应用课程设计说明书7性能分析程序通过韦福软件编译生成.hex文件。再烧写到单片机里。烧入完毕程序开始运 行。一开始是等待画面。按1键,左移显示武汉理工大学”;按2键,右移显示武汉理工大学”;按3键,上移显示武汉理工大学”;按4键,下移显示武汉理 工大学”;按5键,加速显示武汉理工大学”;按6键,减速显示武汉理工大 学”; 从左至右从上至上从右至左从上至下武汉理工大学单片机原理与应用课程设计说明书8硬件实物图武汉理工大学单片机原理与应用课程设计说明书9总结与心得此次的单片机课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论