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

从F到0 - From F to 0

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

C51/STC单片机 定时器中断实现驱动1位静态数码管显示0~9 A~F 1秒累加十六进制数字

[复制链接]
发表于 2021-10-17 20:38:02 | 显示全部楼层 |阅读模式
晶振:12Mhz 型号:STC任意
P2口连接1位共阳数码管 上电显示0,每隔1秒显示十六进制累加:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 。

main.png
  1. #include "STC12C5A60S2.h"
  2. #include "intrins.h"
  3. #define u8 unsigned char
  4. #define u16 unsigned int
  5. #define feed_dog() WDT_CONTR |= 0x10        //看门狗喂狗
  6. u8 code nbr[16] = {                //共阳数码管段码16进制
  7.     0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,
  8. };

  9. void InitTimer0(){
  10.     TMOD = 0x01;
  11.     TH0 = 0x0B;
  12.     TL0 = 0xDC;
  13.     EA = 1;
  14.     ET0 = 1;
  15.     TR0 = 1;
  16. }

  17. u8 a = 0;
  18. void main(){
  19.     WDT_CONTR = 0x27;
  20.     InitTimer0();
  21.     while (1) {
  22.         feed_dog();
  23.     }
  24. }

  25. void Timer0Interrupt() interrupt 1 {        //12Mhz 62.5mS 定时器中断
  26.     static u8 j = 15;
  27.     TH0 = 0x0B;
  28.     TL0 = 0xDC;
  29.     if (++j >= 16) {
  30.         j = 0;
  31.         P2 = nbr[a++];
  32.         if (a >= 16) {
  33.             a = 0;
  34.         }
  35.     }

  36. }
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-20 23:51 , Processed in 0.562032 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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