今天学习了第六集LED闪烁和花式点灯- #include "../../comm/STC32G.h"
-
- #include "stdio.h"
- #include "intrins.h"
-
- typedef unsigned char u8;
- typedef unsigned int u16;
- typedef unsigned long u32;
-
- #define MAIN_Fosc 24000000UL
-
-
-
- u8 ledIndex;
- u8 code ledNum[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
-
-
- void delay_ms(u8 ms);
-
-
-
-
- /******************** 主函数 **************************/
- void main(void)
- {
- WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
- EAXFR = 1; //扩展寄存器(XFR)访问使能
- CKCON = 0; //提高访问XRAM速度
-
- P0M1 = 0x30; P0M0 = 0x30; //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P1M1 = 0x30; P1M0 = 0x30; //设置P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P2M1 = 0x3c; P2M0 = 0x3c; //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P3M1 = 0x50; P3M0 = 0x50; //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
- P4M1 = 0x3c; P4M0 = 0x3c; //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P5M1 = 0x0c; P5M0 = 0x0c; //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
- P6M1 = 0x00; P6M0 = 0xff; //设置为推挽输出
- P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
-
- P40 = 0; //LED Power On
-
- while(1)
- {
- P6 = ~ledNum[ledIndex]; //输出低驱动
- ledIndex++;
- if(ledIndex > 7)
- {
- ledIndex = 0;
- }
- delay_ms(250);
- delay_ms(250);
- }
- }
-
-
- void delay_ms(u8 ms)
- {
- u16 i;
- do{
- i = MAIN_Fosc / 6000;
- while(--i);
- }while(--ms);
- }
复制代码
|