基于单片机的神奇摇摇棒

上传人:仙*** 文档编号:131252918 上传时间:2022-08-06 格式:DOC 页数:40 大小:1.19MB
返回 下载 相关 举报
基于单片机的神奇摇摇棒_第1页
第1页 / 共40页
基于单片机的神奇摇摇棒_第2页
第2页 / 共40页
基于单片机的神奇摇摇棒_第3页
第3页 / 共40页
点击查看更多>>
资源描述
目 录1 绪论11.1概述11.2摇摇棒的基本原理21.3研究现状21.4设计目的和意义31.5设计规定31.6设计思路32.神奇摇摇棒硬件设计42.1硬件电路设计基本构造42.2主控电路设计阐明62.3 STC89C52单片机简介72.3.1 STC89C52芯片72.4 LED基本简介92.4.1 LED硬件电路92.4.2 LED内部构造及原理102.4.3 时钟电路112.4.4 复位电路122.5开关电路133.神奇摇摇棒软件设计153.1开发环境153.2中文图形取模软件163.3主程序流程图174.神奇摇摇棒系统的实现和成果204.1硬、软件分别调试及联合调试204.1.1 硬件调试204.1.2 软件程序调试214.1.3联合调试224.2 摇摇棒实物效果展示22结 论24致 谢26参照文献27附录28基于单片机的神奇摇摇棒设计1 绪论1.1概述 数码摇摇棒是由一组发光二极管排列而成,摇动时能显示多种图案的显示屏件。基于人眼视觉暂留原理、运用最新专利电子技术研制而成的线阵LED运动成像的高科技产品。它可以通过在手中左右摇晃棒体,就可在其摇晃出的扇形轨迹面上显示非常稳定的文字或图像,并可以连接电脑编辑下载更新文字或图案。相比于过去的闪光棒、荧光棒,它具有如下特点:1、显示方式新颖,吸引力强。2、以LED电子灯显示,图案明显清晰、稳定,可显示多幅图案。3、在LED摇摇棒的手握部分,设计成手柄,更人性化,并且使得摇晃过程中,显示内容的定位更精确。4、可通过数据线与电脑连接,设计、更改显示内容。5、可多次使用,减少挥霍。6、亮度高,视角更大,可视距离更远。1.2摇摇棒的基本原理人的眼睛存在视觉暂留现象,正由于眼睛反映迟钝,才丰富了人的视觉感受,LED摇摇棒较好地运用了人眼的视觉暂留特性。运用最新专利电子技术研制而成的线阵LED运动成像的高科技产品。LED摇摇棒是在手摆动到不同位置的时候,让位于一条直线上的LED显示二维图像的不同的列,运用人眼的视觉暂留效应,实现图形扫描显示。输出信号频率的控制通过单片机来实现,用16个发光二极管进行不同频率的亮灭刷新。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一种视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。1.3研究现状 近年来随着人们生活水平的日益提高,人们对娱乐产业的消费也越来越高,各大中都市举办演唱会的次数也越来越多.在学校里举办的多种晚会,活动也越来越多,以及自己私人举办的约会等等,这些都能用到LED摇摇棒.特别是近年来的选秀热,更是加大了摇摇棒的市场需求. 在演唱会、文艺表演、及多种比赛场合,挥动着的发光棒上可以显示出多种你所需要的文字、符号、图像等,可以极大地活跃现场氛围,调动观众激情。试想一下,当你手中的发光棒显示出“某某某”,或“我爱你”的字样时,虽然你无法与心中的偶像面对面交流,她也能感受到来自你的激情。据调查显示,人们接受的信息有 2/3的信息是通过眼睛获得的。数码摇摇棒集娱乐、益智玩具和流动广告于一体,予以是就的吸引眼球的效果。在明星演唱会、歌友会、酒吧、大型的娱乐场以及多种大型的选举、游行活动中都可以使用数码摇摇棒。随着社会经济的不断进步,以及显示技术的不断完善,人们对数码摇摇棒的结识将会越来越进一步。1.4设计目的和意义本次设计制作的是一种显示棒,基本规定就是要小巧、轻便,因此要将单片机的系统板简化设计。 通过本次设计,加强对AT89C52单片机的深刻理解,提高设计能力和动手能力。1.5设计规定设计一种16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。1.6设计思路LED摇摇棒是基于人的视觉暂留原理,通过度时刷新16个发光二极管来显示输出文字或图案等信息。输出信号频率的控制通过单片机来实现,用摇动传感器检测目前摇动状态。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一种视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。2.神奇摇摇棒硬件设计2.1硬件电路设计基本构造系统电源VCC为5V,下载程序和调试时一定要保证5V电压,实际使用时用3节干电池串联4.5V即可。STC89C52单片机作为控制器,在它的P0、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P0口的上拉电阻RA1不能少。串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经实测LED点亮时两端电压为3V左右,在LED的安全承受范畴内。K1是画面切换开关,用于切换显示不同内容;S1为水银开关。 图1是神奇摇摇棒设计原理图。由电源VCC为5V,实际使用时用2.1节纽扣电池串联6V即可。STC89C52单片机作为控制器,在它的P0、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。水银开关的作用:棒在摇动时,只能在朝某一方向摇动时显示,否则会浮现镜像字或镜像画面,因此通过接一只水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。图2.1 总电路图水银开关电路: 在水银开关断开时,由于上拉电阻R19的作用外部中断1为高电平,水银开关接通后来为低电平,产生下降沿引起中断。 水银开关的作用:使摇摇棒从左向右摇动时将内容显示出来。电路如图2.2所示:图2.2 水银开关电路2.2主控电路设计阐明单片机控制系统:单片机以其集成度高、功能强、可靠性高、体积小、功耗低、价格廉、使用灵活等一系列长处得到迅速的发展,渗入到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上多种仪表的控制,计算机的网络通讯与数据传播,工业自动化过程的实时控制和数据解决等,这些都离不开单片机。本次设计重要采用的STC89C52RC单片机为主控单元,如电路图2.3。 图2.3 单片机系统 2.3 STC89C52单片机简介单片机是指一种集成在一块芯片上的完整计算机系统。尽管她的大部分功能集成在一块小芯片上,但是它具有一种完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。这里以STC89C52单片机为例理解它的最基本的构成电路。2.3.1 STC89C52芯片在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的重要 市场,成为国内单片机应用领域中的主流。世界各大单片机厂商都在MCS51上投入了大量的资金和人力,环绕51内核,衍生出许多品种,增强51单片机的各 种功能。MCS51家族是目前在单片机领域发展最快的一种品种。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微解决器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业原则的MCS-51指令集和输出管脚相兼容。1、STC89C52单片机的重要性能特点:(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容老式8051;(2)工作电压:5.5v3.3v(5v单片机)/3.8v2.0v(3v单片机) ;(3)工作频率范畴:080MHZ,实际工作频率可达48MHZ;(4)大容量内部数据RAM:1K字节RAM;(5)8kB片内Flash程序存储器,具有在应用可编程(IAP) ,在系统可编程(ISP),可实现远程软件升级,无需编程器;(6)掉电检测和低功耗模式等;(7)4个8位I/O口,含3个高电流P1口,可直接驱动LED(8)PCA(可编程计数器阵列),具有PWM的捕获/比较功能;(9)SPI(串行外围接口)和增强型UART;(10)3个16位定期器/计数器;(11)可编程看门狗定期器(WDT);(12)低EMI方式(ALE严禁);(13)兼容TTL和COMS逻辑电平;2、STC89C52单片机各引脚功能图如2-4所示:图2-4 单片机引脚图3、STC89C52重要功能STC89C52重要功能如下表2-1所示。重要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定期/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设立睡眠和唤醒功能表2-1 STC89C52重要功能2.4 LED基本简介LED中文译作发光二级管,顾名思义发光二级管是一种将电能转化成光能的电子器件,具有二极管的特性。在电路中并不使用使用3MM的LED,而是采用了5MM的高亮LED灯,5MM的高亮LED有多种颜色,除了多种颜色外尚有双色的,一只LED可以多余两种颜色,因此5MM高亮的LED达到想要的效果,远距离观看的效果更佳。2.4.1 LED硬件电路电路中采用了16只红色5MM高亮的LED,所有的LED使用共阳极的方案并联起来,并给电源端加上了IN4007整流二级管,还在LED的正级接上了200欧姆的保护电阻,通过测试如果只接上一只IN4007整流管,实际测量得到LED的电流在30mA左右,LED点亮久后会发热,导致LED的寿命减短,必须加上保护电阻。而保护电阻测量电流达到15mA20mA左右,并却没有发热的迹象,因此采用此方案,具体如图2-5所示。图2-5 LED电路图2.4.2 LED内部构造及原理LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一种半导体的晶片。在一种支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由P型半导体和N型半导体两部分构成,其中P型半导体在它里面空穴占主导地位,N型半导体重要是电子。在它们中间有一种过渡层,称为P-N结。具有单向导电性。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,即LED发光的原理。而光的波长决定光的颜色,是由形成P-N结的材料决定的。(图2-6所示)图2-6 LED内部构造2.4.3 时钟电路单片机其实是一种复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟控制严格地准时序进行工作。时钟电路用于产生单片机工作所需要的信号。在MCS-51为核心的单片机内部有一种高增益反相放大器,用于构成振荡器,其输入端引脚为XTAL1,其输出端引脚为XTAL2。只要在XTAL1和XTAL2之间跨接石英晶体和和两个微调电容,就可以构成稳定的自激振荡器并产生振荡时钟脉冲,这种方式称为内部时钟方式。在时钟电路中由1个12MHz的晶振、2个30pF的瓷片电容构成具体电路如图2-7所示。一般地,晶振比较常用的有6MHz、12MHz。晶振的频率越高,系统的时钟频率也越高,单片机的运营速度也就越快。STC的单片机最高可支持到40MHz的晶振,但为了系统可以稳定的运营还是选择常用的晶震,如果单片机上使用了串行口通信,则一般会考虑使用11.0592MHz的晶振,以便波特率的计算。图2-7 时钟电路2.4.4 复位电路STC89C52单片机的的常用的复位电路重要有两种,一种是上电复位,此外一种是手动复位,其中手动复位涉及了上电复位的功能,由于摇摇棒设计中考虑到手动复位多了这里不需要的功能,因此在这里采用了上电复位的方式来实现单片机复位。上电复位电路构成的元件由一种22uf的电容和一种1K的电阻构成,单片机复位的条件是:必须使RST(第9引脚)加上持续两个以上机器周期(即24个脉冲振荡周期)以上的高电平。若时钟频率为12MHz,每个机器周期为1us,则需要加上持续2us以上的高电平。单片机的复位电路如图2-8所示。图2-8 复位电路2.5开关电路电路中开关使用了水银开关,是通过水银珠滚动接触导针的原理来控制电路的接通或者断开的。水银开关简朴来说,就犹如打开或关掉电灯同样,开关触碰里头的金属板电灯就亮,离开就关,运用开关中的水银珠的滚动,制造与金属端子的触碰或变化光线行进的路线,就能产生导通或不导通的效果。当水银珠滚到金色引脚那一端的时候就会导通,正是这个原理可以用做单片机外部中断的下降沿的信号控制,在使用水银开关提供单片机下降沿信号时,要给一种10K的上拉电阻给单片机,这样水银开关没有接通的时候外部中断引脚就会保持高电平,一但接通会产生一种下降沿中断。摇摇棒要使用水银开关,如果没有水银开关摇摇棒就会产生镜像效应,具体的电路如图2-9所示,电路图中SW-SPST为水银开关。图2-9 开关电路3.神奇摇摇棒软件设计本节简介了摇摇棒软件设计过程中所需要的某些软件和软件设计的流程。3.1开发环境工欲善其事,必先利其器。一种良好的开发环境可以使开发人员事半功倍。单片机的开发工具有诸多,各式各样的均有,其中在8051单片机中最常用的就有两款,分别是KEIL C51、和SDCC两款。其中SDCC-Small Devicd C Compiler,SDCC是一种优化的原则C交叉编译器,目的CPU为基于INTEL 8051,Maxim 80DS390,Zilog Z80和Motorola 68HC08的单片机。SDCC是一种免费的开放源代码。同步SDCC也是一款跨平台的开发工具,目前支持Windows、Linux、Unix和Mac等系统,但SDCC没有IDE开发环境,但是有第三方的IDE软件,还需要整合比较麻烦。此外一款开发工具就是Keil C51了,在8051单片机开发上应用很广。Keil C51是一种IDE开发工具,除了界面美观之外,并对c语言支持的较好。由于SDCC对8051单片机方面的资料比较少,故选用了Keil C51作为重要的开发环境,Keil C51在8051单片机资料非常的广,因此在它上面做开发会有较多的参照,图3-1为Keil C51的界面。图3-1 Keil主界面3.2中文图形取模软件取模软件非常之多,但选用的时候应当考虑到LED电路中与否适合正在使用的取模软件,通过多款取模软件的测试,选定了xiao-qi中文图形取模软件。Xiao-qi中文图形取模软件是晓奇工作室所开发的一款界面和谐,多功能的取模软件。如图3-2所示。图3-2 xiao qi 主界面在使用过程中选用了数据的排列方式为从上到下从左到右、输出的格式选择了C语言、取模方式选择了纵向8点下高位,其她的不变,取模的方式是根据LED电路而决定的。3.3主程序流程图通过软件设计思路分析,得到该系统的主程序流程图3-3如下:开关在右边吗?系统初始化开始外部中断T1送数据LED灯熄灭外部中断T0YNFlag=1Flag=0延时图3-3 主程序流程图系统开始运营,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再通过一段时间延时后开始显示。显示完毕返回主程序,等待下一种摇动周期的到来。主函数部分:完毕函数的初始化,运用while循环语句,对display1程序段进行若干次反复调用执行;函数声明部分:void display1(void);延时子程序部分:void DelayUs(uint N)uint x;for(x=0; x=N;x+);一列显示结束后,延时500ms,再进行下一列的显示;中断服务程序部分:每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示);显示子程序部分:void display1(void)uchar i;for(i=0;i64;i+) P1=diani*2;P2=diani*2+1; DelayUs(500);; LED摇摇棒显示的像素为16*64,也就是在函数里面显示的图像提成64列,每一列都是由两个8位字节构成的。P1=diani*2;P2=diani*2+1指的是一列显示结束后调用数组中的下一组进行LED显示;如果P1=diani;P2=i+1那么一列显示结束后,调用下一组数组的时候,会把前一列数组中的后一种字节继续调用并作为下一列的前一种字节,导致最后所需图像信息显示不出。4.神奇摇摇棒系统的实现和成果4.1硬、软件分别调试及联合调试4.1.1 硬件调试1、检查电路:任何组装好的电子电路,在通电调试之前,必须认真检查电路连线与否有错误。对照电路图,按一定的顺序逐级相应检查,特别要注意检查电源与否接错,电源与地与否有短路,二极管方向和电解电容的极性与否接反,集成电路和晶体管的引脚与否接错,轻轻拔一拔元器件,观测焊点与否牢固,等等。2、通电观测:一定要调试好所需要的电源电压数值,并拟定电路板电源端无短路现象后,才干给电路接通电源。电源一经接通,不要急于用仪器观测波形和数据,而是要观测与否有异常现象,如冒烟、异常气味、放电的声光、元器件发烫等。如果有,不要惊恐失措,而应立即关断电源,待排除故障后方可重新接通电源。然后,再测量每个集成块的电源引脚电压与否正常,以确信集成电路与否已通电工作。3、静态调试:先不加输入信号,测量各级直流工作电压和电流与否正常。直流电压的测试非常以便,可直接测量。而电流的测量就不太以便,一般采用两种措施来测量。若电路在印制电路板上留有测试用的中断点,可串入电流表直接测量出电流的数值,然后再用焊锡连接好。若没有测试孔,则可测量直流电压,再根据电阻值大小计算出直流电流。一般对晶体管和集成电路进行静态工作点调试。4、动态调试:加上输入信号,观测电路输出信号与否符合规定。也就是调节电路的交流通路元件,如电容、电感等,使电路有关点的交流信号的波形、幅度、频率等参数达到设计规定。若输入信号为周期性的变化信号,可用示波器观测输出信号。当采用分块调试时,除输入级采用外加输入信号外,其她各级的输入信号应采用前输出信号。对于模拟电路,观测输出波形与否符合规定。对于数字电路,观测输出信号波形、幅值、脉冲宽度、相位及动态逻辑关系与否符合规定。在数字电路调试中,常常但愿让电路状态发生一次性变化,而不是周期性的变化。因此,输入信号应为单阶跃信号(又称开关信号),用以观测电路状态变化的逻辑关系。4.1.2 软件程序调试软件调试:采用了自顶向下的调试措施,先调试功能电路,在调试整个系统,调试过程中软件调试和硬件调试相结合,提高了效率。1、在字模选用时,字模走向,点阵格式等方面选用不当会导致显示出的图像,文字信息等不完整或不能显示;那么,字模的选用方面,点阵格式,字模走向等的选择必须与硬件电路中的一一相应。2、在软件设计程序编程时,延时子程序设计的时间长短会浮现某些问题。时间设的太长,在摇晃过程中,LED发光二极管点亮的速度会很慢,致使在使用过程中左右摇晃的频率,幅度会很大,画面就不容易显示或者不清晰,只浮现部分画面等状况;时间设的太短,LED发光二极管点亮的速度会不久,那么摇晃过程中,甚至有些应当亮的频率比较高的二极管主线来不急点亮,那么在人眼看来,那些二极管主线就没点亮。因此,在设立延时子程序时间的问题上,要计算出单向甩出摇摇棒所需的具体时间。这样,LED灯亮的速度才会适中,致使演示效果完好。4.1.3联合调试 软、硬件联合调试:当软硬件基本功能发分别调试后,进行联合调试,调试过程中浮现的问题有:字符呈倒立显示,文字只能显示中间部分等;通过度析软件程序和硬件电路,对程序进行了大量的调试,最后实现了设计目的。4.2 摇摇棒实物效果展示图4.1 摇摇棒实物图水银开关里的水银珠很活跃,导致在接通时容易产生抖动,因此将水银开关斜向上45角放置,靠水银珠自身重力的作用减少抖动。图4.2 LED及水银开关实物图图4.3 IC座实物图IC座里面隐藏元件,既美观又能保护元件。结 论神奇摇摇棒是生活中很常用的东西,本次设计以水银开关和单片机的实际应用为背景,简介了以单片机为核心显示设计的基本构造和基本原理。本次将使用单片机对摇动显示进行实例化,设计一种LED摇动显示屏来显示文字、图像等信息。掌握运用8052型单片机对发光二极管阵列进行摇动控制的措施。输出信号频率的控制通过单片机来实现,用水银开关摆动状态和16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一种视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。设计综合运用了字模转换软件。同步查阅了大量有关资料,涉及查阅有关书籍和网上的资料,获得了某些有关信息。在设计方面,采用了在变量自加的原理,在通过逐个读取的措施来显示要显示的内容。最后还得出如下几点:1准备越充足,实做越顺利在做设计前理解有关知识、材料、措施可以避免许多没有必要的麻烦,一步一种脚印就不必“从头再来”。最不能容忍的是在开始的几步偷懒,导致背面总有某些无法排除的障碍。2温故而知新课程设计发端之始,思路全无,举步维艰,对于理论知识学习不够夯实的我深感知识的不够,便重拾教材对知识系统而全面进行了梳理,终于纯熟掌握了基本理论知识,并且领悟诸多平时学习难以理解掌握的较难知识。 3思路即出路当时没有思路,诚如举步维艰,茫茫大地,不见道路。在对理论知识梳理掌握之后,茅塞顿开,柳暗花明,思路如泉涌,高歌“条条大路通罗马”。顿悟,没有思路便无出路,本来思路即出路。通过这次课程设计,使我学会了编写程序,焊接电路板,增强了我的动手能力,为后来参与工作打下了坚实的基本! 致 谢本文的设计工作是在李教师的精心指引下完毕的,在我的学业和论文的毕业设计中无不倾注着李教师的辛勤的汗水和心血。是她用她的课余时间为我们解说这次设计的原理以及帮我们找有关的器件,在实物完毕后不厌其烦得为我们进行调试和毕业论文的指引。李教师的严谨治学态度、渊博的知识、无私的奉献精神使我深受感染,对我后来从事工作提供了一种工作精神,一件事情既然你做了就要用心把它做好,你用你的小聪颖蒙混过关,这是对你自己的不负责任,要为你做的事情用尽全力。从尊敬的李教师身上,我不仅学到了夯实、广阔的专业知识,也学到了诸多做人的道理。在此我要向李教师致以最衷心的感谢和深深的敬意,我一定不负教师之望走好后来的漫漫人生路。还要感谢单片机学的比较好的同窗们,是她们教会了我有关单片机有关知识;此外还给我的论文提出诸多珍贵的意见,帮我拍出了实验效果图。这里我要再一次由衷的感谢,感谢那些予以我协助的人。再次感谢李教师长期以来悉心的指引和在设计过程提供的大量资料、修改意见及多次的参观和实验的机会,让我对单片机有了较全面理解,为后来的工作和更进一步的学习打下了坚实的基本,也积累了许多珍贵的设计经验。参照文献1 毛谦敏,吴泓潭.单片机原理及应用系统设计,北京国防工业出版社,,82张毅刚. MCS-51单片机应用设计,哈尔滨工业大学出版社,3 李光飞. 单片机课程设计实例指引,北京航空航天大学出版社,,34 冯先成. 单片机应用系统设计,北京航空大学出版社,5 何宏. 微型计算机原理与接口技术,西安电子科技大学出版社,,46杨将新.单片机程序设计及应用,电子工业出版社,,37 金杰. 单片机应用技术基本功,人民邮电出版社,8 韩志军. 单片机系统设计与应用实例,机械工业出版社,9 李广弟. 单片机基本,北京航空大学出版社,10 李群芳. 单片微型计算机接口技术及应用,电子工业出版社,12 严天峰. 单片机应用系统设计与仿真调试,北京航空航天大学出版社,13 廖雷. C语言程序设计,高等教育出版社,14鲁捷,焦振宇. Protel 电路设计,清华大学出版社附录#include #define uchar unsigned char#define uint unsigned int /宏定义sbit KEY =P30; /定义画面切换按键uchar KY; /KY作用在背面阐明 uchar disp; /显示中文指针uchar pic=0,num=0; /pic为按键次数;num为中断次数uchar code love = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*LOVE*/;uchar code loveyou = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F,0xFC,0x3F,0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01,0xFC,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*心形图案*/;uchar code hehe = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20,0x08,0x10,0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*呵呵o(_)o图案*/;unsigned char code hanzi = /- 欢 - 0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01, 0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30, 0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10, 0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00,/- 迎 - 0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F, 0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41, 0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42, 0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00,/- 使 - 0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00, 0x04,0x80,0xF4,0x43,0x14,0x45,0x14,0x29, 0x14,0x19,0xFF,0x17,0x14,0x21,0x14,0x21, 0x14,0x41,0xF6,0xC3,0x04,0x40,0x00,0x00,/- 用 - 0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02, 0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F, 0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82, 0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00,/- 神 - 0x08,0x01,0x88,0x00,0x49,0x00,0xEE,0xFF, 0x58,0x00,0x88,0x00,0x00,0x00,0xF8,0x1F, 0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08, 0x88,0x08,0xFC,0x1F,0x08,0x00,0x00,0x00,/- 奇 - 0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E, 0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12, 0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F, 0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,/- 魔 - 0x00,0x40,0x00,0x30,0xFE,0x8F,0x4A,0x80, 0xAA,0x5F,0x9A,0x4A,0xFE,0x2A,0xAA,0x1A, 0xCB,0x0F,0xAA,0x7A,0xFE,0x8A,0x9A,0xAA, 0xAA,0x8F,0x6B,0x80,0x22,0xE0,0x00,0x00,/- 幻 - 0x80,0x20,0xC0,0x30,0xA0,0x28,0x98,0x24, 0x87,0x22,0x80,0x21,0xC4,0x30,0x04,0x60, 0x04,0x00,0x04,0x20,0x04,0x40,0x04,0x80, 0x04,0x40,0xFE,0x3F,0x04,0x00,0x00,0x00,/- 摇 - 0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F, 0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44, 0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44, 0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,/- 摇 - 0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F, 0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44, 0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44, 0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,/- 棒 - 0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF, 0x90,0x00,0x54,0x05,0x44,0x12,0xD4,0x15, 0x74,0x14,0x5F,0xFF,0xD4,0x14,0x54,0x15, 0x56,0x12,0x44,0x06,0x40,0x02,0x00,0x00,/- ! - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B, 0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar code Hello=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/* ,0*/0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/*H,1*/0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/*e,2*/0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*l,3*/0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*l,4*/0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/*o,5*/0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,/*!,6*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/* ,7*/;uchar code Thanks = /- 谢 - 0x40,0x00,0x42,0x00,0xCC,0x3F,0x00,0x52,0xFC,0x2B,0x56,0x12,0x55,0x4A,0x54,0x86, 0xFE,0x7F,0x24,0x01,0x20,0x46,0x20,0x80,0xFF,0x7F,0x20,0x00,0x20,0x00,0x00,0x00,/- 谢 - 0x40,0x00,0x42,0x00,0xCC,0x3F,0x00,0x52,0xFC,0x2B,0x56,0x12,0x55,0x4A,0x54,0x86, 0xFE,0x7F,0x24,0x01,0x20,0x46,0x20,0x80,0xFF,0x7F,0x20,0x00,0x20,0x00,0x00,0x00,/- ! - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B, 0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;/*函数声明*/void display1(void);void display2(void);void display3(void);void display4(void);void display5(void);void display6(void);/*n(us)延时子程序*/void DelayUs(uint N) uint x; for(x=0; x10)disp+;num=0; /12个中文分为3次显示完(每次显示4个),每中断10次切换 if(disp5)disp=0; DelayUs(5200); /此处延时时间依各硬件差别而各不相似,试着调节使得显示内容居中即可 for(i=0;i64;i+) P0=hanzidisp*128+i*2; P2=hanzidisp*128+i*2+1; DelayUs(100); /*显示子程序2(LOVE)*/void display2(void) uchar i; DelayUs(4000); for(i=0;i64;i+) P0=lovei*2; P2=lovei*2+1; DelayUs(120); /*显示子程序3(心形图案)*/void display3(void) uchar i; DelayUs(4000); for(i=0;i64;i+) P0=loveyoui*2; P2=loveyoui*2+1; DelayUs(120); /*显示子程序4(呵呵o(_)o图案)*/void display4(void) uchar i; DelayUs(4000); for(i=0;i64;i+) P0=hehei*2; P2=hehei*2+1; DelayUs(120); /*Hello!显示64*16像素 */void display5() uchar i; DelayUs(4000); for(i=0;i64;i+) P0=Helloi*2; P2=Helloi*2+1; DelayUs(120); void display6() uchar i; DelayUs(4000); for(i=0;i3)pic=0; /*END*/
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!