唐山工业职业技术学院毕业设计封面

上传人:仙*** 文档编号:83087114 上传时间:2022-04-30 格式:DOC 页数:32 大小:2.83MB
返回 下载 相关 举报
唐山工业职业技术学院毕业设计封面_第1页
第1页 / 共32页
唐山工业职业技术学院毕业设计封面_第2页
第2页 / 共32页
唐山工业职业技术学院毕业设计封面_第3页
第3页 / 共32页
点击查看更多>>
资源描述
唐山工业职业技术学院 毕业设计(论文、创作)说明书题目 基于单片机的 光立方电路设计 系别 班级 姓名 学号 指导教师 2014 年 5 月 6 日目 录摘 要.1关键词.1一、概述.21.1 课题的目的及意义.2 1.2 光立方电路设计.2二、功能需求分析.52.1 课题背景及发展现状.52.2 光立方的介绍.5三、具体设计.63.1 元器件选择.63.2 显示模块.73.3 驱动模块 .93.4 主控模块.10 3.5 音频模块.103.6 调试.11四、总结.12参 考 文 献.13附录.14主程序.14573锁存相关程序.23频谱显示程序.37基于单片机的光立方电路设计 (11机电11班)摘 要光立方是一个长、宽、高由888 个LED 灯组成的真实3D 立方体显示器。其最大的特点,就是带给观赏者立体的超酷的3D视觉体验。因此各大网站也充斥着各种各样的光立方版本。但是这各种版本的光立方的制作方法都很复杂,而且成本也很高,而本设计与之相比则制作简单精美,成本低廉。为保证光立方精美的外形,本设计还提供了一种光立方的制作模板,以确保将动手能力导致的美观差异降到最低。为降低其成本,本设计采用了STC12C5A60S2单片机,这种单片机自带有A/D转换模块;使用的锁存器是常用的74HC573。这样可以保证在降低制作成本的情况下,毫不影响作品的美观;再加上显示效果极佳的雾面的蓝色LED,硬件电路无需添加额外的驱动和上拉电阻,即可实现其强大的功能:除了能显示3D 图形,还可以支持多级亮度和速度调整,允许用户自拓展音频显示功能,就像音乐显示器一样。用户还可以在不改动硬件电路的情况下设计出自己喜欢的的自定义图形。这些充分体现了制作成本低、显示效果好、功能完善的特点。最后,经过软硬件调试,解决了一些硬件电路短路,程序报错的问题,完美地实现了多种图形动态显示,流畅的图形变换和音频显示的多种功能。关键词: 光立方 制作模板 音频显示 A/D转换一、概 述1.1课题的目的及意义“光立方”一词正逐渐引起了全国人民的关注,并得到了全球的高度肯定。由此,也掀起了光立方的设计与学习热潮,在原有的基础上不断增加难度,增加变换花样,吸引电子爱好者对其研究、创新。事实上,“光立方”已经渗透到以下几个方面:照明类LED光效户外景观照明展开的视觉装饰活动;信息传播类LED光效各种类型的大屏幕点缀着人们的生活;光立方制作所需材料较常见,成本低廉、性价比高等优点具有较高的研究价值。本次毕业设计一改传统的平面流水灯的风格,而是从平面向立体发展,通过更宽广的三维空间呈现出更加绚丽的效果,直接冲击着人们审美视觉,不在停留在乏味的平面成像。设计并采用更优于89C51的STC12C5A60S2单片机,使系统具有更强大的功能和驱动能力。再者,从平面向立体这符合科技发展的要求,适应主流。3D8光立方主体部分由512LED灯组成,在制作过程中锻炼学习动手焊接能力,并以低成本,智能化产品对实现经济利益、商业价值的形成具有积极的推动作用。1.2光立方电路设计主要分为四个模块分别是主控模块、驱动模块、显示模块、音频模块图1-1 主控电路1主控电路这个设计选单片机选型号时候需要考虑带AD功能和较大的程序存储空间,STC12C5A60S2单片机是STC公司生产的单时钟/机器周期(1T)的单片机,是高速,低功耗,超抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,应用程序空间高达60K,尤其适合做光立方。如图1-1图1-2 驱动电路2驱动电路主要部件74HC573锁存器,74HC573包含八进制3态非反转透明锁存器,是一种高性能硅门CMOS器件。它的数据锁存功能,在输入的数据消失时,在芯片的输出端,数据仍然保持。真值表如下. 图1-3 真值表图1-4 显示电路3.显示电路显示电路所有的灯的负端都是接在一起的,每一组都是控制光立方的一个面,控制的是光立方的竖起来的面,而横着的面由图2的ULN2803达林顿管驱动器控置。4.音频电路音频电路是本设计的特色,单片机的P1.0和P1.1分别连接音频输入口端口的两个引脚,用单片机内部AD采样音频信号。经过快速傅里叶变换,在光立方上显示出来音乐的频谱。二、 功能需求分析2.1课题的背景和发展状况LED 点阵显示屏已经应用到了我们生活中的方方面面,科技发展的脚步一直向前,3D 电影给人们带来了更加震撼的视觉体验,于是设计出一种 3D 显示屏。光立方是由四千多棵光艺高科技“发光树”组成的,在2009年10月1日天安门广场举行的国庆联欢晚会上面世,这是新中国成立六十周年国庆晚会最具创意的三大法宝之首,自从国庆60周年联欢晚会开始演练后,一个全新的名词“光立方”,吸引了全国人民的关注。国庆联欢晚会三样法宝,光立方为最,“光立方”在气势和整体感觉上,融合了北京奥运会开幕式“击缶而歌”和“活字印刷”的风格,而各种图案则与贯穿奥运会开幕式的“画卷”有异曲同工之妙。“光立方”可以根据爱国歌曲的不同内容,展示不同的造型和图案,具有丰富的视觉效果。2.2 光立方的介绍光立方顾名思义就是一个立方体,我们采用的是8*8*8的模式,大概的体积是17cm*17cm*17cm(长.宽.高),主要分为四个模块:主控模块驱动模块显示模块和音频模块;我们所做的光立方驱动电路,主控电路等都是纯手工焊接。采用的主控芯片STC12C5A60S2芯片,驱动电路是采用我们常用的74HC573数字芯片。本设计采用C语言编程实现不同图案的转变,利用单片机控制512个LED灯的亮灭,采用延时控制LED亮灭时间使LED灯图案转变的速度不同,最终使得整个立体呈现不同的造型和图案,使其变得美轮美奂、绚丽多彩。LED光立方显示技术的特色之处:一是节能(直接功耗,间接耗能)高空间利用率,二是基本无电离辐射。LED 点阵显示屏的特点还有比数码管具有实用、便宜、亮度高等优点,而且做出来的 LED 显示很耐用。LED 显示屏还具有亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定等优点。LED 点阵显示屏的发展前景极为广阔,目前正朝着更高亮度,更高耐气候性,更高的发光密度,形状的多样性,更高的发光均匀性、可靠性、多色化方向发展。三、具体设计3.1 元器件选择1)由于光立方的程序量比较大,而且要求相对比较高,因此用 51 系列的增强型芯片 STC12C5A60S2,选择的理由:1.超强抗干扰;2.内部集成高可靠复位电路,外部复位可用可不用;3.速度快,比 8051 快 8-12 倍。 2)由于灯的个数比较多,因此所需要的电流相对也比较大,所以选择ULN2803达林顿管驱动器。 3)驱动部分使用了熟悉的74HC573,其优点有 1.高阻态,就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;2.数据锁存;当输入的数据消失时,在芯片的输出端,数据仍然保持;3.数据缓冲、加强驱动能力。4)LED 灯的选择,因为光立方主体骨架是由LED灯脚架接而成,且距离不小,所以应该选用长脚LED,由于高亮灯散射现象不明显,发光比较集中,所以选用效果较好的雾状灯。综上,最终选择的是长脚蓝色雾状灯。 图 3-1 雾状LED灯3.2 显示模块我首先完成的是LED光立方的搭接,为了保持整体的通透性、立体感,3D8光立方没有设计额外的LED支架,所有的搭建全部使用LED的自身的管脚。1)水平弯折:基本徒手就可以保证焊接的整齐性和保持角度的统一。2)垂直弯折:可借助尖嘴钳,目的是让阴极摆出发光体一部,使其可以与其上下的LED进行搭接。(1)由点到线 准备一块水平板,在上面打上8*8的64个孔,分布均匀,孔径以配合LED为准。将弯折好的LED插入一排插孔后,其阴极正好可以搭接在一起,进行焊接,实现线行内共阴的操作。(2)由线到面将焊接好的一条一条LED平躺在平面上,实现水平方向阴极的焊接,左方LED与右方LED阴极搭接的位置,可用LED自身根部的突起作为标志,控制层与层间距。(3)由面到体将水平各面依次插到面板上面,以后将上下层直接的阳极进行焊接,实现各8*8平面的层共阳,实现层共阳以后,我们就得到了共计8条对阴极引线,通过漆包铜线,实现各层的阴极线与主板的连接。见图3-2(4)静态测试进行LED的静态测试,对内部常亮点、常暗点进行更换。由于LED还是比较娇贵的元件,焊接过程中,应避免静电造成LED的损伤。对面内各点进行测试,从面避免在各层都实现共阴连接以后再从中拆出个别坏点。就原理图来说,3D8的LED搭接结果相对简单,512个LED,分别为64束,8层,束内共阳,层内共阴。见图3-3(5)线路板背部焊接在线路板上均匀分布焊接64个针脚,并把针脚引到一条水平线上,等待下面与驱动电路焊接。见图3-4图3-2图3-3 图3-43.3驱动模块 驱动电路由于线比较多电路比较复杂,由八个74HC573锁存器组成的,所以我们有比较多的跳线,首先分别把74HC573锁存器的1号和10号引脚焊接起来,20号引脚也连接起来,然后焊接的是74HC573锁存器的12-18引脚与64个引脚,最后把8个74HC573锁存器的2-8引脚连接起来与单片机的P0.0至P0.7连接,如图3-5:图3-53.4主控模块主控电路是最简单的电路,是以STC125A60S2单片机为核心的控制电路,其中还有一个控制层的ULN2803达林顿管驱动器与STC125A60S2单片机的P3.0-P3.7焊接在一起,晶振和电容焊接在单片机的18和19引脚。如图3-6所示:图3-63.5音频模块音频模块是此次毕业设计的创新之处,通过按键进行模式切换,光立方可以随着输入的音乐信号进行跳动。将单片机的P1.0和P1.1分别连接音频输入口端口的两个引脚,最后把所有的VCC和GND焊接到一起,把USB供电口和下载口焊接到线路板上就完工了。图3-73.6调试首先我用Keil编程软件编写的单片机程序,烧写进单片机里。其次是检查全部的灯是否正常工作:(1)通电后,发现有一列没有点亮,我用排除法来检查电路,首先是检查灯的线路是否虚焊,断路,果真是这列断路了,把它接上后这一列也亮了。(2)调试过程中有几个灯一直不亮,用万用表欧姆档测量发现灯已经烧坏,拆下坏掉,但是有2个灯是存在虚焊问题,从新焊接后正常工作。最后完美运行,如图3-8图3-8四、总结其实在很早之前就知道光立方这种东西,只是在许多地方找到的资料不是制作方式太复杂,就是电路设计难懂,制作精美的光立方也往往价格不菲。而本设计旨在设计出一种制作简单、低花费、高质量的光立方。经过查阅大量的相关资料,最终设计出了以STC125A60S2单片机为核心的控制电路,并用常用锁存器74HC573和8路非门ULN2803达林顿管驱动器设计了光立方驱动电路。最初焊接光立方88的面时,每个LED引脚的连接都是很困难的。在这个过程中,我想到了一个制作模板,并最终加快了显示部分的焊接速度和焊接质量。每焊好一层LED,都要仔细测试是否有虚焊或者短接,花了三天时间才把8层LED焊好。之后在焊接64个插针时,由于每个插针在焊接前难以固定,所以一手拿镊子一手拿烙铁,先用焊锡固定插针,然后再把插针调整得笔直。每一排,每一列还要最终调整得排列整齐,这个过程也很辛苦。设计结束了,但学习仍在继续。从这次的设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,实践是检验真理的唯一标准。在今后的人生中,不断对自己所学的知识进行更新,进行补充。参 考 文 献1 谢自美.电子线路设计.实验.测试.武汉:华中科技大学出版社.20062 关积珍.LED显示屏发展状况及趋势J.世界电子元器件,20003 康华光,陈大钦,张林.电子技术基础.华中科技大学出版社.20024 邱光源.电路(第五版)M.北京:高等教育出版社,20065 张瑞玲.单片机原理与应用 西北工业大学出版社20106 祈伟杨亭.单片机C51程序设计教程与实验 北京航空航天大学出版社20067 江世明,基于Proteus的单片机应用技术M,北京,电子工业出版社,20098 王为青, 程国钢,单片机Keil Cx51应用开发技术,北京,人民邮电出版社, 20079 阮永松,打造音乐频谱时钟,无线电J,2012 10刘兴钊,数字信号处理M,北京,电子工业出版社,201011张毅刚,基于Proteus的单片机课程的基础实验与课程设计M,北京,人民邮电出版社, 2012附录程序主程序#include /#includeSTC12C5A60S2.H /芯片头文件#includeFFT.H /FFT(快速傅里叶变换)功能头文件#includekey.h /按键扫描头文件#includezimo.h /#includehc573.h /hc573驱动#includeflash.h /#define anum P3 /定义ULN2803数据端口sbit LED =P13; /指示用LED(未使用)uchar flag1; /变量区分定时器0功能(0:用于音乐频谱,1:用于动画)uchar ADC_Count=0,LINE=15,G=0,T;/uchar COUNT=15;/uchar COUNT1=0;/uchar code tablew=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/uchar code tablew=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/uchar code tablew=0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01;uchar code tablew=0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE; uchar G;uchar buffer8;/功能初始化void Init() /IO口默认状态P0 = 0x00; /74HC573数据口P2 = 0x00; /74HC573位选端P3 = 0x00; /ULN2803数据口/IO口模式初始化P3M0 = 0xff; /ULN2803输出口设置为推挽输出P3M1 = 0x00;P0M0 = 0xff; /P0、P2用于控制74HC573,推挽输出P0M1 = 0x00;P2M0 = 0xff;P2M1 = 0x00;P4M0 = 0x00; /P4端口接有按键,设置为输入P4M1 = 0xff;/573初始化initial573();/- ADC初始化 -P1ASF = 0x02; /0000,0010, 将 P1.1 置成模拟口AUXR1 &=0xFB; /1111,1011, 令 ADRJ=0EADC =1;/AD中断打开ADC_CONTR = ADC_POWER | ADC_SPEEDHH | ADC_START | channel; /1110 1001 1打开 A/D (ADC_POWER)转换电源;11速度为90周期一次; /0中断标志清零;1启动adc(ADC_START);001AD通道打开(这里为P1.1);/- 定时器初始化 - ET0 = 1; /定时器0中断 启用TR0 = 0; /定时器0 关闭ET1 = 1; /定时器1中断 启用TR1 = 0; /定时器1 关闭PT1 = 0; /定时器1 低优先级PT0 = 1; /定时器0 高优先级IPH = PADCH;IP = PADC; /中断优先级EA = 1; /总中断打开 clear(0); /清空显示缓冲区/按键设置P4SW = 0x70; /将NA、ALE、EX_LVD设置为准IO口(P4.4、P4.5、P4.6) /* 主函数 */void main()uchar i = 0; /for循环变量/设备初始化Init();/正常工作循环while(1)clear(0);/清空刷新显示缓冲区 key_scan();/扫描按键/关闭显示if(key1flag=1)key1flag = 0;xiansi1(); /关闭所有573输出anum = 0xff; /关闭ULN2083输出TR1 = 0; /定时器1 关闭TR0 = 0; /定时器0 关闭/FFTif(key2flag=1)TMOD = 0x12; /T0: 8位自动重装 T1: 16位模式TH0 = 0x60; /ADC采样周期(80us或6.66us) TL0 = 0x60; /while(1)flag1 = 0;TR1 = 1; /刷新显示TR0 = 1; /控制采样速率ADC_Count=0;TR1 = 1; /开启定时器中断1TR0 = 1; /开启定时器中断0EADC = 1; /开启ADC while(ADC_Count128); /转换128次for(i=0;i=17) G=1;switch(G)/往点阵屏填充一列的数据/(LED_TAB1 )%8取八的余数case 1: anum=tablew(LED_TAB1 )%8;hang1();break; case 2: anum=tablew(LED_TAB2 )%8;hang1();break;case 3: anum=tablew(LED_TAB3 )%8;hang2();break;case 4: anum=tablew(LED_TAB4 )%8;hang2();break;case 5: anum=tablew(LED_TAB5 )%8;hang3();break;case 6: anum=tablew(LED_TAB6 )%8;hang3();break;case 7: anum=tablew(LED_TAB7 )%8;hang4();break;case 8: anum=tablew(LED_TAB8 )%8;hang4();break;case 9: anum=tablew(LED_TAB9 )%8;hang5();break;case 10:anum=tablew(LED_TAB10)%8;hang5();break;case 11:anum=tablew(LED_TAB11)%8;hang6();break;case 12:anum=tablew(LED_TAB12)%8;hang6();break;case 13:anum=tablew(LED_TAB13)%8;hang7();break;case 14:anum=tablew(LED_TAB14)%8;hang7();break;case 15:anum=tablew(LED_TAB15)%8;hang8();break;case 16:anum=tablew(LED_TAB15)%8;hang8();break;LED=0; /ADC转换完成中断void ADC_Finish() interrupt 5 ADC_CONTR &= !ADC_FLAG; Fft_RealLIST_TABADC_Count = (int)(ADC_RES)1)*2; if(ADC_Count=127) ADC_Count+; else EADC=0;TR0=0; /定时器0中断 void Ad_Control() interrupt 1 uchar i;static uchar layer=0; if(flag1=1) anum = 0;for(i=0;i8;i+)bufferi=displaylayeri;xiansi();anum = 0x01layer;if(layer7) layer+;else layer=0; delay(5);TH0=0xf5;TL0=0xe0; /控制采样速率elseADC_CONTR = ADC_POWER | ADC_SPEEDHH| ADC_START | channel; /开始AD采集 573锁存相关程序unsigned char buffer8= ; /赋初值 /端口定义sbit cs1 = P27; /低电平时,数据锁存sbit cs2 = P26;sbit cs3 = P25;sbit cs4 = P24;sbit cs5 = P23;sbit cs6 = P22;sbit cs7 = P21;sbit cs8 = P20;#define DATA_573 P0 /573的数据端口/*显示缓存,上层需要使用*/*- 初始化 -*/void initial573()/SH_CP = 0;/ST_CP = 0;/DS = 0; /关闭所有灯cs1 = cs2 = cs3 = cs4 = cs5 = cs6 = cs7 = cs8 = 1; /输出锁存DATA_573 = 0x00;cs1 = cs2 = cs3 = cs4 = cs5 = cs6 = cs7 = cs8 = 0; /输出锁存/*- 发送数据 -*/*void send_data(unsigned char d)unsigned char i;for(i=0;i8;i+)DS = d&0x80; /发送最低位SH_CP = 1;SH_CP = 0; /移位寄存器移位d = d1; /数据移位 */*- 扫描数码管,供上层调用 -*/void xiansi()/*send_data(buffer0); /发送段选数据send_data(buffer1); /发送位选数据send_data(buffer2);send_data(buffer3);send_data(buffer4); /发送段选数据send_data(buffer5); /发送位选数据send_data(buffer6);send_data(buffer7);ST_CP=1;ST_CP=0; /更新锁存数据 */cs1 = 1; DATA_573 = buffer7; cs1 = 0; /cs2 = 1; DATA_573 = buffer6; cs2 = 0; /cs3 = 1; DATA_573 = buffer5; cs3 = 0; /cs4 = 1; DATA_573 = buffer4; cs4 = 0; /cs5 = 1; DATA_573 = buffer3; cs5 = 0; /cs6 = 1; DATA_573 = buffer2; cs6 = 0; /cs7 = 1; DATA_573 = buffer1; cs7 = 0; /cs8 = 1; DATA_573 = buffer0; cs8 = 0; /void xiansi1()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0; /更新锁存数据*/cs1 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs1 = 0; /cs2 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs2 = 0; /cs3 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs3 = 0; /cs4 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs4 = 0; /cs5 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs5 = 0; /cs6 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs6 = 0; /cs7 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs7 = 0; /cs8 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs8 = 0; /void hang1()/*send_data(0xff); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs1 = 0; /cs2 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs2 = 0; /cs3 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs3 = 0; /cs4 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs4 = 0; /cs5 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs5 = 0; /cs6 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs6 = 0; /cs7 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs7 = 0; /cs8 = 1; _nop_(); DATA_573 = 0xff; _nop_(); cs8 = 0; /void hang2()/*send_data(0x00); /发送段选数据send_data(0xff); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs1 = 0; /cs2 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs2 = 0; /cs3 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs3 = 0; /cs4 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs4 = 0; /cs5 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs5 = 0; /cs6 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs6 = 0; /cs7 = 1; _nop_(); DATA_573 = 0xff; _nop_(); cs7 = 0; /cs8 = 1; _nop_(); DATA_573 = 0x00; _nop_(); cs8 = 0; /void hang3()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0xff);send_data(0x00);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; DATA_573 = 0x00; cs1 = 0; /cs2 = 1; DATA_573 = 0x00; cs2 = 0; /cs3 = 1; DATA_573 = 0x00; cs3 = 0; /cs4 = 1; DATA_573 = 0x00; cs4 = 0; /cs5 = 1; DATA_573 = 0x00; cs5 = 0; /cs6 = 1; DATA_573 = 0xff; cs6 = 0; /cs7 = 1; DATA_573 = 0x00; cs7 = 0; /cs8 = 1; DATA_573 = 0x00; cs8 = 0; /void hang4()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0xff);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0; /更新锁存数据 */cs1 = 1; DATA_573 = 0x00; cs1 = 0; /cs2 = 1; DATA_573 = 0x00; cs2 = 0; /cs3 = 1; DATA_573 = 0x00; cs3 = 0; /cs4 = 1; DATA_573 = 0x00; cs4 = 0; /cs5 = 1; DATA_573 = 0xff; cs5 = 0; /cs6 = 1; DATA_573 = 0x00; cs6 = 0; /cs7 = 1; DATA_573 = 0x00; cs7 = 0; /cs8 = 1; DATA_573 = 0x00; cs8 = 0; /void hang5()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0xff); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; DATA_573 = 0x00; cs1 = 0; /cs2 = 1; DATA_573 = 0x00; cs2 = 0; /cs3 = 1; DATA_573 = 0x00; cs3 = 0; /cs4 = 1; DATA_573 = 0xff; cs4 = 0; /cs5 = 1; DATA_573 = 0x00; cs5 = 0; /cs6 = 1; DATA_573 = 0x00; cs6 = 0; /cs7 = 1; DATA_573 = 0x00; cs7 = 0; /cs8 = 1; DATA_573 = 0x00; cs8 = 0; /void hang6()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00); /发送段选数据send_data(0xff); /发送位选数据send_data(0x00);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; DATA_573 = 0x00; cs1 = 0; /cs2 = 1; DATA_573 = 0x00; cs2 = 0; /cs3 = 1; DATA_573 = 0xff; cs3 = 0; /cs4 = 1; DATA_573 = 0x00; cs4 = 0; /cs5 = 1; DATA_573 = 0x00; cs5 = 0; /cs6 = 1; DATA_573 = 0x00; cs6 = 0; /cs7 = 1; DATA_573 = 0x00; cs7 = 0; /cs8 = 1; DATA_573 = 0x00; cs8 = 0; /void hang7()/*send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0x00);send_data(0x00);send_data(0x00); /发送段选数据send_data(0x00); /发送位选数据send_data(0xff);send_data(0x00);ST_CP=1;ST_CP=0;*/ /更新锁存数据cs1 = 1; DATA_573 = 0x00; cs1 = 0; /cs2 = 1; DATA_573 = 0xff; cs2 = 0; /cs3 = 1; DATA_573 = 0x00; cs3 = 0; /cs4 = 1; DATA_573 = 0x00; cs4 = 0; /cs5 = 1; DATA_573 = 0x00; cs5 = 0; /cs6 = 1; DATA_573 = 0x00; cs6 = 0; /cs7 = 1; DATA_573 = 0x00; cs7 = 0; /cs8 = 1; DATA_573 = 0x00; cs8 = 0; /void hang8()/*send_data(0x00); /发送段选数据send
展开阅读全文
相关资源
相关搜索

最新文档


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


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

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


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