- 打卡等级:以坛为家I
- 打卡总天数:368
- 最近打卡:2026-04-02 08:50:05
管理员
- 积分
- 22799
|
发表于 2026-1-21 08:07:26
|
显示全部楼层
//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//若无特别说明,工作频率一般为11.0592MHz
WDT_CONTR DATA 0C1H ;看门狗控制寄存器
P32 BIT P3.2 ;测试口
P0M1 DATA 0x93 ; P0M1.n,P0M0.n =00--->Standard, 01--->push-pull
P0M0 DATA 0x94 ; =10--->pure input, 11--->open drain
P1M1 DATA 0x91 ; P1M1.n,P1M0.n =00--->Standard, 01--->push-pull
P1M0 DATA 0x92 ; =10--->pure input, 11--->open drain
P2M1 DATA 0x95 ; P2M1.n,P2M0.n =00--->Standard, 01--->push-pull
P2M0 DATA 0x96 ; =10--->pure input, 11--->open drain
P3M1 DATA 0xB1 ; P3M1.n,P3M0.n =00--->Standard, 01--->push-pull
P3M0 DATA 0xB2 ; =10--->pure input, 11--->open drain
P4M1 DATA 0xB3 ; P4M1.n,P4M0.n =00--->Standard, 01--->push-pull
P4M0 DATA 0xB4 ; =10--->pure input, 11--->open drain
P5M1 DATA 0xC9 ; P5M1.n,P5M0.n =00--->Standard, 01--->push-pull
P5M0 DATA 0xCA ; =10--->pure input, 11--->open drain
P6M1 DATA 0xCB ; P6M1.n,P6M0.n =00--->Standard, 01--->push-pull
P6M0 DATA 0xCC ; =10--->pure input, 11--->open drain
P7M1 DATA 0xE1 ;
P7M0 DATA 0xE2 ;
//-----------------------------------------
ORG 0000H
LJMP MAIN
//-----------------------------------------
ORG 0100H
MAIN:
CLR A
MOV P0M1, A ;设置为准双向口
MOV P0M0, A
MOV P1M1, A ;设置为准双向口
MOV P1M0, A
MOV P2M1, A ;设置为准双向口
MOV P2M0, A
MOV P3M1, A ;设置为准双向口
MOV P3M0, A
MOV P4M1, A ;设置为准双向口
MOV P4M0, A
MOV P5M1, A ;设置为准双向口
MOV P5M0, A
MOV P6M1, A ;设置为准双向口
MOV P6M0, A
MOV P7M1, A ;设置为准双向口
MOV P7M0, A
CLR P32
CALL DELAY ;复位闪灯延时
SETB P32
MOV WDT_CONTR,#04H ;看门狗定时器溢出时间计算公式: (12 * 32768 * PS) / FOSC (秒)
;设置看门狗定时器分频数为32,溢出时间如下:
;11.0592M : 1.14s
;18.432M : 0.68s
;20M : 0.63s
ORL WDT_CONTR,#20H ;启动看门狗
SJMP $
DELAY:
MOV R0,#0
MOV R1,#0
DELAY1:
DJNZ R1,DELAY1
DJNZ R0,DELAY1
RET
END
|
|