国学芯用 发表于 2022-11-22 16:38:01

点灯程序

本帖最后由 国学芯用 于 2022-12-6 09:18 编辑

STC-ISP里的范例程序I/O口测试程序,可以直接下载&复制&保存&另存为keil文件STC的实验箱、核心板的范例程序包里也有点灯程序
可以从 STC-ISP V6.91以上版本的 ISP烧录/辅助开发工具包一体化软件的
//资料下载// 专栏 中下载 开源的 C语言代码, 开源的原理图   
新网站www.STCAI.COM

国学芯用 发表于 2022-11-23 09:23:03

本帖最后由 国学芯用 于 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;
    }
}

康辉55AA 发表于 2022-12-10 09:14:35

;根据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





lijinlei 发表于 2023-11-19 16:08:40

看起来不错,试试……
页: [1]
查看完整版本: 点灯程序