打印
[应用方案]

SC93F743x点灯成功!踩坑记!

[复制链接]
896|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hayden0 于 2019-4-5 21:06 编辑

在废了牛二虎之力后,终于找到该型号单片机的demo程序,按照Demo写了个LED点灯程序。但发现程序并没按照写的执行,原来是我踩中了第一个坑。

坑1:
写的LED闪烁程序不闪烁,处于常亮状态。
原来是写的延时函数延时太短,后来用STC-ISP软件的延时计算器自动生成的延时函数解决了!
void Delay500ms()                //@6.000MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 16;
        j = 57;
        k = 12;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

由于我没用外部晶振,使用的是内部24M的HRC振荡器,一开始并不知道单片机的默认系统频率,所以试了好几次才发现6MHz时比较吻合。
8051指令集选择STC-Y6。

坑2:
选择3.3V供电后程序不工作,LED点不亮!
一番周折才发现,是烧录设置的问题,默认状态LVR低电压复位设置的是4.3V,所以当3.3V供电的时候,单片机自然处于低压复位状态而无法正常工作。

解决:我这里设置成2.9V后重新烧录程序就正常了。
从这个设置页面也证实默认系统频率的确是6MHz!


关键代码:
 void LED_Init(void)  
  {   
                P0CON|=0x01;//设置P0.0为推挽输出模式
                P0PH&=0xFE;//不上拉

  }
void LED_Toggle(void)
{
        LED=~LED;
        Delay500ms();
}


千呼万唤始出来,点灯成功GIF:







使用特权

评论回复

相关帖子

沙发
请叫我树人| | 2019-4-8 10:32 | 只看该作者
好帖子啊!帮你顶住啊!感谢分享啊! 真是不错啊!

使用特权

评论回复
板凳
ayb_ice| | 2019-4-8 14:21 | 只看该作者
这哪里是坑,都不看手册的吗

使用特权

评论回复
地板
戈卫东| | 2019-4-15 10:12 | 只看该作者
STC-ISP原来还可以这样用!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

286

帖子

3

粉丝