找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2902|回复: 0
打印 上一主题 下一主题
收起左侧

STC8A/8F特殊功能参考程序 低压检测 读取Bandgap ID 读取内部32K掉电唤醒定时器频率

[复制链接]
跳转到指定楼层
楼主
希望这些程序和资料对大家有用

单片机源程序如下:
读芯片id
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. #define        FOSC        11059200UL
  4. #define        BRT        (65536 - FOSC / 115200 / 4)

  5. sfr        AUXR        =        0x8e;

  6. bit        busy;
  7. char        *ID;

  8. void UartIsr() interrupt 4
  9. {
  10.         if (TI)
  11.         {
  12.                 TI = 0;
  13.                 busy = 0;
  14.         }
  15.         if (RI)
  16.         {
  17.                 RI = 0;
  18.         }
  19. }

  20. void UartInit()
  21. {
  22.         SCON = 0x50;
  23.         TMOD = 0x00;
  24.         TL1 = BRT;
  25.         TH1 = BRT >> 8;
  26.         TR1 = 1;
  27.         AUXR = 0x40;
  28.         busy = 0;
  29. }

  30. void UartSend(char dat)
  31. {
  32.         while (busy);
  33.         busy = 1;
  34.         SBUF = dat;
  35. }

  36. void main()
  37. {
  38.         char i;

  39.         ID = (char code *)0xfdf9;        // STC8A8K64S4A10
  40. //        ID = (char code *)0xeff9;        // STC8A8K60S4A10
  41. //        ID = (char code *)0x7ff9;        // STC8A8K32S4A10
  42. //        ID = (char code *)0x3ff9;        // STC8A8K16S4A10
  43.         UartInit();
  44.         ES = 1;
  45.         EA = 1;

  46.         for (i=0; i<7; i++)
  47.         {
  48.                 UartSend(ID[i]);
  49.         }
  50.        
  51.         while (1);
  52. }

复制代码


低压检测
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. sfr     RSTCFG      =   0xff;
  4. #define ENLVR           0x40                    //RSTCFG.6
  5. #define LVD2V0          0x00                    //LVD@2.0V
  6. #define LVD2V4          0x01                    //LVD@2.4V
  7. #define LVD2V7          0x02                    //LVD@2.7V
  8. #define LVD3V0          0x03                    //LVD@3.0V
  9. sbit    ELVD        =   IE^6;
  10. #define LVDF            0x20                    //PCON.5
  11. sbit    P32         =   P3^2;

  12. void Lvd_Isr() interrupt 6
  13. {
  14.     PCON &= ~LVDF;                              //清中断标志
  15.     P32 = ~P32;                                 //测试端口
  16. }

  17. void main()
  18. {
  19.     PCON &= ~LVDF;                              //测试端口
  20. //  RSTCFG = ENLVR | LVD3V0;                    //使能3.0V时低压复位,不产生LVD中断
  21.     RSTCFG = LVD3V0;                            //使能3.0V时低压中断
  22.     ELVD = 1;                                   //使能LVD中断
  23.     EA = 1;

  24.     while (1);
  25. }
复制代码
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. #define        FOSC        11059200UL
  4. #define        BRT        (65536 - FOSC / 115200 / 4)

  5. sfr        AUXR        =        0x8e;

  6. bit        busy;
  7. int        *F32K;

  8. void UartIsr() interrupt 4
  9. {
  10.         if (TI)
  11.         {
  12.                 TI = 0;
  13.                 busy = 0;
  14.         }
  15.         if (RI)
  16.         {
  17.                 RI = 0;
  18.         }
  19. }

  20. void UartInit()
  21. {
  22.         SCON = 0x50;
  23.         TMOD = 0x00;
  24.         TL1 = BRT;
  25.         TH1 = BRT >> 8;
  26.         TR1 = 1;
  27.         AUXR = 0x40;
  28.         busy = 0;
  29. }

  30. void UartSend(char dat)
  31. {
  32.         while (busy);
  33.         busy = 1;
  34.         SBUF = dat;
  35. }

  36. void main()
  37. {
  38.         F32K = (int idata *)0xf8;
  39.         UartInit();
  40.         ES = 1;
  41.         EA = 1;

  42.         UartSend(*F32K >> 8);        //读取32K频率的高字节
  43.         UartSend(*F32K);        //读取32K频率的低字节
  44.        
  45.         while (1);
  46. }
复制代码


所有资料51hei提供下载:

STC8.pdf

8.87 MB, 下载次数: 6, 下载积分: 黑币 -5

STC8A和8F.7z

4.25 KB, 下载次数: 24, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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