51单片机 制作 日历时钟 用汇编语言 要详细的代码和硬件图示

要求:74ls164.74ls165设计键盘(8位或16位)、显示(6个或8个LED数码管)部分的硬件电路。内部定时器定时,编程实现年月日时分秒的显示 。可以设定日期时间,并可定2个以上闹钟
我也知道很大 老师给的课设 让四天做出来 我都快暴了 给我足够时间我也行
是比较紧 只要电路图就可以 别乱写程序 发个电路图就给分

你好这是基于DS1302日历时钟的单片机汇编程序 51单片机
ORG 0000H
MOV SP,#30H
LOAD EQU P2.0
CLR LOAD
MOV R0,#0FH
MOV R1,#0AH ;亮度
ACALL TRT

MOV R0,#02H
MOV R1,#0BH ;扫描位数
ACALL TRT

MOV R0,#0FFH
MOV R1,#09H ;译码
ACALL TRT

MOV R0,#01H
MOV R1,#0CH
CALL TRT
SETB P1.0
MOV 22H,#00H
;以下为按键扫描输入初值子程序
KEYSET: MOV 73H,#01H ;设温度初值为10度
MOV 74H,#00H
MOV 75H,#00H
CALL DISPLAY
KEY1: CALL KS1 ;调判断有无键按下子程序
JNZ LK1 ;有键按下(A)<>0转消抖延时
AJMP KEY1 ;无键按下返回,等键按下
LK1: CALL DEL10MS ;延时
CALL KS1 ;若有键按下则为真实按下
JNZ KEYI ;键按下(A)<>0转键扫描
AJMP KEY1 ;不是键按下返回
KEYI: JNB ACC.0,KEYR ;加1键未按下,转查减1键
LK2: CALL KS1 ;等待键释放
CALL DEL10MS
JNZ LK2 ;未释放,等待
INC 75H ;末位加1
MOV A,75H
CJNE A,#0AH,PPA
MOV 75H,#00H
INC 74H
MOV A,74H
CJNE A,#0AH,PPA
MOV 74H,#00H
INC 73H
PPA: CALL DISPLAY
AJMP KEY1 ;转再次扫描
KEYR: JNB ACC.1,KEYH ;减1键未按下,转查上限确认键
LK3: CALL KS1
CALL DEL10MS
JNZ LK3
MOV A,75H
CJNE A,#00H,PPC
MOV 75H,#09H
MOV A,74H
CJNE A,#00H,PPD
MOV 74H,#09H
DEC 73H
AJMP PPB
PPD: DEC 74H
AJMP PPB
PPC: DEC 75H
PPB: CALL DISPLAY
AJMP KEY1 ;再次扫描
KEYH: JNB ACC.2,KEYL ;上限键未按下,转查下限确认键
LK4: CALL KS1
CALL DEL10MS
JNZ LK4
MOV A,73H
MOV 70H,A ;保存上限
MOV A,74H
MOV 71H,A
MOV A,75H
MOV 72H,A
AJMP KEY1
;KEYL: JNB ACC.3,KEY1
LK5: CALL KS1
CALL DEL10MS
JNZ LK5
MOV A,73H
MOV 6DH,A ;保存下限
MOV A,74H
MOV 6EH,A
MOV A,75H
MOV 6FH,A

EX_CON: ;CPL P1.3 ;使用仪器测试时用
CALL DS18B20 ;转DS18B20采样子程序
CALL DISPLAY
;以下为后向通道控制部分
CONTROL:MOV A,73H
CJNE A,6DH,NEQA
MOV A,74H
CJNE A,6EH,NEQB
CLR P1.5
CLR P1.6
JMP EX_CON ;样温=下限,返回采样
NEQA: JNC NEQD ;CY=0,即(73H)>(6DH)时转比上限
SETB P1.5
CLR P1.6
JMP EX_CON
NEQB: JNC NEQD
SETB P1.5
CLR P1.6
JMP EX_CON
NEQD: MOV A,73H
CJNE A,70H,NEQE
MOV A,74H
CJNE A,71H,NEQF
CLR P1.5
CLR P1.6
JMP EX_CON ;样温=上限,返回采样
NEQE: JNC NEQH ;CY=0,即(73H)>(70H)时转打开降温开关
CLR P1.5
CLR P1.6
JMP EX_CON
NEQF: JNC NEQH
CLR P1.5
CLR P1.6
JMP EX_CON
NEQH: CLR P1.5
SETB P1.6
JMP EX_CON

KS1: MOV P0,#0FFH
MOV A,P0
CPL A
ANL A,#0FH
RET
DEL10MS:MOV R7,#20
S2: MOV R6,#250
S1: DJNZ R6,S1
DJNZ R7,S2
RET

;以下为显示
DISPLAY:MOV A,73H ;字码
MOV R0,A
MOV R1,#01H ;位置
ACALL TRT

MOV A,74H
MOV R0, A
MOV R1,#02H
ACALL TRT

MOV A,75H
MOV R0,A
MOV R1,#03H
ACALL TRT
RET
;JMP DIS

DS18B20:LCALL RESET ;测试温度探头存在否?
MOV A,#0CCH
LCALL WRITE
MOV A,#44H
LCALL WRITE ;命令字写入探头内
MOV R7,#70D ;延时
CALL DE11
LCALL RESET
MOV A,#0CCH
LCALL WRITE
MOV A,#0BEH
LCALL WRITE
LCALL READ ;读取探头内的温度值
MOV B,A
MOV 21H,A ;保存温度值低位
LCALL READ
MOV 20H,A ;保存温度值高位
LCALL EXCHANG ;温度值B转D并送入显示缓存
RET

RESET:
LA: SETB P1.0 ;复位
NOP
LB: CLR P1.0 ;480US < TS < 960US
MOV R7,#36D
CALL DE11
SETB P1.0 ;60US < T <90US
LC: MOV R7,#6D
CALL DE11
CLR C
ORL C,P1.0
JC LB
LF: MOV R7,#18D ;T > 270
CALL DE11
SETB P1.0
RET

WRITE:
MOV R3,#8
WR1: SETB P1.0
CLR P1.0 ;延时
MOV R4,#2
WR2: DJNZ R4,WR2
RRC A
MOV P1.0,C ;写的数据在线上需延时
MOV R4,#18
WR3: DJNZ R4,WR3
NOP
SETB P1.0
DJNZ R3,WR1
SETB P1.0
RET

READ:
MOV R3,#8
RD1: CLR C
SETB P1.0 ;适当延时
NOP
NOP
CLR P1.0 ;适当延时
NOP
NOP
SETB P1.0 ;延时
MOV R4,#9
RD2: DJNZ R4,RD2
MOV C,P1.0
RRC A
MOV R5,#23
RD3: DJNZ R5,RD3
DJNZ R3,RD1
RET

DELAY: MOV R7,#10
DL2: MOV R6,#200
DL1: MOV R5,#250
DL0: DJNZ R5,DL0
DJNZ R6,DL1
DJNZ R7,DL2
RET

EXCHANG: MOV A,21H
SWAP A
ANL A,#0FH
MOV 24H,A
MOV A,20H
ANL A,#07H
SWAP A
ADD A,24H
MOV B,#10D
DIV AB
MOV 73H,A
MOV 74H,B
MOV A,21H
ANL A,#0FH
mov dptr,#SADDR ;小数部分的转换查表
movc a,@a+dptr
MOV 75H,A
ret
SADDR: DB 00H,1H,02h ; bo_ying address in eeprom 0800h-0A08H
DB 03H,3H,04h ; da_ling address in eeprom 0A10H-0AD3H
DB 04H,05H,06h ;shou_ying address in eeprom 0AE0H-0C25H
DB 06H,7H,08h ; lu_ying address in eeprom 0C30H-0D75H
DB 08H,9H,9h,9H

DELAY15US: ;12MHZ ,15US
DE11: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,DE11
RET

TRT: CLR P2.0 ;LOAD
MOV R2,#08H
MOV A,R1
T_1: CLR P2.2 ;SETB P2.2 ;CLK
RLC A
MOV P2.1,C ;DATA
CALL TDELAY
SETB P2.2 ;CLR P2.2
DJNZ R2,T_1
CALL TDELAY
MOV R2, #08H
MOV A,R0
TT2: CLR P2.2 ;SETB P2.2
RLC A
MOV P2.1,C
CALL TDELAY
SETB P2.2 ;CLR P2.2
DJNZ R2,TT2
SETB P2.0 ;CLR P2.0
RET

TDELAY: MOV R6,#01H
TMS0: MOV R7,#03H
TMS1: DJNZ R7,TMS1
DJNZ R6,TMS0
RET
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-08

这给图能帮助你,不用太感激我,我很低调的。

本回答被提问者采纳
第2个回答  2011-01-07
给老师说NO/
第3个回答  2011-01-07
给我钱钱我就帮你做,这个工程量很大本回答被网友采纳
相似回答