9.4版stc32试验箱。
把试验箱的p6流水灯代码烧进去,发现是可以流水的。
于是对比试验箱的代码和我修改的代码。
都快一致了。用keil的swd仿真,将P6加入到watch里,发现P6都已经可以编程FE,FD了。按理说可以亮了。
结果还是烧进去还是不亮。
- #include <STC32G.H>
-
- #include "stdio.h"
- #include "intrins.h"
-
- //定义主频35Mhz
- #define MAIN_Fosc 35000000UL
-
- #define ON 0
- #define OFF 1
-
- typedef unsigned char u8;
- typedef unsigned int u16;
- typedef unsigned long int u32;
- //==========================================================================
-
- /************* 本地常量声明 **************/
- /************* IO口定义 **************/
- /************* 本地变量声明 **************/
- u8 i=0;
- u8 ledIndex;
- u8 code Led_Code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
-
- /************* 本地函数声明 **************/
- void delay_ms(u16 ms);
-
- /**************** 外部函数声明和外部变量声明 *****************/
- /******************** 主函数 **************************/
-
- void main()
- {
- //u8 Led_Code[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
-
- WTST=0;//设置等待时间为0个时钟,cpu速度最快
- EAXFR = 1; //扩展寄存器(XFR)访问使能
- CKCON = 0; //提高访问XRAM速度
-
- P2M1=0x00;
- P2M0=0x00;//设置为准双向口模式
- P6M1 = 0xff;
- P6M0 = 0xff; //设置为漏极开路(实验箱加了上拉电阻到3.3V)
-
- while(1){
- for(i=0;i<8;i++){
- //P6=Led_Code[i];
- P6 = ~Led_Code[i];
- delay_ms(300);
- }
- for(i=1;i<7;i++){
- P6 = ~Led_Code[i];
- delay_ms(300);
- }
- }
- }
- //简单延时函数,自适应主频,1毫秒*ms
- void delay_ms(u16 ms){
- u16 i;
- do{
- i=MAIN_Fosc/6000;
- while(--i);
- }while(--ms);
- }
复制代码
|