收藏 分销(赏)

基于aduc848的数字密码锁【课程设计】报告.doc

上传人:天**** 文档编号:2487700 上传时间:2024-05-30 格式:DOC 页数:30 大小:434.67KB
下载 相关 举报
基于aduc848的数字密码锁【课程设计】报告.doc_第1页
第1页 / 共30页
基于aduc848的数字密码锁【课程设计】报告.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述
湖南大学电气与信息工程学院 本科生课程设计 题   目:数字密码锁 课   程: 单片机课程设计 专   业: 电气工程及其自动化 班   级: 电自班 目录 一、 任务及设计要求 - 3 - 二、 系统原理框图 - 3 - 三、 硬件原理图 - 3 - (一) ADuC848的简要介绍(针对本设计所选择的型号) - 3 - (二) 单片机引脚分布 - 3 - (三) 电源模块 - 3 - (四) 数码管硬件连接 - 3 - (五) 蜂鸣器和红外发送 - 3 - (六) 复位与下载 - 3 - (七) 按键输入 - 3 - (八) 振荡电路 - 3 - 四、 程序 - 3 - (一) 主程序 - 3 - (二) 密码修改流程图 - 3 - (三) 计时主程序流程图 - 3 - (四) 计时中断子程序流程图: - 3 - (五) 蜂鸣器中断子程序流程图 - 3 - (六) 蜂鸣器控制程序 - 3 - (七) 键盘扫描程序流程图 - 3 - (八) 程序清单 - 3 - 五、 使用说明书 - 3 - (一) 键盘按键分布 - 3 - (二) 按键功能说明 - 3 - 六、 心得体会 - 3 - 参考文献 - 3 - 一、 任务及设计要求 1)设计一多位电子密码锁,输入密码用“F”表示,输入密码正确,绿灯亮(或显示其它标志、蜂鸣器替代),输入密码错误,红灯亮(或显示其它标志、蜂鸣器替代) 2)具有确定键和取消键,在未确定之前可以取消,重新输入 3)连续输入三次错误密码,红灯闪烁,报警电路动作,键盘锁定 4)具有密码重置、修改功能 5)具有密码输入等待操作时间限制功能,超过限定时间报警 6)显示北京时间,时间可调整 7)可利用蜂鸣器添加提示音 二、 系统原理框图 ADuc848 驱动电路 报警电路 振荡电路 数码管显示 4×4键盘输入 复位电路 时钟模块 三、 硬件原理图 (一) ADuC848的简要介绍(针对本设计所选择的型号) 1、 详细情况请参考芯片手册。 2、 8051-based core、5V供电电压; 3、 可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序; 4、 16位8通道Σ-ΔADC,片内有1.25V参考电压、buffer和PGA; 5、 12位电压输出DAC、Dual 16-BIT Σ-ΔDAC; 6、 32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte); 7、 PLL(12.58 MHz max)(片外只需接32.768kHz晶振); 8、 3×16位定时/计数器、看门狗定时器; 9、 11中断源(2优先级)、11位堆栈指针; 10、 24I/O+8模拟或数字输入; 11、 UART、SPI和I2C、高速115200波特率发生; 12、 Power supply monitor、上电复位、Dual 200μA激励电流源。 (二) 单片机引脚分布 1. Pin1~4:(P1.0~P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0xf0。若P2、P3、P0口要作为输入,则应往相应引脚写1。 2. Pin5、6:AVDD、AGND,模拟电源输入。 3. Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有2.5V内部参考,ADC有1.25V内部参考。 4. Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。 5. Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。 6. Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。 7. Pin14:片内DAC输出。 8. Pin15:复位引脚。 9. Pin16、17:单片机RS232接口的RXD(P3.0)TXD(P3.1)。 10. Pin18:(P3.2)外部中断0,用于红外接收和PS/2接口。 11. Pin19:(P3.3)LCD1602,LCD12864A的EN引脚,控制第一位数码管。 12. Pin20、21:DVDD、DGND数字电源输入。 13. Pin22:(P3.4)PS/2接口的data信号。 14. Pin23:(P3.5)LCD1602和LCD12864A的RW。 15. Pin24:(P3.6)LCD1602和LCD12864A的RS。 16. Pin25:LCD12864A的CS1。 17. Pin26:IIC接口时钟信号。 18. Pin27:IIC接口data信号。 19. Pin28:(P2.0)SPI接口时钟信号。 20. Pin29:(P2.1)SPI接口MOSI信号、控制第6位数码管的位码。 21. Pin30:(P2.2)SPI接口MISO信号、控制第7位数码管的位码。 22. Pin31:(P2.3)SPI接口SS信号、控制第8位数码管的位码;P2.0~3也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。 23. Pin32、Pin33:接外部32.768KHz晶振。 24. Pin34、Pin35:DVDD、DGND。 25. Pin36:(P2.4)LCD12864A的CS2。 26. Pin37:(P2.5)内部PWM模块输出,控制红外LED。 27. Pin38:(P2.6)内部PWM模块输出,控制蜂鸣器。 28. Pin39:(P2.7)内部PWM模块的外部时钟输入(也可以用内部时钟)。 29. Pin40:EA,低电平有效,正常使用时拉低。 30. Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。 31. Pin42:ALE。 32. Pin47、Pin48:DGND、DVDD。 33. Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码管的段码。 (三) 电源模块 本学习板共有如下3种供电方式: 1. 5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第1、2脚(插针1下面两脚)接跳线帽,DVDD直接连接到电源适配器输入端,即为5V电源适配器供电模式。 2. 7~12V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽) 将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第2、3脚(插针1上面两脚)接跳线帽,DVDD连接到稳压芯片7805的输出,而7805的输入端连接到电源适配器输入端,即为7~12V的电源适配器经7805给学习板供电的模式。 3. USB供电(开关往下拨)。 将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。 对DVDD网络和AVDD网络设了测试点,方便调试。 (四) 数码管硬件连接 关键网络名解释: 1. DS0~7:数码管段码。 2. BIT0~7:数码管位码。 3. MOTORA~D:步进电机驱动信号。 4. DISCTRL0~4:显示控制信号,控制数码管低5位。 5. D0~8:单片机P0口。 本设计采用共阴极数码管,段码由PNP三极管驱动,位码由NPN型三极管驱动。 引脚复用: 数码管低5位(板上为右边5位)的位码由DISCTRL0~4控制,可单独使用,高3位的位码控制信号与SPI信号,电机驱动信号,4X4矩阵式键盘复用,使用数码管高3位时参与复用的其他功能则不能使用。 插针配置: 若要使用数码管第4~0位(板上为右边5位),可以接通插针8,为减少功耗,不用请断开。 若要使用数码管第7~5位(板上为左边3位),可以分别接通插针5~7和9,为减少功耗,不用请断开。 (五) 蜂鸣器和红外发送 本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1(P2.6)控制,红外二极管由PWM0(P2.5)控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器和红外LED的驱动均采用普通NPN三极管。为方便调试,对该模块中的信号设了测试点,具体位置参见附图1。 插针配置: 若要使用蜂鸣器,可以接通插针3,为减少功耗,不用请断开。 若要使用红外二极管,可以接通插针4,为减少功耗,不用请断开。 (六) 复位与下载 进入下载或调试模式的步骤为: 1. 按住BTN1(down or debug按键)不要放开; 2. 按下BTN2(reset按键),然后放开BTN2(reset按键); 3. 放开BTN1(down or debug按键)。 这样单片机就进入了调试模式,可以下载或调试程序。 (七) 按键输入 由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。 引脚复用: P2.0~P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、P2.1~P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。 插针配置: 插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0~P1.3,列扫描信号为P2.0~2.3。 插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用端口为P1.0~P1.3。这4个按键为4X4矩阵键盘的左边4个按键。 (八) 振荡电路 AduC848片内有I2C模块,并有独立的引脚SCLOCK和SDATA。板上的RTC时钟芯片DS1307和EEPROM芯片AT24C08均使用了I2C总线。板上设置了I2C接口,方便MCU与板外的I2C设备进行通信。对SCLOCK和SDATA设置了测试点。 四、 程序 (一) 主程序 开始 密码锁界面 检测命令键 设置时间 S4 显示时间 检测命令键 输入密码 N 密码正确 Y 第一个亮 N 第二个亮 N+1 N=3 报警 Y N 修改密码 修改密码键 (二) 密码修改流程图 (三) 计时主程序流程图 (四) 计时中断子程序流程图: (五) 蜂鸣器中断子程序流程图 (六) 蜂鸣器控制程序 (七) 键盘扫描程序流程图 (八) 程序清单 BUF EQU 75H BUF1 EQU 73H SBF EQU 72H;存放秒 MBF EQU 71H;存放分 HBF EQU 70H;存放时 ORG 0000H LJMP START ORG 0BH ;定时器0中断入口 LJMP CLOCK ORG 1BH ;定时器1中断入口 LJMP INT_0 ORG 200H START: MOV R5,#00H MOV A,#00H MOV 60H,A ;清楚计时模式所有显示单元 MOV 61H,A MOV 62H,A MOV 63H,A MOV 64H,A MOV 65H,A MOV 66H,A MOV 67H,A MOV 68H,A MOV 69H,A ANL TMOD,#0F0H ;设置TMOD ORL TMOD,#01H MOV TL0,#00H ;TI装初值 MOV TH0,#40H MOV BUF1,#00H ;清零 MOV SBF,#00H MOV MBF,#00H MOV HBF,#00H MOV 58H,#01H ;置闹钟小时初值 MOV 59H,#00H ;置闹钟分初值 SETB ET0 ;开定时器0 SETB EA ;开总中断 SETB TR0 ;启动T0 MOV 74H,#00H ;判断模式 MOV 39H,#00H ;密码输入是否正确 MOV 38H,#00H ;是否按下reset键 MOV 29H,#00H ;是否显示闹钟时间 START1: MOV A,#06H ;初始化密码 MOV 35H,A MOV A,#05H MOV 34H,A MOV A,#04H MOV 33H,A MOV A,#03H MOV 32H,A MOV A,#02H MOV 31H,A MOV A,#01H MOV 30H,A MAIN: MOV BUF,#10H ;密码输入缓存 MOV 76H,#00H ;音乐播放次数 MOV 37H,#00H ;记录输入数字的个数 MOV 36H,#06H MOV R0,#40H ;清输入密码存储单元 CLEAR:MOV @R0,#00H INC R0 DJNZ 36H,CLEAR LCALL DS1 ;调用显示子程序 MAIN1: LCALL KEY ;调用键盘扫描程序 JMP MAIN1 KEY: MOV P2,#0E0H ;全扫描,各列线都送低电平 MOV P1,#00H MOV A,P1 ;读回各行线电平值 ORL A,#0F0H ;只读低四位 CPL A ;所读值置反 JNZ IN ;不是全0说明有键按下 RET ;无键按下返回 IN: ACALL DELAY1 ;调延时,等待按合抖动过去 MOV R2,#04H ;R2做计数器,存待扫描行数 MOV R4,#7FH ;R4做指针,指示待扫描行数 MOV R7,#00H ;R7用于决定键号,初值置以0 SCAN: MOV A,R4 RL A MOV R4,A ;以上三条调整待扫描行 MOV P2,A ;逐行扫描,被扫描行送低电平 MOV P1,#00H MOV A,P1 ;读回各列线电平值 MOV R3,#04H ;R3做记数器,存被扫描行的待查列数 NEXT: RRC A ;调整待查列 JNC FIND ;被查列为低电平,被按键找到,转FIND INC R7 ;未找到,键号加一 DJNZ R3,NEXT ;被扫描行的待查列数不为0,转回NEXT DJNZ R2,SCAN ;未找到所按键,返回 RET FIND: MOV BUF,R7 MOV P2,#0E0H LOOSEN:MOV A,P1 ORL A,#0F0H CPL A JNZ LOOSEN ;以上几条重复全扫描,等待所按键松按 MOV A,R7 ;松按后才考虑键处理,保证每按键一次,只处理一次,本条为取所按键号 ADD A,#0F6H JC ORDER NUM: MOV A,#01H ;键号小于等于9,是数字键,转NUM,执行数字键处理程序 XRL A,74H ;判断模式 JZ X0 ;计时模式则不处理数字按键 CLR C INC 37H MOV A,#0F9H ADD A,37H JC MAIN1 ;输入够6个数字则等待命令键 LCALL DS1 ;调用显示子程序 MOV A,R7 XCH A,45H ;存输入的密码 XCH A,44H XCH A,43H XCH A,42H XCH A,41H XCH A,40H RET ORDER: MOV A,#01H ;键号大于9,是命令键,转ORDER,执行命令键处理程序 XRL A,74H JZ ORDER1 ;判断模式 MOV A,R7 XRL A,#0AH JZ X15 ;重置 MOV A,R7 XRL A,#0BH JZ X16 ;重置确认 MOV A,R7 XRL A,#0CH JZ X9 ;输入密码确认,判断正误 MOV A,R7 XRL A,#0DH JZ X2 ;清零 MOV A,R7 XRL A,#0EH JZ X1 ;初始化密码 MOV A,R7 XRL A,#0FH JZ X5 ;显示时间 X1: LJMP START1 X2: LJMP MAIN X3: LJMP MAIN2 X5: MOV 74H,#01H ;进入计时模式 MOV 29H,#00H LJMP MAIN3 X9: LJMP COMP X15: LJMP RESET X16: LJMP SET0 X0: LJMP KEY ORDER1: MOV A,R7 XRL A,#0AH JZ X6 ; 分钟加一 MOV A,R7 XRL A,#0BH JZ X7 ; 小时加一 MOV A,R7 XRL A,#0CH JZ X11 ;闹钟分加一 MOV A,R7 XRL A,#0DH JZ X12 ;闹钟小时加一 MOV A,R7 XRL A,#0EH JZ X13 ;显示闹钟时间 MOV A,R7 XRL A,#0FH JZ X8 ;回到等待密码输入 JMP X0 X6: MOV A,MBF ADD A,#01H DA A MOV MBF,A CJNE A,#60H,X10 MOV MBF,#00H MOV A,HBF ADD A,#01H DA A MOV HBF,A CJNE A,#24H,X10 MOV HBF,#00H RET X7: MOV A,HBF ADD A,#01H DA A MOV HBF,A CJNE A,#24H,X10 MOV HBF,#00H RET X11: MOV A,59H ADD A,#01H DA A MOV 59H,A RET X12: MOV A,58H ADD A,#01H DA A MOV 58H,A RET X13: MOV 29H,#01H LJMP MAIN3 X8: MOV 74H,#00H ;进入输密码模式 MOV 29H,#00H LJMP MAIN X10: RET X4: LJMP MAIN RESET: MOV 37H,#00H MOV A,39H CLR C RRC A JNC X4 MOV 38H,#01H ;按下重置键置一 JMP X4 SET0: MOV 37H,#00H ;设置密码 MOV A,38H ;是否按下RESET CLR C RRC A JNC X4 MOV R2,#06H MOV R0,#40H MOV R1,#30H E1: MOV A,@R0 ;把40H-45H的内容给30H-35H XCH A,@R1 INC R0 INC R1 DJNZ R2,E1 CALL DELAY E2: JMP X4 COMP: MOV 37H,#00H MOV R1,#45H ;判断密码正误 MOV R0,#35H MOV R2,#06H C1: MOV A,@R1 XRL A,@R0 JNZ C2 DEC R1 DEC R0 DJNZ R2,C1 MOV R5,#00H MOV 39H,#01H ;正确置一 LCALL DS2 JMP C3 C2: MOV 39H,#00H ;错误清零 LCALL DS3 INC R5 MOV A,R5 MOV R5,A CJNE R5 ,#03H,C3 LCALL DS4 JMP X3 ;报警 C3: JMP X4 DS1: ;显示程序 MOV P3,#80H MOV A,37H LCALL TABLE MOV P0,A LCALL DELAY;延时 RET DS2: MOV P3,#08H ;正确显示 JMP DS5 DS3: MOV P3,#20H ;错误显示 JMP DS5 DS4: MOV P3,#40H ;报警显示 DS5: MOV A,#03H MOV P0,A LCALL DELAY ;延时 RET TABLE: INC A MOVC A,@A+PC RET DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,19H,11H,0C1H,63H,85H,61H,71H,0FFH DELAY:MOV R6,#00H ;延时程序 DEL11:DJNZ R6,DEL11 RET MAIN3: DS9: MOV A,29H JZ BEIJ NAOZ: MOV R0,#69H ;显示闹钟时间 JMP WEI BEIJ: MOV R0,#63H ;显示北京时间 WEI: MOV R2,#08H DS8: MOV P3,R2 MOV A,@R0 LCALL TABLE ;BCD码转换成段码 MOV P0,A LCALL DELAY1 ;延时 DEC R0 CLR C MOV A,R2 RLC A MOV R2,A CJNE R2,#10H,LL RLC A MOV R2,A LL: CJNE R2,#00H,DS8 ;四位显示完了吗?没完则继续扫描显示 MOV A,29H JZ SHIJ MOV R0,#69H MOV A,59H LCALL GET MOV R0,#67H MOV A,58H LCALL GET JMP BIJIAO SHIJ: MOV R0,#65H MOV A,SBF ;存入秒 LCALL GET MOV A,MBF ;存入分 LCALL GET MOV A,HBF ;存入时 LCALL GET BIJIAO:LCALL KEY ;调用键盘扫描程序 MOV A,58H ;比较闹钟时间和实际时间 MOV R6,HBF XRL A,R6 JNZ DS9 MOV A,59H MOV R6,MBF XRL A,R6 JNZ DS9 LJMP MAIN2 SJMP DS9 GET: MOV 53H,A ;压缩型BCD码转换成非压缩型BCD码 ANL A,#0FH ;取低4位 MOV @R0,A DEC R0 MOV A,53H SWAP A ;取高4位 ANL A,#0FH MOV @R0,A DEC R0 RET CLOCK: MOV TL0,#00H ;定时器0中断子程序 MOV TH0,#40H PUSH PSW ;保护现场 PUSH ACC INC BUF1 MOV A,BUF1 CJNE A,#20H,QUIT ;20次为一秒 MOV BUF1,#00H MOV A,SBF ADD A,#01H DA A MOV SBF,A CJNE A,#60H,QUIT ;60秒为1分 MOV SBF,#00H MOV A,MBF ADD A,#01H DA A MOV MBF,A CJNE A,#60H,QUIT ;60分为1小时 MOV MBF,#00H MOV A,HBF ADD A,#01H DA A MOV HBF,A CJNE A,#24H,QUIT MOV HBF,#00H QUIT: POP ACC ;恢复现场 POP PSW RETI DELAY1: MOV 47H,#01H ;延时程序 DEL110: MOV 48H,#0AH DEL12: MOV 49H,#18H DEL13: DJNZ 49H,DEL13 DJNZ 48H,DEL12 DJNZ 47H,DEL110 RET MAIN2: MOV P3,#00H MOV A,76H CJNE A,#01H,JI CLR TR1 LJMP MAIN JI: INC 76H ANL TMOD,#0FH ORL TMOD,#10H SETB ET1 ;开T1中断 SETB EA ;开总中断 MOV DPTR,#TONE MOV A,#00H LOP: MOVC A,@A+DPTR JZ MAIN2 ;遇到结束标志则重新开始 MOV R5,A MOV TH1,A INC DPTR MOV A,#00H MOVC A,@A+DPTR MOV R6,A MOV TL1,R6 SETB TR1 INC DPTR MOV A,#00H MOVC A,@A+DPTR MOV R2,A ;延时 LOOP1: MOV R3,#80H LOOP2: MOV R4,#0FFH LOOP3: DJNZ R4,LOOP3 DJNZ R3,LOOP2 DJNZ R2,LOOP1 INC DPTR MOV A,#00H LJMP LOP INT_0: PUSH DPH PUSH DPL PUSH ACC CPL P2.6 MOV TH1,R5 ;重装 MOV TL1,R6 SETB TR1 POP ACC POP DPL POP DPH RETI TONE://DB 0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H,0FDH,22H,04H ;1234 //DB 0FDH,73H,04H,0FDH,0BCH,04H,0FDH,0FAH,04H,0FEH,17H,04H ;5671 DB 0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H, 0FCH,2FH,04H ;两只老虎 DB 0FCH,2FH,04H,0FCH,99H,04H,0FCH,0F8H,04H, 0FCH,2FH,04H DB 0FCH,0F8H,04H,0FDH,22H,04H,0FDH,073H,08H DB 0FCH,0F8H,04H,0FDH,22H,04H,0FDH,073H,08H DB 0FDH,073H,03H,0FDH,0BCH,01H, 0FDH,073H,03H,0FDH,22H,01H,0FCH,0F8H,04H,0FCH,2FH,04H DB0FDH,073H,03H,0FDH,0BCH,01H, 0FDH,073H,03H,0FDH,22H,01H,0FCH,0F8H,04H,0FCH,2FH,04H DB 0FCH,2FH,04H,0FDH,073H,04H,0FCH,2FH,08H DB0FCH,2FH,04H,0FDH,073H,04H,0FCH,2FH,08H,00H,00H,00H END 五、 使用说明书 (一) 键盘按键分布 C 8 4 0 D 9 5 1 E A 6 2 F B 7 3 (二) 按键功能说明 按键 A B C D E F 密码模式 密码重置 重置确认 输入确认 清除输入 初始化密码 进入计时模式 计时模式 分加一 小时加一 闹钟分加一 闹钟小时加一 显示闹钟时间 进入密码模式 计时模式数字键无效。 开机进入密码输入界面,显示0,等待按键,每按下一个数字键显示的数字加一,记录输入数字的个数,只能输入六个数字,然后等待确认。密码正确则第一个数码管显示0,错误则第二个显示0,连续错误三次报警。密码输入界面按下F键进入计时显示界面,可进行时分调整,按下E键显示闹钟时间(为防止闹钟误动作,初始设置为01:00),可调整时分。 六、 心得体会 在本次单片机课程设计过程中,我获益良多,虽然遇到了很多困难,但通过学习都成功的克服。 在初期考虑算法和显示的过程中有过不少想法,也经历过彷徨不知所措的过程,但一旦坐下来开始对程序进行思考,并开始一步步的往下做,就发现其实程序可以变成一块一块的子程序,使得我对设计有了新的认识,并使程序变得清晰明了。 不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。 在设计数字密码锁时,我有了很多经验教训,一个实验的失败也许跟你的设计思路没有太大关联,更多的是细节致使实验失败。在编程时其实编到
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服