楼主: liupeng123456

51开发板STC8H天问51-Mini面包板学习板学习手记

[复制链接]

1

主题

11

帖子

49

积分

注册会员

Rank: 2

积分
49
 楼主| 发表于 2020-11-30 20:39:22 | 显示全部楼层
liupeng123456 发表于 2020-11-25 09:31
两种方式:
1.推挽输出,拉电流。IO口——LED——负极
2.准双向IO口,灌电流点亮。正极——LED——IO口。

#include    "STC8G.h"                                //包括了REG51.H文件里面的内容
#define     MAIN_Fosc       11059200L   //定义主时钟
typedef     unsigned char   u8;         //为复杂的声明定义简单的别名
typedef     unsigned int    u16;        //为复杂的声明定义简单的别名
typedef     unsigned long   u32;        //为复杂的声明定义简单的别名

/*****************
函数: void  delay_ms(u8 ms)
参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟.
*****************/
void  delay_ms(u8 ms)
{
     u16 i;
     do
                 {
                                i = MAIN_Fosc / 13000;
                                while(--i)    ;   //14T per loop
     }
                 while(--ms);
}
//Void  delay_ms(u8 ms);               //延时函数声明
void  IO_init_config(void)           //IO口初始化函数
{
       
    P1M1 = 0x00;   P1M0 = 0x01;   //设置为准双向口
    P3M1 = 0;   P3M0 = 0;   //设置为准双向口
    P5M1 = 0;   P5M0 = 0;   //设置为准双向口
}


/******************** 主函数 **************************/
void main(void)
{   //进入主函数初始化
          IO_init_config();  //IO口初始化函数
    while(1)   //进入主函数主循序
    {
        P10 = 1;
                          delay_ms(250);
                          P10 = 0;              //P1.0去点亮LED
        delay_ms(250);
                          P11 = 1;                                //P1.0去灭LED
                                delay_ms(250);
                                P11 = 0;
        delay_ms(250);
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-9-1 16:23 , Processed in 0.092180 second(s), 21 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表