1第6章实训项目九:LED大屏幕广告显示器用8×8LED大屏幕上显示静态/跳变/移动的箭头图形或文字。第6章LED大屏幕显示器动画电路仿真程序返回2第6章第6章LED大屏幕显示器3动画电路仿真程序返回第6章LED大屏幕显示器4第6章一、教学内容1、LED大屏显示器的结构与工作原理2、显示原理与程序设计的基本结构3、LED项目应用二、教学要求1、掌握LED静态、动态显示原理、大屏幕显示器与接口电路;2、掌握键盘工作原理与按键编码。3、掌握字形码的设计与调用。第6章LED大屏幕显示器5第6章一、动态显示编程方法主要内容点阵LED器件结构动态显示原理动态显示程序的基本结构字形移动的方法第6章LED大屏幕显示器6第6章1.点阵LED器件的外形(8×8)第6章LED大屏幕显示器7第6章11101111111111112.点阵LED器件结构阳极阴极第6章LED大屏幕显示器8第6章00000000001000002.点阵LED器件结构阳极阴极第6章LED大屏幕显示器9第6章????????????????11111100000能静态显示?阳极阴极第6章LED大屏幕显示器10第6章1011111101111110阳极阴极3、动态显示原理第6章LED大屏幕显示器11第6章1110111101111110阳极阴极3、动态显示原理第6章LED大屏幕显示器12第6章1111011101000010阳极阴极3、动态显示原理第6章LED大屏幕显示器13第6章1111101101000010阳极阴极3、动态显示原理第6章LED大屏幕显示器14第6章1111110101111110阳极阴极3、动态显示原理第6章LED大屏幕显示器15第6章列扫描码-----阴极电平动态循环变化;行字模码----阳极电平动态循环变化;从“01111111”到“11111110”循环,“0”每次移一位。将字模切割而得,例如“箭头图形”可分解成:第1列各行电平值为:E7H→“11100111”第2列各行电平值为:C3H→“11000011”第3列各行电平值为:81H→“10000001”第4列各行电平值为:00H→“00000000”第5列各行电平值为:E7H→“11100111”第6列各行电平值为:E7H→“11100111”第7列各行电平值为:E7H→“11100111”第8列各行电平值为:E7H→“11100111”3、动态显示原理第6章LED大屏幕显示器16程序清单ROWEQU30HDOTEQU31HORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#TABMOVROW,#0FEH//#01HMOVDOT,#00HMOVR7,#08HNEXT_COL:MOVA,ROWMOVP2,ARLAMOVROW,AMOVA,DOTMOVCA,@A+DPTRMOVP0,ALCALLDELAY_1MSINCDOTDJNZR7,NEXT_COLSJMPMAINTAB:DB0E7H,0C3H,81H,00H,0E7H,0E7H,0E7H,0E7HDELAY_1MS:MOVR4,#250D0:NOPNOPDJNZR4,D0RETEND资源初始化第1次循环第2次循环ROW=30H010204DOT=31H000102A01→02→00→E7H02→04→01→C3P0口E7H(11100111)/18H(00011000)C3H(11000011)/3CH(00111100)P2口01H(00000001)/FEH(11111110)02H(00000010)/FD(11111101)R787617第6章4、动态显示程序的基本结构★定时中断子程序:列码、行码送出一次并修改一次(每列的扫描时间为多长?)★主程序:定时中断初始化,建立显示缓冲区等等。第6章LED大屏幕显示器18第6章4、动态显示程序的基本结构开始定时中断初始化建立显示缓冲区循环等待(或其它任务循环)第6章LED大屏幕显示器19第6章第6章LED大屏幕显示器20第6章第6章LED大屏幕显示器111111100001100021第6章第6章LED大屏幕显示器1111110100011000111111100011110022第6章第6章LED大屏幕显示器23第6章第6章LED大屏幕显示器24第6章第6章LED大屏幕显示器25第6章第6章LED大屏幕显示器26第6章第6章LED大屏幕显示器27第6章第6章LED大屏幕显示器28第6章00000000000000000000000000000000000000000000000000000000000110000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms29第6章00000000000000000000000000000000000000000000000000011000001111000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000改写第6章LED大屏幕显示器P2口扫描周期20ms30第6章00000000000000000000000000000000000000000001100000111100011111100011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms31第6章00000000000000000000000000000000000110000011110001111110111111110011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms32第6章00000000000000000000000000011000001111000111111011111111000110000011110001111110111111110001100000011000000110000000000000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms33第6章00000000000000000001100000111100011111101111111100011000000110000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms34第6章00000000000110000011110001111110111111110001100000011000000110000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms35第6章00011000001111000111111011111111000110000001100000011000000110000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000011000第6章LED大屏幕显示器P2口扫描周期20ms36第6章00111100011111101111111100011000000110000001100000011000000000000011110001111110111111110001100000011000000110000001100000000000字模常数区(ROM)0000000000000000000000000000000000000000000000000000000000000000P2口扫描周期20ms第6章LED大屏幕显示器37T0X中断服务程序段:循环显示START主程序段:初始化设置程序入口地址设置程序的主体结构图为:38TIMEQU30HORG0000HLJMPSTARTORG000BH//定时器0中断入口LJMPT0X//指向中断服务程序ORG0030HSTART:MOVTIM,#00H//初始化MOVR3,#00HMOVR4,#00HMOVTMOD,#01H//软件启动、定时、方式1MOVTH0,#(65536-4000)/256//定时时间初值MOVTL0,#96SETBTR0//启动定器0SETBET0//定时器0中断允许/开中断SETBEA总中断允许/CPU开中断SJMP$//等待定时器0、TFO=“1”、转到中断程序箭头移动图形清单39T0X:MOVTH0,#(65536-4000)/256MOVTL0,#96MOVDPTR,#TABMOVA,R3MOVCA,@A+DPTRMOVP2,A//行选送P2MOVDPTR,#DIGITMOVA,R4ADDA,R3//DIGIT中数据选择MOVCA,@A+DPTRMOVP0,A//数据送P1INCR3MOVA,R3CJNEA,#8,NEXTMOVR3,#00HNEXT:INCTIMMOVA,TIMCJNEA,#40,NEX//滚动速度/定义一屏的时间MOVTIM,#00HINCR4MOVA,R4CJNEA,#16,NEX//DIGIT数据区数据显示范围MOVR4,#00HNEX:RETITAB:DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH//07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH从左向右DIGIT:DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0E7H,0C3H,81H,00H,0E7H,0E7H,0E7H,0E7H//图形箭头ENDT0X中断服务程序段:循环显示START主程序段:初始化设置程序入口地址设置程序的主体结构图为:●●●●●●●●●●●●●●●●●●●●●●●●●●●●FFFFFFFFFFFFFFFFE7C38100E7E7E7E740屏态一第1屏第2屏第3屏第4屏第5屏30H3456789-1617-2425-3233-40R33456781-81-81-81-8R4000000000000A20233303444045550566606777078890999-17018-25025-33033-P0FBF7EFDFBF7FFF-7FFF