移动式广告牌的设计

上传人:仙*** 文档编号:34778781 上传时间:2021-10-23 格式:DOC 页数:27 大小:204KB
返回 下载 相关 举报
移动式广告牌的设计_第1页
第1页 / 共27页
移动式广告牌的设计_第2页
第2页 / 共27页
移动式广告牌的设计_第3页
第3页 / 共27页
点击查看更多>>
资源描述
1.概 述此次我们进行的课程设计的题目是移动式广告牌的设计。这个设计就大的方面可以分成两个部分:硬件设计和软件设计。硬件设计:在硬件设计里,主要牵扯到芯片的应用问题。此次设计主要的芯片有扩展8031,74LS373,8279,74LS240,74LS273,8255等芯片。设计要求用8255PC口接单色灯,PB口接彩色灯,PA口接开关控制系统的启动、停止和复位。软件设计:在软件设计里主要又三个大的子程序和四个小的子程序,三个大的子程序为:广告语显示程序、灯变化程序和中断程序。四个小的子程序分别为启动、停止、复位和延时程序。广告语显示程序要求字符从右往左一次移入,相间1秒。灯变化程序要求彩灯按逆时针依次点亮红黄绿白各0.3秒,单色灯变化自定。启动、停止和复位程序要求启动后先显示0.5秒的黄灯,然后彩色灯、单色灯再按自定义方式变化,系统停止后立即黑屏、熄灯。中断程序要求影响灯变。延时程序要求获取灯饰变化所需要的时间。2.控制系统硬件设计在此次课程设计里,需要扩展8031,74LS373,8279,74LS240,74LS273,8255等芯片。设计要求用8255PC口接单色灯,PB口接彩色灯,PA口接开关控制系统的启动、停止和复位。扩张外部影响中断。2.1爱迪克试验机简介艾迪克单片机试验开发系统AEDK5196ET,是由试验机结合仿真技术开发而成。支持MCS-51系列和MCS-96系列微控制的试验与仿真开发。该试验系统自带一个21按键键盘、八位八段数码管显示器、8031和8096(80C196)微控制器、RS-232接口,可以连接PC机,实现穿行监控运行,也无需其他设备而独立运行。2.2显示器接口芯片8279简介8279是键盘、显示器管理专用接口芯片,可以对显示器和键盘进行自动扫描。这样可以大大的减少CPU的任务,节省系统资源。本系统采用的Intel公司生产的8279。共有40个引脚,D0D7为数据总线,与单片机的P0口连接,用于数据、命令等的传送。显示器的控制有字形控制和字位控制两种。其中显示字符的字形码从OUTA3OUTA0和0UTB3OUTB0输出,与显示器的断选a、b、c、d、e、f、g、dp连接,形成各种字符;显示器的位选信号由扫描输出线SL3SL0经外部译码获得。CS和A0构成8279的端口地址,CS和A0构成8279的端口地址,接单片机的地址线,其中A0接单片机的A1、CS接地,当A0=0、CS=0的时候,CPU将访问8279的数据口,当A0=1、CS=0的时候,CPU将访问8279的控制口,因此,8279的数据口地址为0FF80H,命令/状态口地址为0FF82H。用8279管理显示器当显示输出时,它有128位显示RAM,其内容可以用8段发光二极管组合显示。8279芯片管脚分布如图3-1所示:40393837363534333231302928272625242322211234567891011121314151617181920VccRL1RL0CNTL/STBSHIFTSL3SL2SL1SL0OUTB0OUTB1OUTB2OUTB3OUTA0OUTA1OUTA2OUTA3BDCSA0RL2RL3CLKIRQRL4RL5RL6RL7RESETRDWRD0D1D2D3D4D5D6D7GND图3-1 8279芯片管脚分布图2.3芯片8255简介8255是通用可编程并行接口芯片,为40脚双列直插式封装型,片内又3个8为并行I/O口,分别成为PA口(PA7-PA0),PB(PB7-PB0),PC(PC7-PC0),其中PC口又分为高4为口(PC4-PC7)和低4为口(PC3-PC0),通过编程可设三种工作模式。其引脚排列如图3.2所示。数据端A口,B口,C口均为8为,可编程选择为输入或输出。端口C也可编程为两个4位的端口来用,在具体结构上三者略又区别:A口输入/输出均有锁存器,而B口和C口具有输出锁存器,输入无锁存器,又缓冲器。数据总线缓冲器用于和单片机的数据总线(P0)连接,传送数据和控制命令。内部控制电路分为A组和B组,A组控制A口和C口的高4位,B组控制B口和C口的低四位,控制电路的工作受控于控制寄存器。8279芯片管脚分布如图3-2所示。40393837363534333231302928272625242322211234567891011121314151617181920PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2图3-2 8255芯片管脚分布图8255片内又1个8位控制寄存器,由写入的控制字决定8255工作方式,其中D7位表示该控制字是设定工作模式(D7=1)还是设定C口任何一位置1置0(D7=0).设定工作模式的控制字如图3-3所示,C口置复位的控制在格式如图3-4所示:D7D6D5D4D3D2D1D0PC0-PC3设置位,控制字标志位,1=方式字 1=输入;0=输出 A组设置位,00=方式0; PB口置置位,1=输入;0=输出01=方式1;1X=方式2 B组设置位,0=方式0;1=方式1PA口设置位,1=输入,0=输出 PC4-PC7设置位,1=输出;0=输入图3-3 8255控制字格式D7D6D5D4D3D2D1D0 PC3设状态置位,1=输入;0=输出 不用位 PC口引脚编程:PC0=000;PC1=001 控制字标志位 PC2=002; PC3=003; PC4=004 0=PC方式字 PC5=005; PC6=006; PC7=007 图3-4 8255PC口控制字格式2.4灯饰变化程序硬件设计综合分析设计任务书,灯变化程序硬件接线图如图3-5所示:图3-5 灯变化程序硬件接线图3.控制系统软件设计此次课程设计在软件设计部分,主要又三个大的子程序和四个小的子程序,三个大的子程序为:广告语显示程序、灯变化程序和中断程序。四个小的子程序分别为启动、停止、复位和延时程序。广告语显示程序、启动、复位和停止程序又同组其他同学负责。其余子程序设计如下:3.1单色灯变化子程序设计单色灯在此次设计里没有严格的要求,所有显示方式都自定,这就给了自己一个更广阔的施展空间。控制口为8255的PC口,地址为8404。单色灯的设计主要有两种方式,分别为逻辑是设计和数表式设计,下面一一做以介绍:3.1.1单色灯的排列:根据系统的硬件设计,单色灯的排列如图3-6所示:DL1 DL2 DL3 DL4 DL5 DL6 DL7 DL8 图3-6 单色灯的排列3.1.2单色灯子程序设计一(逻辑式设计)在此次课程设计中对单色灯的要求不是很严格,基本都是自定义。在系统总程序的初始化中对单色灯的控制单元31H复初值为AAH,也就是说在程序刚开始执行时,单色灯的显示为:1、3、5和7号灯亮,其他的灯灭。设计要求下一步亮的灯灭,灭的灯亮,故需用逻辑设计的话需用到求反语句(CPL)。单色灯显示的子程序如下:DSD:MOVDPTR,#8404H ;指向8255的PC口MOV A,31H ;将31H的地址给A( MOV 31H,#55H)MOVX DPTR,A CPLA ;对A取反MOV31H,A RET显示效果如图3-7所示:图3-7 单色灯的显示效果图3.1.4单色灯子程序设计二(调用数表式设计)这是此次课程设计关于单色灯的一个延展。单色灯的设计除了逻辑式,还又调用数表式的设计。调用数表就是把把个单色灯按顺序排列,写出一个循环的显示控制字。这种设计起始比前一种设计方式麻烦,而且容易出错,但原理很简单,具体的子程序如下:DSD:MOVDPTR,#8404H ;指向8255的PC口MOVA,R7 MOVDPTR,#TAB ;调用数表TABMOVCA,A+DPTR MOV31H,A RET就不同的显示方式,其数表都是不同的,现列几种显示方式和相对应的数表,以供参考。具体如下:一、数表设计1: 显示方式:从两端开始依次向中间亮灯,到中间相遇时再想两边返回,每次两两盏灯,其他的灯灭。数表:TAB: DB 81H,42H,24H,18H,24H,42H,81H二、数表设计2: 显示方式:从左至由依次亮灯,每次亮一盏灯,其他的灯灭。数表:TAB: DB 80H,60H,40H,10H,08H,06H,04H,01H三、数表设计3: 显示方式:第一次亮LD1,第二次亮LD1和LD2,第三次亮LD1、LD2和LD3,依此类推,直到全亮再返回。数表:TAB: DB 80H,0B0H,0E0H,0F0H,0F8H,0FBH,0FEH,0FFH3.2彩色灯变化子程序设计彩色灯在此次课程设计里要求较复杂,彩色灯的控制口为8255芯片的PB口,地址为8402.要求启动后先显示0.5秒的黄灯,接着彩灯按逆时针依次点亮红黄绿白各0.3秒。显而易见,后部分要求是彩色灯的循环程序,如同单色灯的设计一样,在彩色灯的设计中也用到了逻辑式设计和数表式设计两种设计方式。3.2.1彩色灯的排列如下:根据系统的硬件设计,合理利用艾迪克单片机试验开发系统AEDK5196ET的试验平台,彩色灯的排列如图3-8所示:HL1HL3HL4HL2图3-8 彩色灯的排列图3.2.2彩色灯颜色的控制信号:在彩色灯的控制设计中,彩色灯灯色的控制是个很重要的环节。规定0为亮1为灭,先列个灯色的控制信号表3-1所示:表3-1 彩色灯灯色的控制信号信号红绿黄白DGi1001SRi01013.2.3彩色灯的控制字如下:在彩灯的设计种,彩色灯的控制字是所有编程的基础。根据系统硬件的设计和彩色灯的空间排列,现编制彩色灯的控制字如表3-2所示,以供后续设计的需要。表3-2 彩色灯控制字表彩色灯运行状态HL1HL2HL4HL3控制字DR1DG1DR2DG2DR4DG4DR3DG3状态01红2黄3绿4白010010114BH状态11白2红3黄4绿11010010D2H状态21绿2白3红4黄10110100B4H状态31、4红2、3绿0110011066H状态41、4绿2、3红1001100199H状态51、4黄2、3白0011001133H状态61、4白2、3黄11001100CCH3.2.4彩色灯子程序设计一(逻辑式设计)此次课程设计要求彩灯按逆时针依次点亮红黄绿白各0.3秒。这就需要对彩色灯在程序初始化里定义30H的值为4BH,根据表3-2分析可得,这种循环关系是将彩色灯的控制字左移两位,及用到了左移指令RL.另外还需调用延时程序,对R2给立即数3,及满足了延时0.3秒的要求。具体的子程序如下:CSD:MOVDPTR,#8402H ;指向8255的PC口MOVA,30HMOVXDPTR,ARLA ;左移RLAMOV30H,AMOVR2,#3 ;给R2赋值LCALLDELAY ;调用延时子程序RET ;返回显示效果如图3-8所示: HL1HL3HL4HL2 HL1HL3HL4HL2 HL1HL3HL4HL2 HL1HL3HL4HL2HL1HL3HL4HL2图3-8 彩色灯的显示效果图3.2.5彩色灯子程序设计二(调用数表式设计)如同单色灯的设计,彩色灯的设计同样可以用调用数表的方式设计。这种设计方式的弊端是彩色灯控制字的计算比较麻烦而且容易出错,优点在于设计的原理简单,容易接受。在灯显示效果较复杂的设计里用此方法比较简便。具体的设计子程序如下:CSD:MOVDPTR,#8402H ;指向8255的PC口MOVR7,#0 MOVA,R7MOVDPTR,#TAB ;调用数表MOVCA,A+DPTRMOV30H,AMOVR2,#3 ;给R2赋值LCALLDELAY ;调用延时子程序RET ;返回TAB: DB 66H,99H,33H,0CCH,33H,99H,66H显示效果如图3-9所示:HL1HL3HL4HL2HL1HL3HL4HL2HL1HL3HL4HL2 HL1HL3HL4HL2HL1HL3HL4HL2HL1HL3HL4HL2图3-9 彩色灯的显示效果图3.3 8279初始化子程序设计8279作为显示器接口芯片,在整个系统中的作用非常的重要,8279的初始化也极为重要。在此次课程设计里对8279的初始化,主要用到了三部分:置8279的工作方式字,置键盘扫描速率字,置清楚LED显示字。故需在系统程序的初始化里对这三部分初始化。依次为10H,2FH,C1H。为了显示的需要,需要调用延时程序。具体子程序设计如下:INIT8279:MOVDPTR,#Z8279MOVA,#LEDMOD;置8279工作方式字MOVX DPTR,AMOVA,#LEDFEQ;置键盘扫描速率字MOVX DPTR,AMOV A,#LEDCLS;置清除LED显示字MOVX DPTR,AMOV R2,#1LCALL DELAYRET3.4 8255初始化子程序设计如同8279的初始化一样,8255的初始化同样重要。需对8255置工作方式字,不同于8279初始化的是,因为设计要求8255的PB口控制彩色灯,PC口控制单色灯,故需在8255的初始化中对PB和PC口进行初始化,具体子程序如下:INIT8255:MOV DPTR,#8406H MOV A,#90H MOVX DPTR,A;置8255工作方式字 MOV DPTR,#8402H MOV A,#0FFH MOVX DPTR,A;初始化PB口 MOV DPTR,#8404H MOV A,#0H MOVX DPTR,A;初始化PC口 RET3.5 延时子程序设计延时程序在系统总程序中的作用也不可忽视。因为系统程序的需要,需对延时前做现场保护。设定R1为外层循环计数器,初值为00H,R0为内层循环计数器,初值为B2H.设定R2为循环计数器,当然,循环程序结束是需对现场进行恢复。具体延时子程序如下:DELAY:PUSH1;保护现场PUSH0DELAY1: MOVR1,#00H ;延时,外层循环计数初值DELAY2: MOVR0,#0B2H ;内层循环计数初值DJNZR0,$DJNZR1,DELAY2DJNZR2,DELAY1POP0;恢复现场POP1RET3.6 中断子程序设计此次课程设计要求外部中断影响灯变,故在设计中,只要求中断控制灯变,而不显示程序将会暂停,引入的中断信号为P3.2.在系统的初始化程序里,需对中断程序定义,并设定地址区间(设为0030H),接着必须设定外部中断源,和中断信号的触发,此程序里设定用低电平触发。子程序的设计当让也要保护现场。因为中断只影响灯变,故在中断子程序里需设置彩色灯和单色灯的显示程序,切不可和前面的显示效果相同,在此中断设计里,灯的显示设计将用第二种显示设计方式设计,即用调用数表的方式设计。具体设计如下:3.6.1中断子程序设计流程图根据设计的要求和设计硬件的设计需要,中断子程序的设计流程图如图3-10所示:开返回始保护现场偏移量R70显示单色灯延时修正偏移量T7+1R7-1=0P3.2=0?恢复现场开始返回YYNN图3-10 中断子程序流程图3.6.2中断子程序设计源程序根据设计的要求和硬件设计的情况,参照设计流程图,中断子程序的具体设计如下所示:INT0:PUSHDPL;保护现场PUSHDPHPUSHACCPUSH7PUSH 2PUSH 0PUSH 1NEXT:MOVR7,#0TT:MOVA,R7MOVDPTR,#TAB1;置单色灯数表起始位置MOVCA,A+DPTRMOVDPTR,#8404HMOVXDPTR,A;单色灯开始执行MOVA,R7MOVDPTR,#TAB2;置彩色灯数表起始位置MOVCA,A+DPTRMOVDPTR,#8402HMOVXDPTR,A;彩色灯开始执行MOVR2,#3;延时LCALLDELAYINCR7CJNER7,#7,TT;判断是否到第7位JNBP3.2,NEXT;判断是否执行中断POP1;恢复现场POP0POP2POP7POPACCPOPDPHPOPDPLRETI5.控制系统调试在灯的显示程序调试过程种出现的问题不是很多,但还是或多或少的出现了这样那样的问题,具体问题及解决方案如下:问题一、彩灯的显示混乱检查了程序,确定程序的逻辑关系没有问题,后来突然发现,在程序的初始化时对彩灯的控制字的赋值不正确,这主要是由于对彩灯控制字的顺序没又搞明白。起始显示状态按彩灯从1至4依次为红黄绿白四色,刚开是赋值为95H,经过计算后发现赋值应为4BH.问题二、彩灯的显示仍然混乱检查程序,确定程序的逻辑关系和赋值没有错的前提下,问题肯定就出在硬件连线或者芯片问题上。检查发现,8255的PB口控制先没有接正确。正确的接线应该为表5-1所示:表5-1 8255PB口和74LS240接线口的对应表8255PB口PB0PB1PB2PB3PB4PB5PB6PB774LS240DGQDR1DG2DR2DG4DR4DG3DR3问题三、彩灯的变化不按要求循环 任务要求彩灯先显示0.5秒的黄色灯,然后各彩灯按逆时针依次点亮红黄绿白各0.3秒。但是显示的结果是按顺时针显示,分析问题应该出在彩灯的子程序。检查彩灯的子程序发现,在子程序里应用了右移指令RR,检验发现应该为左移,并应该使用两次左移指令RL.6. 心得体会为期两个星期的单片机接口技术课程设计终于画上了句号,说实在的好累,但充实的两个星期还是让我学到了很多东西。大四的学生,课程设计对我们来说并不是什么新鲜事,基本上每个学期都会有不少这样的学习机会,但是每次完成的质量都有点不太令人满意,随着毕业的临近,就业的压力也就自然而然的降临到我们的身上。我们是本科应用型人才,所以动手能力必须特别强,这就需要大量的锻炼,所以我们必须抓住这些已经为数不多的机会了!说实在的,对单片机的学习我不是学的很好,也就略知一二的样子。刚拿到课程设计任务书的时候很没觉得又多的难。查阅了一些资料,翻了课本上相关的环节,终于还是搞清楚了系统输入输出与硬件的接法,这对课题的理解是大有帮助的,但是也只是初步的了解。后来又去网上看了一下,到网上找资料并不是一件容易的事情找到了一些与课题密切相关的的设计资料,了解了系统工作的基本流程,心里面已经形成了控制程序的设计具体思想。接下来的工作并没有想象中的那么顺利,首先是编写程序,由于首先没有拿到老师的流程图,就自己闭门造车的编了起来,我负责的是灯显示这部分的编程,另又一些例如延时,启动,复位,停止等小程序的编写。我请教了我班学得好的 同学给我讲解了一下设计任务。接下来就是调试程序了,这可不是一个简单的过程,首先由于这个程序相对来说有点长,所以第一次输入的时候竟然会把程序都写错了,找了很久都没有发现问题,心里在想程序没有什么问题怎么就是无法执行下去呢?后来仔细检查之后才发现是有一个语句写错了一点点,改正以后程序也就调试成功了。这时候我深刻的体会到:做什么事都不要急于求成,一定要认真仔细,否则就会事半功倍、得不偿失。最后的工作就是编写课程设计说明书,在这次课程设计前我们都以为这部分的工作是最简单的事情,但发现其实这次课程设计最麻烦的部分在这里,在以后的课程设计中再也不能对这部分掉以轻心了。在进行这部分工作的时候大多数的同学对老师都有些怨言,认为老师根本就没有必要对排版有这么高的要求,因为这毕竟不是WORD的课程设计。就我个人看来,其实严格一点也不是什么坏事,我们适应以后就好了,以后还有很多的课程设计等着我们呢!为了以后少走弯路现在严格一点,多学点知识也是不错的,更重要的是毕业时候的课程设计,那是绝对要求很高的,对排版肯定是不能有半点的差错,所以现在对这方面就加强锻炼,对我们是有利而绝对无害的。通过这一次的课程设计,我对单片机有了更加深刻的理解,对它的编程语言也有了进一步的了解,觉得真的学会可很多东西,尤其是通过实际动手操作后,我觉得在课堂上由于太抽象而无法理解知识大部分都得到了解决。说心里话,我觉得课程设计是最有意义的学习形式。它第一方面是很贴近我们的生活,让我们觉得现在学的知识只很有价值的;它第二方面是让我们更快、更加具体的学会知识。我希望在大学里面有更多的这样的机会,这确实对我们能力的提高是大有帮助的!在这次课程设计中,我非常感谢我的辅导老师周老师。别的小组在星期二就已经做完了,可我小组迟迟没有进展,问题就出在显示程序和子程序的拼合上。由于我小组的几个人都学得不好,所以前进的路途真的好渺茫。而我们很多都不懂,刚开始的时候我们真的不敢问老师,后来实在没办法了,我们只好不耻下问。记得我请周老师过来给我们指导的时候我笑着给周老师说不准骂我,周老师笑着说,傻孩子,我怎么会骂你呢?所有的顾虑一扫而空。我们也就放开了心去和周老师交流。星期四的上午我们和周老师拼战了一个上午,中午周老师就吃了盒方便面,感激之情难于言表。感谢您,周老师,感谢您母亲般的指导! 机械设计0504:王公强2008-12-13附 录总程序清单:Z8279EQU0FF82H;8279状态/命令口地址D8279EQU0FF80H;8279数据口地址LEDMODEQU10H;右边输入,八字符显示,外部译码LEDFEQEQU2FH;扫描速率LEDCLSEQU0C1H;清除显示RAMLEDWR0EQU80H;设定的将要写入的显示RAM地址ORG0000H;主程序入口地址AJMPSTARTORG0003HAJMPINT0ORG0030HSTART: MOVSP,#60H;设置堆栈指针 MOV30H,#4BH;彩灯控制字送30H MOV31H,#0AAH;单色灯控制字送31H LCALLINIT8255;调用8255初始化程序 LCALLINIT8279;调用8279初始化程序 SETBEX0;外部中断0为中断源 CLRIT0;中断信号用低电平触发LOOP: MOVDPTR,#8400H MOVXA,DPTRJBACC.0,LOOP;判断是否启动SETBEA;允许CPU响应中断MOVDPTR,#8402HMOVA,#00HMOVXDPTR,A;黄灯亮MOVR2,#5LCALLDELAY;延时0.5秒LOOP1:MOV32H,#0LCALLDISPLAY MOVDPTR,#8400HMOVXA,DPTRJBACC.2,JIESHU;判断是否停止JBACC.1,START;判断是否复位MOV32H,#14LCALLDISPLAY SJMPLOOP1JIESHU: MOVDPTR,#8402HMOVA,#0FFHMOVXDPTR,A;彩灯全息INCDPTRINCDPTRMOVA,#00HMOVXDPTR,A;单色灯全息MOVDPTR,#0FF82HMOVA,#LEDCLSMOVXDPTR,A;显示器熄屛AJMPXXDISPLAY:MOV R7,#14;置显示循环次数MOVR5,#00HMOVR4,#0LOOP2: LCALL DISLED;调用合成显示位子程序 INC R4;显示位置向左移一位INC R5;取数表中下一位数DJNZ R7,LOOP2;判断循环次数是否达到16次 MOVDPTR,#Z8279;控制口地址MOVA,#LEDCLSMOVXDPTR,A;清屏RETDISLED: ;合成显示位置子程序MOVDPTR,#Z8279 MOV A,#LEDCLSMOVXDPTR,A;清屏LCALL DELAY;调用延时子程序PUSHDPH;保护现场PUSHDPLPUSHACCMOVA,R4 MOVDPTR,#Z8279ADDA,#LEDWR0MOVXDPTR,A;置显示RAM地址MOVA,R5;送段码值MOVDPTR,#LEDSEG;置显示常数表起始位置MOVCA,A+DPTR;在断码表中取显示字符MOVDPTR,#D8279MOVXDPTR,A;字符控制字送控制口MOV A, R4ADD A, #1;位码偏移量加1MOV R3, A;暂存MOV A,R5MOVDPTR,#LEDSEG;置显示数表起始位置ADDA,32HMOVC A,A+DPTRMOV R0,#10HMOV R0, A;将字符存入R0所指向的10H单元MOV A, R4 MOV R6, ALP: MOVA,#LEDWR0;置显示RAM起始地址ADDA,R6;加显示位偏移量MOVDPTR,#Z8279MOVXDPTR,A;设定显示位置MOVA,R0INC R0;指向10H系列中的下一单元MOVDPTR,#D8279MOVXDPTR,A;送显示字符 DEC R6;显示位向右移一位DJNZ R3, LP ;判断取出的字符是否全部显示POPACC;恢复现场POPDPLPOPDPHRETINT0:PUSHDPL;保护现场PUSHDPHPUSHACCPUSH7PUSH 2PUSH 0PUSH 1NEXT:MOVR7,#0TT:MOVA,R7MOVDPTR,#TAB1;置单色灯数表起始位置MOVCA,A+DPTRMOVDPTR,#8404HMOVXDPTR,A;单色灯开始执行MOVA,R7MOVDPTR,#TAB2;置彩色灯数表起始位置MOVCA,A+DPTRMOVDPTR,#8402HMOVXDPTR,A;彩色灯开始执行MOVR2,#3;延时LCALLDELAYINCR7CJNER7,#7,TT;判断是否到第7位JNBP3.2,NEXT;判断是否执行中断POP1;恢复现场POP0POP2POP7POPACCPOPDPHPOPDPLRETIDELAY:PUSH1;保护现场PUSH0DELAY1: MOVR1,#00HDELAY2: MOVR0,#0B2HDJNZR0,$DJNZR1,DELAY2DJNZR2,DELAY1POP0;恢复现场POP1RETINIT8279:MOVDPTR,#Z8279MOVA,#LEDMOD;置8279工作方式字MOVXDPTR,AMOVA,#LEDFEQ;置键盘扫描速率字MOVXDPTR,AMOVA,#LEDCLS;置清除LED显示字MOVXDPTR,AMOVR2,#1LCALLDELAYRETINIT8255:MOVDPTR,#8406HMOVA,#90HMOVXDPTR,A;置8255工作方式字MOVDPTR,#8402HMOVA,#0FFHMOVXDPTR,A;初始化PB口MOVDPTR,#8404HMOVA,#0HMOVXDPTR,A;初始化PC口RETCSD:MOVDPTR,#8402HMOVA,30HMOVXDPTR,A;彩色灯控制字送PB口RLA;右移RLAMOV30H,A;右移后控制字存入30HMOVR2,#3;LCALLDELAYRETDSD:MOVDPTR,#8404HMOV A,31HMOVXDPTR,A;单色灯控制字送PC口CPLA;取反MOV31H,A;取反后存31HRETLEDSEG:DB 00H,76H,5CH,54H,5CH,9CH,50H,00H,00H,00H,00H,00H,00H,00H; DB 00H,76H,77H,73H,73H,66H,00H,00H,00H,00H,00H,00H,00H,00H; TAB1:DB 81H,42H,24H,18H,24H,42H,81H;TAB2:DB 66H,99H,33H,0CCH,33H,99H,66H;XX:END参考文献1 孙育才主编.单片微型计算及其应用. 东南大学出版社.2 王迎旭主编.单片机原理与应用. 机械工业出版社.3 刘国荣主编.单片微型计算机技术. 机械工业出版社.4 周慧,黄菊生主编.单片机原理与接口实验指导书.湖南工程学院机电教研室.5 何立民主编.单片机应用系统设计.北航出版社6 王迎旭主编.单片机原理及及应用. 机械工业出版社7 刘瑞新主编.单片机原理及及应用教程.机械工业出版社8 黄菊生主编.单片机原理与接口技术.国防工业出版社.27
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


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

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


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