点灯程序
本帖最后由 国学芯用 于 2022-12-6 09:18 编辑STC-ISP里的范例程序I/O口测试程序,可以直接下载&复制&保存&另存为keil文件STC的实验箱、核心板的范例程序包里也有点灯程序
可以从 STC-ISP V6.91以上版本的 ISP烧录/辅助开发工具包一体化软件的
//资料下载// 专栏 中下载 开源的 C语言代码, 开源的原理图
新网站www.STCAI.COM
本帖最后由 国学芯用 于 2022-12-6 09:18 编辑
#include "reg51.h"
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;
sbit P03 = P0^3;
sbit P04 = P0^4;
sbit P05 = P0^5;
sbit P06 = P0^6;
sbit P07 = P0^7;
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit P30 = P3^0;
sbit P31 = P3^1;
sbit P32 = P3^2;
sbit P33 = P3^3;
sbit P34 = P3^4;
sbit P35 = P3^5;
sbit P36 = P3^6;
sbit P37 = P3^7;
sfr P4 = 0xC0;
sbit P40 = P4^0;
sbit P41 = P4^1;
sbit P42 = P4^2;
sbit P43 = P4^3;
sbit P44 = P4^4;
sbit P45 = P4^5;
sbit P46 = P4^6;
sbit P47 = P4^7;
sfr P5 = 0xC8;
sbit P50 = P5^0;
sbit P51 = P5^1;
sbit P52 = P5^2;
sbit P53 = P5^3;
sbit P54 = P5^4;
sbit P55 = P5^5;
sbit P56 = P5^6;
sbit P57 = P5^7;
sfr P6 = 0xE8;
sbit P60 = P6^0;
sbit P61 = P6^1;
sbit P62 = P6^2;
sbit P63 = P6^3;
sbit P64 = P6^4;
sbit P65 = P6^5;
sbit P66 = P6^6;
sbit P67 = P6^7;
sfr P7 = 0xF8;
sbit P70 = P7^0;
sbit P71 = P7^1;
sbit P72 = P7^2;
sbit P73 = P7^3;
sbit P74 = P7^4;
sbit P75 = P7^5;
sbit P76 = P7^6;
sbit P77 = P7^7;
void delay()
{
int i, j;
for (i=0; i<1000; i++)
for (j=0; j<500; j++);
}
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
P10 = 0;
delay();
P10 = 1;
P11 = 0;
delay();
P11 = 1;
P12 = 0;
delay();
P12 = 1;
P13 = 0;
delay();
P13 = 1;
P14 = 0;
delay();
P14 = 1;
P15 = 0;
delay();
P15 = 1;
P16 = 0;
delay();
P16 = 1;
P17 = 0;
delay();
P17 = 1;
// P30 = 0; //P3.0/P3.1为仿真口和USB下载口时不可演示
// delay();
// P30 = 1;
// P31 = 0;
// delay();
// P31 = 1;
P32 = 0;
delay();
P32 = 1;
P33 = 0;
delay();
P33 = 1;
P34 = 0;
delay();
P34 = 1;
P35 = 0;
delay();
P35 = 1;
P36 = 0;
delay();
P36 = 1;
P37 = 0;
delay();
P37 = 1;
P20 = 0;
delay();
P20 = 1;
P21 = 0;
delay();
P21 = 1;
P22 = 0;
delay();
P22 = 1;
P23 = 0;
delay();
P23 = 1;
P24 = 0;
delay();
P24 = 1;
P25 = 0;
delay();
P25 = 1;
P26 = 0;
delay();
P26 = 1;
P27 = 0;
delay();
P27 = 1;
P00 = 0;
delay();
P00 = 1;
P01 = 0;
delay();
P01 = 1;
P02 = 0;
delay();
P02 = 1;
P03 = 0;
delay();
P03 = 1;
P04 = 0;
delay();
P04 = 1;
P05 = 0;
delay();
P05 = 1;
P06 = 0;
delay();
P06 = 1;
P07 = 0;
delay();
P07 = 1;
P40 = 0;
delay();
P40 = 1;
P41 = 0;
delay();
P41 = 1;
P42 = 0;
delay();
P42 = 1;
P43 = 0;
delay();
P43 = 1;
P44 = 0;
delay();
P44 = 1;
P45 = 0;
delay();
P45 = 1;
P46 = 0;
delay();
P46 = 1;
P47 = 0;
delay();
P47 = 1;
P50 = 0;
delay();
P50 = 1;
P51 = 0;
delay();
P51 = 1;
P52 = 0;
delay();
P52 = 1;
P53 = 0;
delay();
P53 = 1;
P54 = 0;
delay();
P54 = 1;
P55 = 0;
delay();
P55 = 1;
P56 = 0;
delay();
P56 = 1;
P57 = 0;
delay();
P57 = 1;
P60 = 0;
delay();
P60 = 1;
P61 = 0;
delay();
P61 = 1;
P62 = 0;
delay();
P62 = 1;
P63 = 0;
delay();
P63 = 1;
P64 = 0;
delay();
P64 = 1;
P65 = 0;
delay();
P65 = 1;
P66 = 0;
delay();
P66 = 1;
P67 = 0;
delay();
P67 = 1;
P70 = 0;
delay();
P70 = 1;
P71 = 0;
delay();
P71 = 1;
P72 = 0;
delay();
P72 = 1;
P73 = 0;
delay();
P73 = 1;
P74 = 0;
delay();
P74 = 1;
P75 = 0;
delay();
P75 = 1;
P76 = 0;
delay();
P76 = 1;
P77 = 0;
delay();
P77 = 1;
while (1)
{
P0 = 0x00;
delay();
P0 = 0xff;
P1 = 0x00;
delay();
P1 = 0xff;
P3 = 0x03; //P3.0/P3.1为仿真口和USB下载口时不可演示
delay();
P3 = 0xff;
P2 = 0x00;
delay();
P2 = 0xff;
P4 = 0x00;
delay();
P4 = 0xff;
P5 = 0x00;
delay();
P5 = 0xff;
P6 = 0x00;
delay();
P6 = 0xff;
P7 = 0x00;
delay();
P7 = 0xff;
}
}
;根据STC官网ISP程序内的范例程序《I/O端口测试》C语言版本翻译而来。
;伟福编译器环境调试通过
P0M0 DATA 094H ;
P0M1 DATA 093H
P1M0 DATA 092H
P1M1 DATA 091H
P2M0 DATA 096H
P2M1 DATA 095H
P3M0 DATA 0B2H
P3M1 DATA 0B1H
P4M0 DATA 0B4H
P4M1 DATA 0B3H
P5M0 DATA 0CAH
P5M1 DATA 0C9H
P6M0 DATA 0CCH
P6M1 DATA 0CBH
P7M0 DATA 0E2H
P7M1 DATA 0E1H
P0 DATA 0x80; ;
P00 BIT P0.0;
P01 BIT P0.1;
P02 BIT P0.2;
P03 BIT P0.3;
P04 BIT P0.4;
P05 BIT P0.5;
P06 BIT P0.6;
P07 BIT P0.7;
P1 DATA 0x90; ;
P10 BIT P1.0;
P11 BIT P1.1;
P12 BIT P1.2;
P13 BIT P1.3;
P14 BIT P1.4;
P15 BIT P1.5;
P16 BIT P1.6;
P17 BIT P1.7;
P2 DATA 0xA0; ;
P20 BIT P2.0;
P21 BIT P2.1;
P22 BIT P2.2;
P23 BIT P2.3;
P24 BIT P2.4;
P25 BIT P2.5;
P26 BIT P2.6;
P27 BIT P2.7;
P3DATA 0xB0; ;
P30 BIT P3.0;
P31 BIT P3.1;
P32 BIT P3.2;
P33 BIT P3.3;
P34 BIT P3.4;
P35 BIT P3.5;
P36 BIT P3.6;
P37 BIT P3.7;
P4DATA 0xC0; ;
P40 BIT P4.0;
P41 BIT P4.1;
P42 BIT P4.2;
P43 BIT P4.3;
P44 BIT P4.4;
P45 BIT P4.5;
P46 BIT P4.6;
P47 BIT P4.7;
P5DATA 0xC8; ;
P50 BIT P5.0;
P51 BIT P5.1;
P52 BIT P5.2;
P53 BIT P5.3;
P54 BIT P5.4;
P55 BIT P5.5;
P56 BIT P5.6;
P57 BIT P5.7;
P6DATA 0xE8; ;
P60 BIT P6.0;
P61 BIT P6.1;
P62 BIT P6.2;
P63 BIT P6.3;
P64 BIT P6.4;
P65 BIT P6.5;
P66 BIT P6.6;
P67 BIT P6.7;
P7DATA 0xF8; ;
P70 BIT P7.0;
P71 BIT P7.1;
P72 BIT P7.2;
P73 BIT P7.3;
P74 BIT P7.4;
P75 BIT P7.5;
P76 BIT P7.6;
P77 BIT P7.7;
;------
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV SP, #5FH
MOV P0M0,#00H ;设置P0.0~P0.7为双向口模式
MOV P0M1,#00H
MOV P1M0,#00H ;设置P1.0~P1.7为双向口模式
MOV P1M1,#00H
MOV P2M0,#00H ;设置P2.0~P2.7为双向口模式
MOV P2M1,#00H
MOV P3M0,#00H ;设置P3.0~P3.7为双向口模式
MOV P3M1,#00H
MOV P4M0,#00H ;设置P4.0~P4.7为双向口模式
MOV P4M1,#00H
MOV P5M0,#00H ;设置P5.0~P5.7为双向口模式
MOV P5M1,#00H
MOV P6M0,#00H ;设置P6.0~P6.7为双向口模式
MOV P6M1,#00H
MOV P7M0,#00H ;设置P7.0~P7.7为双向口模式
MOV P7M1,#00H
CPLP00
CALL DELAY500MS
SETB P00
CPLP01
CALL DELAY500MS
SETB P01
CPLP02
CALL DELAY500MS
SETB P02
CPLP03
CALL DELAY500MS
SETB P03
CPLP04
CALL DELAY500MS
SETB P04
CPLP05
CALL DELAY500MS
SETB P05
CPLP06
CALL DELAY500MS
SETB P06
CPLP07
CALL DELAY500MS
SETB P07
CPLP10
CALL DELAY500MS
SETB P10
CPLP11
CALL DELAY500MS
SETB P11
CPLP12
CALL DELAY500MS
SETB P12
CPLP13
CALL DELAY500MS
SETB P13
CPLP14
CALL DELAY500MS
SETB P14
CPLP15
CALL DELAY500MS
SETB P15
CPLP16
CALL DELAY500MS
SETB P16
CPLP17
CALL DELAY500MS
SETB P17
CPLP20
CALL DELAY500MS
SETB P20
CPLP21
CALL DELAY500MS
SETB P21
CPLP22
CALL DELAY500MS
SETB P22
CPLP23
CALL DELAY500MS
SETB P23
CPLP24
CALL DELAY500MS
SETB P24
CPLP25
CALL DELAY500MS
SETB P25
CPLP26
CALL DELAY500MS
SETB P26
CPLP27
CALL DELAY500MS
SETB P27
; CPLP30 ;P3.0/P3.1为仿真口和USB下载口时不可演示
; CALL DELAY500MS
; SETB P30
; CPLP31
; CALL DELAY500MS
; SETB P31
CPLP32
CALL DELAY500MS
SETB P32
CPLP33
CALL DELAY500MS
SETB P33
CPLP34
CALL DELAY500MS
SETB P34
CPLP35
CALL DELAY500MS
SETB P35
CPLP36
CALL DELAY500MS
SETB P36
CPLP37
CALL DELAY500MS
SETB P37
CPLP40
CALL DELAY500MS
SETB P40
CPLP41
CALL DELAY500MS
SETB P41
CPLP42
CALL DELAY500MS
SETB P42
CPLP43
CALL DELAY500MS
SETB P43
CPLP44
CALL DELAY500MS
SETB P44
CPLP45
CALL DELAY500MS
SETB P45
CPLP46
CALL DELAY500MS
SETB P46
CPLP47
CALL DELAY500MS
SETB P47
CPLP50
CALL DELAY500MS
SETB P50
CPLP51
CALL DELAY500MS
SETB P51
CPLP52
CALL DELAY500MS
SETB P52
CPLP53
CALL DELAY500MS
SETB P53
CPLP54
CALL DELAY500MS
SETB P54
CPLP55
CALL DELAY500MS
SETB P55
CPLP56
CALL DELAY500MS
SETB P56
CPLP57
CALL DELAY500MS
SETB P57
CPLP60
CALL DELAY500MS
SETB P60
CPLP61
CALL DELAY500MS
SETB P61
CPLP62
CALL DELAY500MS
SETB P62
CPLP63
CALL DELAY500MS
SETB P63
CPLP64
CALL DELAY500MS
SETB P64
CPLP65
CALL DELAY500MS
SETB P65
CPLP66
CALL DELAY500MS
SETB P66
CPLP67
CALL DELAY500MS
SETB P67
CPLP70
CALL DELAY500MS
SETB P70
CPLP71
CALL DELAY500MS
SETB P71
CPLP72
CALL DELAY500MS
SETB P72
CPLP73
CALL DELAY500MS
SETB P73
CPLP74
CALL DELAY500MS
SETB P74
CPLP75
CALL DELAY500MS
SETB P75
CPLP76
CALL DELAY500MS
SETB P76
CPLP77
CALL DELAY500MS
SETB P77
MOV P0,#00H
CALL DELAY500MS
MOV P0,#0FFH
MOV P1,#00H
CALL DELAY500MS
MOV P1,#0FFH
MOV P2,#00H
CALL DELAY500MS
MOV P2,#0FFH
; MOV P3,#00H ;P3.0/P3.1为仿真口和USB下载口时不可演示
; CALL DELAY500MS
; MOV P3,#0FFH
MOV P4,#00H
CALL DELAY500MS
MOV P4,#0FFH
MOV P5,#00H
CALL DELAY500MS
MOV P5,#0FFH
MOV P6,#00H
CALL DELAY500MS
MOV P6,#0FFH
MOV P7,#00H
CALL DELAY500MS
MOV P7,#0FFH
JMP MAIN
DELAY500MS: ;@11.0592MHz
PUSH 30H
PUSH 31H
PUSH 32H
MOV 30H,#4
MOV 31H,#129
MOV 32H,#112
NEXT:
DJNZ 32H,NEXT
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 32H
POP 31H
POP 30H
RET
END
看起来不错,试试……
页:
[1]