20. 数字钟﹝★﹞ 1. 实验任务 (1. 开机时,显示 12:00:00 的时间开始计时; (2. P0.0/AD0 控制“秒”的调整,每按一次加 1 秒; (3. P0.1/AD1 控制“分”的调整,每按一次加 1 分; (4. P0.2/AD2 控制“时”的调整,每按一次加 1 个小时; 2. 电路原理图 图 4.20.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的 P1.0-P1.7 端口用 8 芯排线连接到“动态数码显示”区域中的 A-H 端口上; (2. 把“单片机系统:区域中的 P3.0-P3.7 端口用 8 芯排线连接到“动态数码显示”区域中的 S1-S8 端口上; (3. 把“单片机系统”区域中的 P0.0/AD0、P0.1/AD1、P0.2/AD2 端口分别用导线连接到“独立式键盘”区域中的 SP3、SP2、SP1 端口上; 4. 相关基本知识 (1. 动态数码显示的方法 (2. 独立式按键识别过程 (3. “时”,“分”,“秒”数据送出显示处理方法 5. 程序框图 6. 汇编源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.0MINITEK BIT P0.1SECONDK BIT P0.2DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISPMOV TMOD,#01HMOV TH0,#(65536-2000) / 256MOV TL0,#(65536-2000) MOD 256SETB TR0SETB ET0SETB EAWT: JB SECONDK,NK1LCALL DELY10MSJB SECONDK,NK1INC SECONDMOV A,SECONDCJNE A,#60,NS60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MINITEK,NK2LCALL DELY10MSJB MINITEK,NK2INC MINITEMOV A,MINITECJNE A,#60,NM60MOV MINITE,#00HNM60: LCALL DISPJNB MINITEK,$NK2: JB HOURK,NK3LCALL DELY10MSJB HOURK,NK3INC HOURMOV A,HOURCJNE A,#24,NH24MOV HOUR,#00HNH24: LCALL DISPJNB HOURK,$NK3: LJMP WTDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETDISP:MOV A,#DISPBUFADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,MINITEMOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,SECOND...