基于单片机控制的霓虹灯控制器.doc

DZ157基于单片机控制的霓虹灯控制器

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:512379    类型:共享资源    大小:200.70KB    格式:RAR    上传时间:2015-11-11 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
毕业设计
资源描述:
DZ157基于单片机控制的霓虹灯控制器,毕业设计
内容简介:
霓虹灯控制器 第 1 页 共 14 页 基于单片机控制的霓虹灯控制器 作者:谭辉 肖远青 凌鑫华 指导老师:王彦 摘要 : 本设计采用 AT89S51 单片机实现对霓虹灯的控制。系统由单片机 控制部分 和显示部分组成。显示部分的 128 个发光 二极管 成 8 行 16 列 矩阵式分布。单片机 I/O 口输出的信号经 三极管放大驱动二极管发光。不同的控制信号使发光二极管以不同的方式和花样显示。 关键字 :单片机 发光二极管 矩阵式 Neon Light Controller Based on Singlechip Abstract: This design adopts singlechip AT89S51 to control the neon light. The system is made up of the part of singlechip controller and the part of show. The part of show is 8 lines of 16 row matrix types. Signal from singlechip is enlarged by triode transistor to drive the LBD. The different control signal makes LBD to give out light with the pattern in different way. Keyword: singlechip LBD matrix nts霓虹灯控制器 第 2 页 共 14 页 目录 1. 系统设计 .3 1.1 设计要求 .3 1.2 总体设计方案 .3 1.2.1 设计思路 .3 1.2.2 方案 论证与比较 .3 1.2.3 系统组成 .4 2.单元电路设计 .4 2.1 显示部分电路 .4 2.2 控制部分电路 .5 3.软件设计 .6 3.1 程序流程图 .6 3.2 程序清单 .7 4 结论 .7 参考文献 7 附录 1: 元器件明细表 7 附录 2:程序清单 8 附录 3:印制板图 .14 nts霓虹灯控制器 第 3 页 共 14 页 1. 系统设计 1.1 设计要求 1.基本功能: 设计 一个霓虹灯控制器,控制 128 个 LBD,要求能控制形成 多种 图案或花样 。 2.扩展功能:红外遥控不同显示方案间的转换,加设语音芯片和音乐盒,在显示不同图案的同时发出不同的音乐和语音信息。 1.2 总体设计方案 1.2.1 设计思路 题目要求 设计一个霓虹灯控制器,控制的 灯数 128 个,并要形成多种图案和花样。设计中 控制部分由单片机完成,显示部分的 LBD 由单片机的输出控制信号经放大后驱动,形成不同的图案。 1.2.2 方案论证与比较 1. 显示部分 设计方案论证与选择 方案一、 采用移位寄存器扩展 I/O 口。利用 74HC595 扩展 单片机的输入输出口来接发光二极管,实现串行输入并行输出。 电路图如 1.1.1 所示。 此方案可扩展受控制的发光二极管的数量, 但要控制 128 个 LBD 需要 16 个移位寄存器,需要芯片多,且 PCB 布局和布线不方便。 方案二、采用矩阵式分布。 利用单片机的 p1 口做行选信号, p2 和 p0 口做列选信号,128 个 LBD 构成 8 行, 16 列的矩阵。 详细电路图见单元电路设计中。 此方案能单独控制每一个 LBD,也可单独控制每行或每列的 LBD,可形成丰富的图案或花样,显示部分不需要格外的芯片,形成的电路简单, PCB 的布局和布线也较容易和美观。 综 上所述,考虑到要求控制的 LBD 不是太多,又矩阵式能形成较丰富的图案, PCB板的布局和布线也较美观,选择方案二。 2. 驱动部分 设计方案论证与选择 方案一、 三极管一级驱动。由 1 个 9012 驱动一行 16 个 LBD。正常发光时每个 LBD 的工作电流为 1015 毫安, 16 (1015) =160240 毫安 , 这样大的电流一个三极管就能提供。当一行同时亮时能满足发光工作要求。当一个灯亮时,由于亮的时间非常短不会对 LBD 的工作造成影响。 方案二、功率放大芯片。可以很好的实现放大和驱动,性能稳定,效果好,但价格较三极管高,电路 较方案一也明显复杂。 综上所述,三极管驱动电路简单,性价比高,又能很好完成驱动作用,选择方案 一 。 nts霓虹灯控制器 第 4 页 共 14 页 Q11Q22Q33Q44Q55Q66Q77Q015Q 79/S C L R10S C K11R C L K12/G13S E R14Q?7 4H C 5 9 5Q11Q22Q33Q44Q55Q66Q77Q015Q 79/S C L R10S C K11R C L K12/G13S E R14Q?7 4H C 5 9 5L1 L2 L3 L4L5 L6 L7 L8L1 L2 L3 L4L5 L6 L7 L8R11 0KR21 0KR31 0KR41 0KR51 0KR61 0KR71 0KR81 0KR 2 51 0KR 2 61 0KR 2 71 0KR 2 81 0KR 2 91 0KR 3 01 0KR 3 11 0KR 3 21 0KD A T AN1N2N3图 1.1.1 寄存器扩展的电路图 1.2.3 系统组成 系统 总方框图如图 1.2.3 所示。 图 1.2.3 系统总方框图 单片机控制矩阵式排布的 LBD 按顺序循环显示。系统共设计了 7 种显示图案或花样,分别是:( 1)由里到外和由外到里按圈依次亮( 2)奇次列和偶次列交错亮( 3)以一列为轴顺时针扫射( 4)以中间两列为轴分别向两边合拢( 5)四种不同颜色的灯交错亮( 6)单个灯以螺旋方式从最里 圈向外亮( 7)以相邻四列及相对的四列为一组交错亮 。 2.单元电路设计 2.1 显示部分电路 显示 部分 主要由 128 个贴片发光二极管分成 8 圈,每圈 16 个组成,相当于 8 行 16 列的矩阵。这些 发光 二极管共有四种颜色,分别是红,黄,蓝,绿。每圈用同一种颜色,从里到外分别是绿红黄蓝绿红黄蓝排布。每行 16 个 LED 的阳极连接 在一起 引出 8 行输出 分别接单片机 I/O 口的 P1.0 P1.7 口; 每列 8 个 LED 的阴极连接 在一起 引出 16 列输出 分别接单片机 P0.0 P0.7 和 P2.0 P2.7 口。电路图如图 .所示。 显示部分 单片机 nts霓虹灯控制器 第 5 页 共 14 页 图 2.1 显示部分电路图 2.2 控制部分电路 控制部分 主要是由单片机最小系统完成。采用了 1 个 AT89S51 单片机, 2 个 74HC373锁存器, 12M 晶阵和一些相应的电阻,插座。 驱动部分的 8 个 9012 三极管也接到了此部分。使用 P1 口的 8 个输出信号做 8 行的选通信号,使用 P0 和 P2 口的 16 个输出信号做列的控制信号,单独控制每圈的 16 个 LED。 输出信号经 9012 放大后驱动发光二极管。电路图如图 2.2所示。 D 13 D 14 D 15 D 16 D 17 D 18 D 1ED 19 D 1A D 1FD 1B D 1C D 1DD 12D 10 D 11D 23 D 24 D 25 D 26 D 27 D 28 D 29 D 2A D 2B D 2C D 2D D 2E D 2FD 22D 20 D 21D 33 D 34 D 35 D 36 D 37 D 38 D 39 D 3A D 3B D 3C D 3D D 3E D 3FD 32D 30 D 31D 43 D 44 D 45 D 46 D 47 D 48 D 49 D 4A D 4B D 4C D 4D D 4E D 4FD 42D 40 D 41D 53 D 54 D 55 D 56 D 57 D 58 D 59 D 5A D 5B D 5C D 5D D 5E D 5FD 52D 50 D 51D 63 D 64 D 65 D 66 D 67 D 68 D 69 D 6A D 6B D 6C D 6D D 6E D 6FD 62D 60 D 61D 73 D 74 D 75 D 76 D 77 D 78 D 79 D 7A D 7B D 7C D 7D D 7E D 7FD 72D 70 D 71D 83 D 84 D 85 D 86 D 87 D 88 D 89 D 8A D 8B D 8C D 8D D 8E D 8FD 82D 80 D 81123456789101112131415161718192021222324J4C O N 24C 10C 11C 12C 13C 14C 15C 16C 17C 20C 21C 22C 23C 24C 25C 26C 27Q 1EQ 2EQ 3EQ 4EQ 5EQ 6EQ 7EQ 8EQ 1EQ 2EQ 3EQ 4EQ 5EQ 6EQ 7EQ 8EC10C11C12C13C14C15C16C17C20C21C22C23C24C25C26C27nts霓虹灯控制器 第 6 页 共 14 页 图 2.2 控制部分电路图 3.软件设计 3.1 程序流程图 E A / V P31X119X218RE S E T9RD17WR16IN T 012IN T 113T014T115P 101P 112P 123P 134P 145P 156P 167P 178P 0039P 0138P 0237P 0336P 0435P 0534P 0633P 0732P 2021P 2122P 2223P 2324P 2425P 2526P 2627P 2728P S E N29A L E / P30T X D11RX D10U2A T 89 S 51S12MC130pFC230pFK B 1K B 2K B 3K B 4K B 5X T A L 1X T A L 2K B 6K B 7K B 8123456789J3CO N 9K B 1K B 2K B 3K B 4K B 5K B 6K B 7K B 8V C CX T A L 1X T A L 2V C C123456J2S 51 _IS PM O S IM I S ORE S E TS CKV C CG N DM O S IM I S OS CKRE S E T12J1CO N 2N 20N 21N 22N 23N 24N 25N 26N 27N 10N 11N 12N 13C1 010UV C CR26. 8KRE S E TOC1C111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U474 H C 37 3OC1C111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U374 H C 37 3R2 1470R2 2470R2 3470R2 4470R2 5470R2 6470R2 7470R2 8470R1 7470R1 8470R1 1470R1 2470R1 3470R1 4470R1 5470R1 6470R3 010KR3 110KR3 210KR3 310KR3 410KR3 510KR3 610KR3 710KB1C2E3Q19014Q29014Q39014Q49014Q59014Q69014Q79014Q89014V C C V C C V C C V C C V C C V C C V C C V C CN 14N 20N 21N 22N 23N 24N 25N 26N 27V C CK B 1K B 2K B 3K B 4K B 5K B 6K B 7K B 8V C CN 10N 11N 12N 13N 14M I S OM O S IS CK123456789101112131415161718192021222324J4CO N 24C1 0C1 1C1 2C1 3C1 4C1 5C1 6C1 7C2 0C2 1C2 2C2 3C2 4C2 5C2 6C2 7Q 1E Q 2E Q 3E Q 4E Q 5E Q 6E Q 7E Q 8EC1 0C1 1C1 2C1 3C1 4C1 5C1 6C1 7C2 0C2 1C2 2C2 3C2 4C2 5C2 6C2 7Q 1EQ 2EQ 3EQ 4EQ 5EQ 6EQ 7EQ 8EV C CG N D开始 显示方式一 显示方式二 显示方式三 显示方式四 显示方式五 显示方式六 显示方式七 nts霓虹灯控制器 第 7 页 共 14 页 3.2 程序清单 软件采用汇编语言编写, 程序清单见附录 2。 4.结论 本 设计的设计思想 ,原理和软件设计较简单,难点在于 PCB 板的布局和布线以及美观的效果。采用了矩阵式布局,可以较好的解决这一难题,但是受单片机 I/O 口 的限制,能控制每一个 LBD 的数量有限。大型的设计可以采用扩展 I/O 口和矩阵式相结合的方式。 暂只完成了基本部分的设计,扩展部分单片机已留出了足够的 端口。 参考文献 1. 杨忠煌,黄博俊,李文昌 .单芯片 8051 实务与应用 M.北京:中国水利水电出版社, 2001.6第一版 . 2. 张洪润,马平安,张亚凡 .单片机原理及应用 M.北京:北京科学出版社, 2002.8 第一版 . 附录 1 元器件明细表 名称 型号 数量 单片机 AT89S51 1 锁存器 74HC373 2 电阻 10K, 470 17,8 贴片发光二极管 LBD 128 电容 30pf 2 电解电容 22uf 1 三极管 9012 8 晶阵 12M 1 插座 40 脚, 20 脚 1, 1 下载口 1 nts霓虹灯控制器 第 8 页 共 14 页 附录 2 程序清单 FLAG EQU 20H FUN0FLAG EQU 00H FUN1FLAG EQU 01H FUN2FLAG EQU 02H FUN3FLAG EQU 03H FUN4FLAG EQU 04H FUN5FLAG EQU 05H FUN6FLAG EQU 06H FUN7FLAG EQU 07H CIRCAL EQU 08H HUANGE EQU 09H SHXING1 EQU 0AH SHXING2 EQU 0BH SHXING3 EQU 0CH DANSAO EQU 0DH DANSAOJIASU EQU 0EH LUOXUAN EQU 0FH COLOUR EQU 10H JMPFLAG EQU PSW.7 TIMECOUNT DATA 29H LOCK0 DATA 30H LOCK1 DATA 31H LOCK2 DATA 32H LOCK3 DATA 33H LOCK4 DATA 34H LOCK5 DATA 35H LOCK6 DATA 36H LOCK7 DATA 37H DATA0 DATA 40H DATA1 DATA 41H DATA2 DATA 42H DATA3 DATA 43H DATA4 DATA 44H DATA5 DATA 45H DATA6 DATA 46H DATA7 DATA 47H DATA8 DATA 48H B1 DATA 48H B2 DATA 49H B3 DATA 50H B4 DATA 51H B5 DATA 52H B6 DATA 53H B7 DATA 54H B8 DATA 55H ORG 0000H LJMP START ;转入主程序 ORG 0003H ;外部中断 INT0入口地址 RETI ;返回,不用 ORG 000BH ;定时器 T0 入口地址 LJMP INTT0 ;转入 T0 中断服务程序 ORG 0013H ;外部中断 INT1入口地址 RETI ;返回 ORG 001BH ;定时器 T RETI ;LJMP INTT1 ;转入 T1 中断服务程序 ORG 0023H ;转入创行断服务程序 RETI ;返回,不用 START:MOV FLAG,#00000001B MOV TIMECOUNT,#05H MOV TMOD,#01H MOV TL0,#0F0H MOV TH0,#0D8H SETB EA SETB ET0 SETB TR0 MAIN: JB FUN0FLAG,FUN0 JB FUN1FLAG,FUN1 JB FUN2FLAG,FUN2 nts霓虹灯控制器 第 9 页 共 14 页 JB FUN3FLAG,FUNC3 JB FUN4FLAG,FUNC4 JB FUN5FLAG,FUNC5 JB FUN6FLAG,FUNC6 JB FUN7FLAG,FUNC7 FUNC3:LJMP FUN3 FUNC4:LJMP FUN4 FUNC5:LJMP FUN5 FUNC6:LJMP FUN6 FUNC7:LJMP FUN7 FUN0:CLR CIRCAL SETB JMPFLAG MOV LOCK0,#0FEH MOV DATA0,#000H MOV R0,TIMECOUNT FUN00:JNB FUN0FLAG,FUN1 MOV P2,DATA0 MOV P0,DATA0 MOV P1,LOCK0 AJMP FUN00 FUN1:CLR HUANGE SETB JMPFLAG MOV B1,#8H MOV DATA1,#0AAH MOV LOCK1,#0FEH FUN10:JB HUANGE,FUN2 MOV P0,DATA1 MOV P1,LOCK1 LCALL DL20 MOV A,DATA1 CPL A MOV P2,A MOV P1,LOCK1 LCALL DL20 MOV A,LOCK1 RLC A MOV LOCK1,A LJMP FUN10 FUN2:CLR SHXING1 SETB JMPFLAG MOV B2,#2H MOV DATA2,#07FH FUN20:MOV LOCK2,#0FEH FUN21:JB FUN3FLAG,FUN3 MOV P0,DATA2 MOV P2,DATA2 MOV P1,LOCK2 LCALL DL20 MOV A,LOCK2 RLC A MOV LOCK2,A LJMP FUN21 FUN3:CLR DANSAO CLR DANSAOJIASU SETB JMPFLAG MOV B3,#5H FUN30: MOV DATA3,#0FEH MOV LOCK3,#0FEH FUN31:JB FUN4FLAG,FUN33 JB DANSAO,FUN32 MOV P0,DATA3 MOV P2,#0FFH MOV P1,LOCK3 LCALL DL20 MOV A,LOCK3 RLC A MOV LOCK3,A LJMP FUN31 FUN32:JB FUN4FLAG,FUN33 JNB DANSAO,FUN31 MOV P0,#0FFH MOV P2,DATA3 MOV P1,LOCK3 LCALL DL20 MOV A,LOCK3 RLC A MOV LOCK3,A LJMP FUN32 FUN33:LJMP FUN4 nts霓虹灯控制器 第 10 页 共 14 页 FUN4:CLR LUOXUAN SETB JMPFLAG MOV DATA4,#0FEH MOV LOCK4,#0FEH FUN40:JB FUN5FLAG,FUN42 JB LUOXUAN,FUN41 MOV P0,DATA4 MOV P2,#0FFH MOV P1,LOCK4 LCALL DL20 AJMP FUN40 FUN41:JB FUN5FLAG,FUN42 JNB LUOXUAN,FUN40 MOV P0,#0FFH MOV P2,DATA4 MOV P1,LOCK4 LCALL DL20 AJMP FUN41 FUN42:LJMP FUN5 FUN5:CLR SHXING2 SETB JMPFLAG MOV B4,#8H MOV DATA5,#0F0H MOV LOCK5,#0FEH FUN50:JB SHXING2,FUN51 MOV P0,DATA5 MOV P1,LOCK5 LCALL DL20 MOV A,DATA5 CPL A MOV P2,A MOV P1,LOCK5 LCALL DL20 MOV A,LOCK5 RLC A MOV LOCK5,A LJMP FUN50 FUN51:LJMP FUN6 FUN6:CLR COLOUR SETB JMPFLAG MOV B5,#2H MOV DATA6,#00H MOV LOCK6,#0EEH FUN60:JB FUN0FLAG,FUN61 MOV P0,DATA6 MOV P2,DATA6 MOV P1,LOCK6 AJMP FUN60 FUN61:LJMP FUN0 FUN7: MOV DATA7,#0FCH MOV DATA8,#03FH MOV LOCK7,#0FEH FUN70:PUSH DATA7 FUN71:MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P0,DATA7 MOV P1,LOCK7 LCALL DL1MS MOV A,DATA7 RL A RL A MOV DATA7,A MOV A,LOCK7 RL A MOV LOCK7,A JNB ACC.4,FUN72 AJMP FUN71 FUN72:POP DATA7 PUSH DATA8 FUN73: MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P2,DATA8 MOV P1,LOCK7 LCALL DL1MS MOV A,DATA8 RR A RR A MOV DATA8,A MOV A,LOCK7 RL A MOV LOCK7,A nts霓虹灯控制器 第 11 页 共 14 页 JNB ACC.0,FUN74 AJMP FUN73 FUN74:POP DATA8 LJMP FUN70 DL20:MOV R7,#0AH LOOP1:DJNZ R7,LOOP1 RET DL1MS:MOV R6,#28H LOOP2:LCALL DL20 DJNZ R6,LOOP2 RET INTT0: PUSH PSW DJNZ R0,OUT MOV TL0,#0F0H MOV TH0,#0D8H MOV R0,TIMECOUNT JB FUN0FLAG,FLAG0 JB FUN1FLAG,FLAG1 JB FUN2FLAG,FLAG2 JB FUN3FLAG,FLAG3JMP JB FUN4FLAG,FLAG4JMP JB FUN5FLAG,FLAG5JMP JB FUN6FLAG,FLAG6JMP JB FUN7FLAG,FLAG7JMP FLAG3JMP:LJMP FLAG3 FLAG4JMP:LJMP FLAG4 FLAG5JMP:LJMP FLAG5 FLAG6JMP:LJMP FLAG6 FLAG7JMP:LJMP FLAG7 OUT: LJMP T0OUT FLAG0:JB CIRCAL,FLAG01 MOV A,LOCK0 JNB ACC.7,FLAG00 RLC A MOV LOCK0,A LJMP T0OUT FLAG00:SETB CIRCAL MOV LOCK0,#07FH FLAG01:RRC A MOV LOCK0,A JNC FLAG02 LJMP T0OUT FLAG02:CLR FUN0FLAG SETB FUN1FLAG LJMP T0OUT FLAG1:MOV A,B1 JZ FLAG10 DEC B1 MOV A,DATA1 CPL A MOV DATA1,A LJMP T0OUT FLAG10:CLR FUN1FLAG SETB FUN2FLAG SETB HUANGE LJMP T0OUT FLAG2:JB SHXING1,FLAG21 CLR JMPFLAG MOV A,DATA2 JNB ACC.0,FLAG20 RRC A MOV DATA2,A LJMP T0OUT FLAG20:SETB SHXING1 MOV DATA2,#00H FLAG21:SETB JMPFLAG MOV A,DATA2 RLC A JC FLAG22 MOV DATA2,A LJMP T0OUT FLAG22:DEC B2 MOV A,B2 JZ FLAG23 CLR SHXING1 LJMP FLAG2 FLAG23:CLR FUN2FLAG SETB FUN3FLAG LJMP T0OUT FLAG3:SETB JMPFLAG JB DANSAO,FLAG31 nts霓虹灯控制器 第 12 页 共 14 页 JNB DANSAO,FLAG30 FLAG30:CLR DANSAO MOV A,DATA3 RLC A MOV DATA3,A JNC FLAG31 LJMP FLAG33 FLAG31:SETB DANSAO MOV A,DATA3 RRC A MOV DATA3,A JNC FLAG32 LJMP T0OUT FLAG32:SETB DANSAOJIASU LJMP FLAG30 FLAG33:JNB DANSAOJIASU,FLAG35 CLR DANSAOJIASU DEC B3 MOV A,B3 JZ FLAG34 MOV TIMECOUNT,B3 MOV R0,TIMECOUNT LJMP T0OUT FLAG34:CLR F
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:DZ157基于单片机控制的霓虹灯控制器
链接地址:https://www.renrendoc.com/p-512379.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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