[应用方案] SC93F743x点灯成功!踩坑记!

[复制链接]
179|3
 楼主 | 2019-4-5 21:03 | 显示全部楼层 |阅读模式
本帖最后由 hayden0 于 2019-4-5 21:06 编辑

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

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

  4.         _nop_();
  5.         _nop_();
  6.         i = 16;
  7.         j = 57;
  8.         k = 12;
  9.         do
  10.         {
  11.                 do
  12.                 {
  13.                         while (--k);
  14.                 } while (--j);
  15.         } while (--i);
  16. }
复制代码

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

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

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


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

  5.   }
  6. void LED_Toggle(void)
  7. {
  8.         LED=~LED;
  9.         Delay500ms();
  10. }
复制代码


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







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2019-4-8 10:32 | 显示全部楼层
好帖子啊!帮你顶住啊!感谢分享啊! 真是不错啊!
| 2019-4-8 14:21 | 显示全部楼层
这哪里是坑,都不看手册的吗
| 2019-4-15 10:12 | 显示全部楼层
STC-ISP原来还可以这样用!
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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