




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮安信息职业技术学院毕业设计论文绪论PAGE32PAGE33摘要PAGEII摘要系统以高速单片机STCF1132为核心,设计并制作了一个基于32×32点阵LED模块显示屏。该点阵可以实现扫描微亮和显示点亮两种工作模式,在扫描过程中通过自制光笔检测,获取行列坐标信息,实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能,并且通过按键可以实现不同功能之间的切换。同时还能够根据环境光强的变化,自动连续调节显示屏上显示的亮度。设计方案运用了4-16线译码器74HC154驱动点阵的行和列,通过单片机的控制实现各种显示功能,显示屏亮度的自动调节采用光敏电阻检测环境光强,通过A/D转换、D/A转换实现对显示亮度的自动调节。关键词:LED点阵单片机74HC154淮安信息职业技术学院毕业设计论文目录目录摘要 I目录 II第一章绪论 11.1课题来源 11.2设计任务及要求 1第二章系统方案设计 32.1.系统的总体设计 32.2各模块的设计。 32.2.1.核心控制模块的的设计 32.2.2.光笔设计 32.2.3.显示方案的设计 42.2.4.点阵显示模式设计 4第三章系统硬件设计 53.1光笔的设计 53.232×32LED点阵的连接 63.332×32LED点阵的驱动控制电路 73.4显示电路部分功能及原理 73.5键盘的使用及设计 83.6光照的检测与控制 9第四章系统软件设计 114.1主程序设计 114.2外中断0服务程序(坐标检测) 124.3.外中断1服务程序(按键处理) 134.4.LCM103驱动程序设计 13第五章系统测试与结果 155.1划亮反显擦除拖移的测试和结果 155.2屏亮自动调节测试和结果 155.3超时关显示节电测试和结果 15总结及展望 16致谢 17参考文献 18附录1总电原理图(单片机系统与点阵驱动电路) 19附录2总电原理图(32×32点阵连接电路) 20附录3源程序 21绪论PAGE20第一章绪论1.1课题来源本课题来源于全国大学生电子设计竞赛LED点阵书写显示屏,它是一种控制半导体发光二极管的显示装置,其主要功能是实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示。1.2设计任务及要求设计并制作一个基于32×32点阵LED模块的书写显示屏,其系统结构如图1-1所示。在控制器的管理下,LED点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下;当光笔触及LED点阵模块表面时,先由光笔检测触及位置处LED点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的LED是否点亮至人眼可见的显示状态,从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。控制器控制器32×32LED点阵模块光笔图1-1LED点阵书写显示屏系统结构示意图设计的最终要求是:在点亮功能下当光笔接触屏上某点LED时,能即时点亮该LED;在划亮功能下当光笔快速划过时,能同步点亮划过的各LED,其速度要求2S内能划过并点亮40点LED;在反显功能下能对屏上显示的信息实现反向显示;在屏幕擦除功能下能实现对屏上所显示信息整屏擦除;在笔画擦除功能下,能用光笔擦除屏上所显汉字的笔画;在连写多字功能下,能结合自选的擦除方式,在30S内以划亮方式写出四个汉字且存入机内;在对象拖移功能下,能用光笔将选定显示内容在屏上进行拖移,先用光笔以划亮方式在屏上圈定欲拖移显示对象,再用光笔将该对象拖移到屏上另一位置;当光强改变时,能自动连续调节屏上显示亮度;当光笔连续未接触屏面的时间超过1-5MIN时,自动关闭屏上显示,并使系统进入休眠模式。淮安信息职业技术学院毕业设计论文系统方案设计第二章系统方案设计2.1.系统的总体设计根据课题要求,LED点阵书写显示屏由主控模块,按键电路、LED点阵模块、光笔电路及LED点阵驱动显示等部分组成。系统框图如图2-1所示:按键按键MCU驱动电路LED点阵光笔检测LCD显示光强检测图2-1系统框图2.2各模块的设计。2.2.1.核心控制模块的的设计核心控制模块是系统的大脑,控制着系统的所有输入输出、计算、判断与决策。“LED点阵书写显示屏”检测精度要求高且数据存储容量大,选择适合的控制模块,能确保其快速是实现稳定及达到系统要求的基本条件。使用STC系列单片机,该系列单片机是高集成单片机,功能和性能都要比51系列强大很多。比如STC11F32是1T单片机,速度是AT89S51的12倍。而且内部集成了内置振荡器和复位,EEPROM、ADC、PWM、四态I/O接口。2.2.2.光笔设计光笔设计的关键是选择合适的传感器件,只有具有很高的灵敏度和一定的响应时间的传感器才能完成系统的要求及功能。方案一:采用核心部件为光敏电阻制成的光笔检测系统。光敏电阻是将光能转换为电能的一种传感器件,它是构成光电式传感器的主要部件。光敏电阻结构简单、使用方淮安信息职业技术学院毕业设计论文便、价格便宜,但经调试发现其响应时间长,不易检测。方案二:采用光敏二极管,与光敏电阻相比有较好的高频特性,具有一定的可靠性,功耗低.相比于光敏电阻而言灵敏度较差,需要较高倍数的放大器才能实现精准识别的效果。方案三:采用光敏三极管,其工作原理与光敏二极管相似。但光敏三极管除了具有光敏二极管能将光信号转换成电信号的功能外,还有对电信号放大的功能。所以其灵敏度更高,响应时间快。基于以上分析,我们采用光敏三极管作为光笔的检测部件。2.2.3.显示方案的设计采用LCD液晶显示器。LCD有明显的优点:微功耗、尺寸小,超薄轻巧、显示信息量大、字迹清晰、美观、视觉舒适。使整个控制系统更加人性化。采用LCM301液晶显示器,其是串行口显示,所需I/O口较少,节省了资源,焊接电路时也较为方便。2.2.4.点阵显示模式设计将点阵的驱动电源分为两路,一路为正常电压,另一路通过硬件电路调节恰好能使点阵处于微亮状态。结合软件实现点阵的显示模式的改变。这样节省了资源的同时,也节约了时间系统硬件设计第三章系统硬件设计3.1光笔的设计光笔用光电三极管3DU33型光敏三极管检测点阵屏发光的强弱变化电压信号,LM393为比较器。由于点阵的光强相对较弱,通过光电三极管的电流很小,通过串接硅二极管来提升光电三极管发射极电压,方便后级比较器作业,便于单片机检测信号。光笔原理图如下图3-1所示:图3-1光笔原理图在一空的笔壳内,将光敏三极管放置在笔壳底端,光敏三极管的引脚从一个与其直径等宽的空管引出至空管的顶部,并在其中一引脚中接一弹片,在接近的地方用铜片贯穿空管且正好卡在笔管的内部。与此同时,用一弹簧套在空管外部,并将其底不固定,这样,当笔管在点阵屏上上下抖动时,内部光敏三极管就能很好的检测了。其结构如图3-2所示:淮安信息职业技术学院毕业设计论文图3-2光笔的结构图3.232×32LED点阵的连接经分析要想得到32×32的点阵需要用16个共阳型8×8点阵(其引脚图如图3-3所示)来构建。其方法是将点阵对应的行线和列线分别进行连接,使每一条行线引脚接一行32个LED,列线也相同。图3-3LED点阵系统硬件设计3.332×32LED点阵的驱动控制电路32×32LED点阵的行信息控制用2片74HC154,构成5—32译码器,单片机口线控制其译码输出。列的微亮扫描、点亮也分别用2片74HC154,4个片选分别单独控制,微亮扫描(2.5V)、点亮(5V)电源分别通过三极管构成的开关加到点阵的列控制端。由于整屏显示是1024个灯循环亮,为提高显示亮度,限流电阻取51欧姆(取消也可以,但为了防止制作调试过程中烧坏LED灯,不取消为好),电路如图3-4所示。微亮扫描时流过LED的电流为:(2.5-1.8)/51=13.7mA点亮点阵时流过LED的电流为:(5-1.8)/51=62.7mA流过LED电流虽然比较大,但时间很短,因此不会烧坏LED灯。图3-4LED驱动电路3.4显示电路部分功能及原理为了满足系统在工作时能准确显示光笔对应亮点所处的行列坐标值,我们采用型号为LCM103的液晶显示器显示。LCM103为10位多功能通用型8段式液晶显示模块,内含看门狗时钟发生器2种频率的蜂鸣驱动电路内置显示RAM,可显示任意字段笔画划3-4线串行接口可与任何单片机接口。其接口应用模块如图3-5所示:引脚排列图如表3-1所示。淮安信息职业技术学院毕业设计论文引脚符号说明输入/输出1VDD正电源,必须接!输入2VLCDLCD屏工作电压调整,可调整视角对比度,必须接!。输入3/INTWDT/定时器输出,集电极开路输出,不用可不接。输出4LED不用输入5BZ压电陶瓷蜂鸣片驱动+极输出6/BZ压电陶瓷蜂鸣片驱动-极输出7/CS模块片选,内部上拉,必须接!输入8/RD模块数据读出控制线,内部上拉输入9/WR模块数据/指令写入控制线,内部上拉,必须接!输入10DATA数据输入/输出,内部上拉,必须接!输入/输出11VSS负电源,接地线,必须接!图3-5LCD接口应用模块表3-1LED接口引脚排列图注:B处焊盘为用户需降低功耗时外加32.768KHz晶体。A处两焊盘分别接VDD与VLCD。3.5键盘的使用及设计键盘是使用比较简单的独立式键盘,而且具有发光二极管指示功能模块。在程序中采用中断扫描的方式,在没有键操作时CPU执行正常程序,只在有键操作时才处理键盘程序。其电路如图3-6所示:系统硬件设计图3-6独立式键盘电路图按键功能:按键一:实现点亮等功能;按键二:修改休眠时间;按键三:实现多姿连写时的保存与回放;按键四:实现整屏擦除于休眠唤醒3.6光照的检测与控制经分析,想要实现当环境光强改变时能自动连续调节屏上显示亮度的要求,其关键是对点阵周围环境光照的检测与控制。我们通过硬件电路很好的完成了对光照的检测。基本原理是用LM358与光敏电阻够成一恒流源并于三极管的基极连接,当光敏电阻因光强的变化而改变其自身阻值时,三极管的基极电压也会随着变化。与其集电极连接的发光二极管的亮度也会伴随着改变,以此判断周围光强的变化。电路如图3-7所示:。图3-7光照检测电路系统软件设计淮安信息职业技术学院毕业设计论文第四章系统软件设计4.1主程序设计主程序包括系统初始化,点阵扫描控制,液晶显示,以及“反显”、“擦除”等功能下数据处理程序,流程图如图4-1所示。其中点阵扫描控制程序,微亮扫描控制由单片机口控制对以译码器的片选和地址输入,使点阵按行列有规律地循环点亮,由图3-3知点亮显示的列控制信息译码地址与微亮连接在一起,控制点亮的工作过程是通过判断点阵显示缓冲内容对应位的信息,控制其片选,当需要点亮时,控制片选有效,反之,控制片选无效,利用微亮扫描过程实现点亮控制。图4-1主程序框图图4-1主程序框图淮安信息职业技术学院毕业设计论文4.2外中断0服务程序(坐标检测)外中断0是作为光笔的检测使用,由图3-2知,光笔碰触显示屏过程中,遇到发光点输出翻转的跳变信号,送给单片机中断,作为中断的触发信号,由于中断程序优先执行,打断微亮扫描过程,在中断服务程序中根据此时的行列扫描的序号,就可判断光点的坐标,进而为其他功能的实现提供依据,流程图如图4-2所示图4-2图4-2中断程序框图系统软件设计4.3.外中断1服务程序(按键处理)外中断1为按键操作处理程序,如图4-3所示:图4-3外中断1服务程序框图4.4.LCM103驱动程序设计LCM103采用的是串行接口,所有数据都是在脉冲的作用下一位一位按顺序写入模块内部,由时序图知数据线上信息是在脉冲上升沿写入。写命令的数据格式是12位,单个写数据的格式是13位,写数据也可以连续写,由于每个字位占用内部3个RAM空间存放字段码,因此写数据采用连续写方式比较好。在数据连续写格式中,前面9位为模式位和模块内部RAM的起始地址,后面数据格式是每3位加1个0,取三个一组构成一个字位的信息,也是12位,这样就可以将所有写操作(命令和数据)分为写9位信息和写12位信息两个功能程序。显示字段的排列方式与LED数码管一致,每位字段编码由8段构成(显示RAM淮安信息职业技术学院毕业设计论文笔画表),占用连续的3个地址空间,但在写入格式中每个数据是4位,编写字符的字段码时要给每个数据后加0,0~9显示字符的字段码如表4-1所示。表4-10~9显示字符的字段码字符二进制十六进制D0D1D2D3D0D1D2D3D0D1D2D3010000110111086EH1100000100000820H21000110010108CAH31000111000108E2H41000101001008A4H50000111001100e6H60000111011100EEH7100001100000860H81000111011108EEH91000111001108E6H地址低→高在写数据送显示之前,先按照初始化步骤进行初始化,然后写数据,程序见附录。系统测试与结果第五章系统测试与结果5.1划亮反显擦除拖移的测试和结果各模块均调通,将调好的模块连在一起,加上5v电压源,启动进行系统初始化。按键进入点亮模式,用光电笔在LED点阵书写显示屏上接触,可以看到接触的点点亮,LCD上显示亮点的精确坐标。用光笔快速的在书写显示屏上划过,发现划过的地方变亮,多次操作都能实现。再次按键,进入反显模式,光笔划过,发现经过的地方没有亮其他的部分高亮,反显测试正常。再次按键进入擦除模式,用光笔在屏幕上划过,显示屏亮的地方变暗了。再按一次键可以看到整屏由亮变暗,实现了擦除这一功能。最后进入多字连写模式和区域拖动模式用光笔在LED点阵显示屏上写四个字,最后在屏上循环显示。最后对写的字用笔圈起来可以用笔移动。实现了对象拖移功能。经过反复的测试,所有的功能都能很好的实现,系统正常。5.2屏亮自动调节测试和结果外部光环境人为地改变后,测试LED点阵书写显示屏的亮度是否发生变化如果发生变化,则表明能够自动调节,结果屏亮随外部环境的变化而改变,系统正常。5.3超时关显示节电测试和结果加5v电压启动系统,对系统初始化。设定待机关显示的时间,在测试点接入万用表,不进行任何操作到设定的时间,看显示屏是否自动关闭。结果书写显示屏自动关闭,电路板测试点上的电流小于5mA。表明测试正常,完成系统要求。总结及展望总结及展望本作品完成了题目的基本要求和发挥部分的全部要求,系统性能良好。通过对作品的各项进行了优化,使系统的性能有了提高。应用74HC154译码器设计32×32点阵的行列驱动控制信号,扫描速度满足设计要求。 虽然这次设计满足了课题的要求,但在很多方面都有许多的不足,还不能满足正常的书写需求,但在设计的过程中提高了自己学习思考的能力,让自己能更好的去面对未来的工作。致谢致谢通过这次毕业设计,综合的应用并学习了自己的专业知识,得到了许多平时很难道道的知识及经验。在设计的过程中我得到了很多其他老师和同学的帮助,从人才完成了这次设计。在本论文的写作过程中,我的导师徐江海老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。参考文献参考文献[1]周航慈,周立功,朱旻等.PHILIPS51LPC系列单片机原理及应用设计[M].北京:北京航空航天大学出版社,2001.[2]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1999淮安信息职业技术学院毕业设计论文附录附录附录1总电原理图(单片机系统与点阵驱动电路)淮安信息职业技术学院毕业设计论文附录2总电原理图(32×32点阵连接电路)附录3源程序#include"reg52.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintsbitcs103=P1^0;//液晶sbitwr103=P1^1;//液晶sbitda103=P1^2;//液晶sbitcsH=P2^6; //sbitp14=P1^4;sbitp15=P1^5;sbitp16=P1^6;sbitp17=P1^7;uintidatazb[32][2]={0};//点亮存储单元uintxdatazb1[32][2]={0};//第一个字存储uintxdatazb2[32][2]={0};//第二个字存储uintxdatazb3[32][2]={0};//第三个字存储uintxdatazb4[32][2]={0};//第四个字存储ucharxsdy0=2; //显示缓冲,低位ucharxsdy1=1;ucharxsdy2=11;ucharxsdy3=3;ucharxsdy4=10;ucharxsdy5=5;ucharxsdy6=6;ucharxsdy7=11;ucharxsdy8=8;ucharxsdy9=9; //显示缓冲,高位ucharhsmcs=0;//行扫描控制ucharlsmcs=0;//列扫描控制ucharp0hc;//P0缓冲ucharp2hc;//P2缓冲bitbxzb=0;//bitbhzl=0;bitblzl=0;//bitf_x_flag;//反显状态标志bitzp_cc_flag;//整屏擦除状态标志bitbh_cc_flag;//笔画擦除标志bitlz_dx_flag;//连字多写标志bitshijiang_flag;//时间设置标志bitxz_bc_flag;//写字保存标志bithx_flag;//唤醒标志bitxm_flag;//休眠bityjxs_flag;ucharjs_5ms;ucharjs_s;ucharjs_fen;ucharjs_fen_set=5;ucharclzl=0;uintdlzbw;//点亮坐标位uintdlzbw1;//点亮坐标位缓冲ucharz_t=0;//显示方式状态ucharxzgs;//写字个数ucharxs_s;//字符显示时间ucharxs_weishu;sfrAUXR=0x8e;//扩展RAM的SFRuintcodelcd[]=//字段编码{0x86e0,0x8200,0x8ca0,0x8e20,0x8a40,0x0e60,0x0ee0,0x8600,0x8ee0,0x8e60,0x0000,0x0800};//0123456789空-voiddelay(uintx)//12MHZ晶振延时Xms的子函数{uinty=0;while(x>0){ while(y<1000)y++; x--;}}voiddel()//延时函数{ucharj;for(j=0;j<10;j++);}voidwrite12(intdata1)//液晶写12位数据{uchari;for(i=0;i<12;i++){wr103=0;//wr=0if((data1&0x8000)!=0){//最高位为1da103=1;//输出1}else{//最高位为0da103=0;//输出0}del();wr103=1;//上升沿del();data1<<=1;//数据整体左移1位}}voidwrite9(intdata1)//液晶写9位数据{uchari;for(i=0;i<9;i++){wr103=0;//wr=0if((data1&0x8000)!=0){//最高位为1da103=1;//输出1}else{//最高位为0da103=0;//输出0}del();wr103=1;//上升沿del();data1<<=1;//数据整体左移1位}}voidyjcsh()//液晶初始化{uintk;for(k=0;k<2000;k++);cs103=0;//cs=0del();write12(0x8480);//定义模块del();cs103=1;//cs=1del();cs103=0;//cs=0del();write12(0x8300);//定义内部振荡方式del();cs103=1;//cs=1del();cs103=0;//cs=0del();write12(0x8020);//开振荡器del();cs103=1;//cs=1del();cs103=0;//cs=0del();write12(0x8060);//开显示器del();cs103=1;//cs=1}voidyjxs()//液晶显示{cs103=0;//cs=0del();write9(0xa000);//连续写,从地址00000开始write12(lcd[js_s%10]);write12(lcd[js_s/10]);write12(lcd[xsdy2]);write12(lcd[js_fen]);write12(lcd[xsdy4]);write12(lcd[xsdy5]);write12(lcd[xsdy6]);write12(lcd[xsdy7]);write12(lcd[xsdy8]);write12(lcd[xsdy9]);del();cs103=1;//cs=1,写结束}voiddel1() //扫描延时函数{ucharj;for(j=0;j<30;j++);}voidlsm()//列扫描函数{uchar j;dlzbw=0x0001;lsmcs=0; //列次数初值p0hc=p0hc&0xf0;//p0缓冲低4位清0 p0hc=p0hc|lsmcs;//p0缓冲添列信息 P0=p0hc;//微亮输出列for(j=0;j<16;j++){//zb[hsmcs]//点亮信息if(bhzl){ dlzbw1=zb[hsmcs+16][clzl]&dlzbw;}else{ dlzbw1=zb[hsmcs][clzl]&dlzbw;}if(dlzbw1==0){//不亮p0hc=p0hc|0xc0;}else{//点亮if(bhzl){//高p0hc=p0hc|0x40;p0hc=p0hc&0x7f;}else{//低p0hc=p0hc|0x80;p0hc=p0hc&0xbf;}}p0hc=p0hc&0xf0;//p0缓冲低4位清0 p0hc=p0hc|lsmcs;//p0缓冲添列信息 P0=p0hc;//微亮输出列 del1(); //亮延时lsmcs++;dlzbw=_irol_(dlzbw,1);//左移1位}lsmcs=15;p0hc=p0hc&0xf0;//p0缓冲低4位清0 p0hc=p0hc|lsmcs;//p0缓冲添列信息 P0=p0hc;//微亮输出列}voiddzsm(){uchar k;p0hc=p0hc|0x20; ////微亮片选低位p0hc=p0hc&0xef; ////微亮片选低位P0=p0hc;bhzl=0;//行小于16hsmcs=0; //行次数初值for(k=0;k<16;k++){//行循环16次0~15行blzl=0;//列小于16clzl=0;p2hc=p2hc&0xbf; //p26p2hc=p2hc&0xf0;//p2hc=p2hc|hsmcs;//p0缓冲添列信息P2=p2hc;//微亮输出列lsm();//调列扫描函数blzl=1;////列大于16clzl=1;p2hc=p2hc|0x40; //p26p2hc=p2hc|hsmcs;//p0缓冲添列信息P2=p2hc;//微亮输出列lsm();//调列扫描函数hsmcs++;}p0hc=p0hc|0x10; ////微亮片选低位p0hc=p0hc&0xdf; ////微亮片选低位P0=p0hc;bhzl=1;//行大于16hsmcs=0; //行次数初值for(k=0;k<16;k++){//行循环16次16~31行blzl=0;//列小于16clzl=0;p2hc=p2hc&0xbf; //p26p2hc=p2hc&0xf0;//p2hc=p2hc|hsmcs;//p0缓冲添列信息P2=p2hc;//微亮输出列lsm();blzl=1;//列大于16clzl=1;p2hc=p2hc|0x40; //p26p2hc=p2hc|hsmcs;//p0缓冲添列信息P2=p2hc;//微亮输出列lsm();hsmcs++;}}voidzbhs()interrupt0//坐标显示{uintzbw;//坐标位初值xm_flag=0;js_s=0;js_5ms=0;js_fen=js_fen_set;if(bxzb==0){zbw=1;////坐标位初值=1zbw=_irol_(zbw,lsmcs);//左移到当前列位if(bh_cc_flag){//笔画反显 //bh_cc_flag=0;zbw=~zbw;//坐标对于与0if(bhzl){if(blzl){ zb[hsmcs+16][1]=zb[hsmcs+16][1]&zbw;//行大于16列大于16} else{ zb[hsmcs+16][0]=zb[hsmcs+16][0]&zbw;//行大于16列小于16 }}else{//if(blzl){ zb[hsmcs][1]=zb[hsmcs][1]&zbw;//行小于16列大于16} else{ zb[hsmcs][0]=zb[hsmcs][0]&zbw;//行小于16列小于16 }}}else{//点亮对于坐标位if(bhzl){if(blzl){// zb[hsmcs+16][1]=zb[hsmcs+16][1]|zbw;//行大于16列大于16} else{ zb[hsmcs+16][0]=zb[hsmcs+16][0]|zbw;//行大于16列小于16 }}else{//if(blzl){ zb[hsmcs][1]=zb[hsmcs][1]|zbw;//行小于16列大于16} else{ zb[hsmcs][0]=zb[hsmcs][0]|zbw;//行小于16列小于16 }}}if(bhzl){hsmcs=hsmcs+16;}//行大于16if(blzl){lsmcs=lsmcs+16;}//列大于16xsdy9=hsmcs/10;//坐标计算送显示xsdy8=hsmcs%10; xsdy6=lsmcs/10; xsdy5=lsmcs%10;} bxzb=1;//坐标显示标志}voidtimer0()interrupt1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;js_5ms++;if(js_5ms==200){ js_5ms=0;yjxs_flag=1;xs_s++;if(xs_s==3){xs_s=0;xs_weishu++;if(xs_weishu==5){xs_weishu=0;}}if(js_s)//秒倒计时{js_s--;}else{if(js_fen)//分倒计时{js_fen--;js_s=59;}else{ xm_flag=1;//倒计时结束,进入休眠}}}}voidanjian()interrupt2//按键{p14=1;p15=1;p16=1;p17=1;//按键输入口置1if(p14==0){//状态切换 z_t++;//if(z_t==1){ f_x_flag=1;//反显状态bh_cc_flag=0;}if(z_t==2){bh_cc_flag=1;//笔画擦除zb[0][0]=0x0000|0x0008;}if(z_t==3){lz_dx_flag=1;//连字多写zb[0][0]=0x0000|0x0210;bh_cc_flag=0;}if(z_t>=6){z_t=0;}}if(p15==0){bh_cc_flag=0;shijiang_flag=1;//时间设置}if(p16==0){//写字保存xz_bc_flag=1;bh_cc_flag=0;}if(p17==0){ //hx_flag=1;//唤醒zp_cc_flag=1;//整屏擦除状态bh_cc_flag=0;}}/*************************************/voidkey(){ucharm;if(f_x_flag){//反显状态f_x_flag=0;lz_dx_flag=0; zb[0][0]=0x0000|0x0004;zb[0][1]=~zb[0][1];for(m=1;m<32;m++){zb[m][0]=~zb[m][0];zb[m][1]=~zb[m][1];}}if(zp_cc_flag){//整屏擦除状态lz_dx_flag=0; zp_cc_flag=0; zb[0][0]=0x0000|0x0002;zb[0][1]=0;for(m=1;m<32;m++){zb[m][0]=0;zb[m][1]=0;}}if(shijiang_flag){//shijiang_flag=0;lz_dx_flag=0;zb[0][0]=0x0000|0x0040;//时间设置js_fen++;if(js_fen==6){ js_fen=1;}js_fen_set=js_fen;js_s=0;yjxs();}if(xz_bc_flag){//写字保存 xz_bc_flag=0;xzgs++;if(xzgs==1){for(m=0;m<32;m++){zb1[m][0]=zb[m][0];zb1[m][1]=zb[m][1];}}if(xzgs==2){for(m=0;m<32;m++){zb2[m][0]=zb[m][0];zb2[m][1]=zb[m][1];}}if(xzgs==3){for(m=0;m<32;m++){zb3[m][0]=zb[m][0];zb3[m][1]=zb[m][1];}}if(xzgs==4){for(m=0;m<32;m++){zb4[m][0]=zb[m][0];zb4[m][1]=zb[m][1];}}if(xzgs==5){xzgs=0;//定时器T0轮流显示四个字}}if(hx_flag)//唤醒{lz_dx_flag=0; hx_flag=0;xm_flag=0;js_s=0;js_5ms=0;js_fen=js_fen_set;////控制继电器//送显示}}voidxianshi_zf(){uchars;if(lz_dx_flag){if(xs_weishu==1){for(s=0;s<32;s++){zb[s][0]=zb1[s][0];zb[s][1]=zb1[s][1];}}if(xs_weishu==2){for(s=0;s<32;s++){zb[s][0]=zb2[s][0];zb[s][1]=zb2[s][1];}}if(xs_weishu==3){for(s=0;s<32;s++){zb[s][0]=zb3[s][0];zb[s][1]=zb3[s][1];}}if(xs_weishu==4){for(s=0;s<32;s++){zb[s][0]=zb4[s][0];zb[s][1]=zb4[s][1];}}}}voidmain(){AUXR=0x00;//XRAM位清0,访问内部扩展的XRAMIT0=1;EX0=1;IT1=1;EX1=1;EA=1;TR0=1;ET0=1;TMOD=0x11;//T0方式1TH0=(65536-5000)/256;//50msTL0=(65536-5000)%256;//50msp0hc=0xf0;//p0缓冲lie片选无效p2hc=0;//p2缓冲zb[0][0]=0x0000|0x0002;//对应指示灯亮P2=p2hc; //控制0行,片选低位有效P0=p0hc; //控制0列js_fen=js_fen_set;//倒计时设定值yjcsh();//液晶初始化yjxs();//液晶显示while(1){dzsm();//点阵扫描if(bxzb){//液晶显示 bxzb=0; yjxs();}if(yjxs_flag){//液晶显示 yjxs_flag=0; yjxs();}key();//按键功能操作xianshi_zf();基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园防盗安全知识培训课件
- 新测绘法试题及答案
- 校园安防消防知识培训课件
- 防腐廉洁面试题及答案
- 编导运营面试题及答案
- 报账员考试题及答案
- 球馆分级考试题及答案
- 流管员面试题及答案
- 方程运算面试题及答案
- 2025年福建福州工会招聘工会社会工作者考试笔试试题(含答案)
- 2025年贵州省存量房买卖合同
- 2024-2025学年湖北省武汉市高一上学期1月期末考试英语试题(解析版)
- 复印打字服务协议书
- 2025 年全国保密教育线上培训考试测试卷及答案
- 村医依法执业培训
- 马工程西方经济学(精要本第三版)教案
- 保育师项目附件
- 电信装维人员服务规范
- 2025年安徽宣城市宣州区国有资本运营集团招聘笔试参考题库附带答案详解
- 2025年教师招聘考试教育法律法规高分题库及答案(共101题)
- 2025年水文勘测工(中级)职业技能考试题(附答案)
评论
0/150
提交评论