设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 849|回复: 0
收起左侧

STC32G12K128 单片机 定时器中断实现精准输出1HZ方波并控制LED闪烁的程序源码

[复制链接]
发表于 2022-7-30 08:58:24 | 显示全部楼层 |阅读模式
本帖最后由 GPIO 于 2022-8-1 13:26 编辑

1.png
单片机型号:STC32G12K128 编译环境:Keil C251 晶振频率:12Mhz
硬件连接:LED的负极接P3.2、正极串联100R电阻到VCC,LED将1HZ闪烁。
  1. #include "STC32G.h"
  2. #include "stdio.h"
  3. #include "intrins.h"
  4. #define T1ms 0xFC18         //12T 12Mhz 1ms 定时器初值
  5. sbit LED = P3 ^ 2;

  6. void InitTimer0(){
  7.     TMOD = 0x01;
  8.     TH0 = T1ms >> 8;
  9.     TL0 = T1ms;
  10.     EA = 1;
  11.     ET0 = 1;
  12.     TR0 = 1;
  13. }

  14. void main() {
  15.     WDT_CONTR = 0x27;       //开看门狗
  16.     P3M0 = 0x00;            //STC32:除P3.0、P3.1外 其余IO口上电瞬间为高阻模式
  17.     P3M1 = 0x00;            //将P3.0~P3.7设置为准双向模式,否则LED不亮
  18.     InitTimer0();
  19.     while (1) {
  20.         WDT_CONTR |= 0x10;  //看门狗喂狗
  21.     }
  22. }

  23. void Timer0Interrupt() interrupt 1{     //1ms定时器中断
  24.     static unsigned int ms = 0;
  25.     TH0 = T1ms >> 8;
  26.     TL0 = T1ms;
  27.     if (++ms >= 500) {
  28.         ms = 0;
  29.         LED = !LED;
  30.     }
  31. }
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-16 18:43 , Processed in 0.451026 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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