杜洋工作室 DoYoung Studio
- STC单片机36个IO接口流水灯效果
- 适用于MCS-51内核的单片机产品(以STC系列单片机为例)
- 使用Keil C51 编译器软件(以Keil uVision2为例)
/********************************************************************************************* 项目: 杜洋工作室编程实例 程序名: 36i/o36LED流水灯 编写人: 时辉 编写时间: 2011年09月04日 硬件支持: STC12C5A32S2 外部12Mhz晶振x1 30Pf电容x2 接口说明: 单片机P0、P1、P2、P3、P4共36个i/o各连接一个LED的正极 修改日志: /********************************************************************************************* 说明: 面包板上实验,系统使用STC12C5A32S2单片机 外部12Mhz晶振x1 30Pf电容x2 流水灯连接次序:从左到右是 P1.0~P1.7 P3.0~P3.7 P0.0~P0.7 P2.7~P2.0 P4.4~P4.7 /*********************************************************************************************/ #include
//头文件 /********************************************************************************************* 函数名:毫秒级CPU延时函数 调 用:DELAY_MS (?); 参 数:1~65535(参数不可为0) 返回值:无 结 果:占用CPU方式延时与参数数值相同的毫秒时间 备 注:应用于1T单片机时i<600,应用于12T单片机时i<125 /*********************************************************************************************/ void DELAY_MS (unsigned int a){ unsigned int i; while( --a != 0){ for(i = 0; i < 600; i++); } } /*********************************************************************************************/ /********************************************************************************************* 函数名:初始化函数 调 用:init (); 参 数:无 返回值:无 结 果:设置i/o状态(P4口为普通i/o口,全部i/o初始为低电平、全部i/o工作状态为强推挽输出。) 备 注: /*********************************************************************************************/ void init (void){ // i/o初始化 P4SW = 0xFF; //设置P4口为普通i/o口 P0 = 0x00; //设置P0 I/O状态为低电平 P1 = 0x00; //设置P1 I/O状态为低电平 P2 = 0x00; //设置P2 I/O状态为低电平 P3 = 0x00; //设置P3 I/O状态为低电平 P4 = 0x00; //设置P4 I/O状态为低电平 P0M1 = 0x00; //00000000 设置P0 I/O工作方式为:强推挽输出 P0M0 = 0xFF; //11111111 设置P0 I/O工作方式为:强推挽输出 P1M1 = 0x00; //00000000 设置P1 I/O工作方式为:强推挽输出 P1M0 = 0xFF; //11111111 设置P1 I/O工作方式为:强推挽输出 P2M1 = 0x00; //00000000 设置P2 I/O工作方式为:强推挽输出 P2M0 = 0xFF; //11111111 设置P2 I/O工作方式为:强推挽输出 P3M1 = 0x00; //00000000 设置P3 I/O工作方式为:强推挽输出 P3M0 = 0xFF; //11111111 设置P3 I/O工作方式为:强推挽输出 P4M1 = 0x00; //00000000 设置P4 I/O工作方式为:强推挽输出 P4M0 = 0xF0; //11110000 设置P4 I/O工作方式为:强推挽输出 } /*********************************************************************************************/ /********************************************************************************************* 函数名:主函数 调 用:无 参 数:无 返回值:无 结 果:程序开始处,无限循环 备 注: /*********************************************************************************************/ void main (void){ //主函数 unsigned char i; //定义字符型变量i (8位) unsigned int x; //定义整形变量x (16位) x = 100 ; //设置流水速度,即延时x毫秒。 init(); //初始化函数 while(1){ //无限循环 for(i=0;i<8;i++){ //P1段,单LED,低位到高位流动(P1.0~P1.7) P1 = 1<
- 应用实例
【实验说明】 # 面包板上实验,系统使用STC12C5A32S2单片机 外部12Mhz晶振x1 30Pf电容x2 # 可以使用其他STC10、11、12系列的单片机代替,可改用内部RC时钟 # 流水灯连接次序,从左到右是: P1.0~P1.7 P3.0~P3.7 P0.0~P0.7 P2.7~P2.0 P4.4~P4.7
- 说明
- 正式视频
下载 Download
-
32个IO流水灯源程序包
链接 Links
-
STC单片机数据手册下载
更多 More
-
论坛服务
-
联系方式