找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4219|回復(fù): 0
收起左側(cè)

STC15W104+204w單片機(jī)例程資料 產(chǎn)生10Hz脈沖等程序

[復(fù)制鏈接]
ID:848824 發(fā)表于 2020-12-25 09:29 | 顯示全部樓層 |閱讀模式
51hei.png
  1. /*************************************************************************************************
  2. *  * 工 程 名:4路數(shù)字電源用 外部觸發(fā)發(fā)生器
  3. *  * 創(chuàng) 建 人:
  4. *  * 創(chuàng)建時(shí)間:
  5. *  * 編 譯 器:
  6. *  * 描    述:
  7.                                           
  8. ---------------------------------------------------------------------------------------------------

  9. **----------------------------------------當(dāng)前版本修訂---------------------------------------------
  10. *  * 修改人:
  11. *  * 日 期:
  12. *  * 描 述:
  13. *  *
  14. *  * ----------------------------------------------------------------------------------------------
  15. *  * 修改人:
  16. *  * 日 期:
  17. *  * 描 述:
  18. *  *
  19. *  * ----------------------------------------------------------------------------------------------         

  20. **************************************************************************************************/
  21. #include <STC15F104E.H>
  22. #include <intrins.h>
  23. #include <string.h>

  24. #undef          BIT
  25. #define         BIT(x)    (1<<(x))
  26. #define         IOSET(port,x)                  (port)|=(x)
  27. #define         IOCLR(port,x)                  (port)&=~(x)
  28. #define         IOXOR(port,x)                  (port)^=(x)
  29. #define         GETBIT(port,x)          ((port&BIT(x))>>x)
  30. #define         CLI()                                EA=0                //關(guān)全局中斷
  31. #define         SEI()                                EA=1                //開全局中斷


  32. #define                TH0RLD                                0xFA
  33. #define                TL0RLD                                0x00

  34. /**************************************************************************************************
  35. *  * 函數(shù)名稱:void timer0(void)        interrupt 1
  36. *  * 函數(shù)功能:Timer0 中斷服務(wù)函數(shù)
  37. *  * 輸入?yún)?shù):
  38. *  * 返回參數(shù):
  39. *  * 備    注:               
  40. **************************************************************************************************/
  41. unsigned int n20HzCnt = 0;
  42. unsigned int n10HzCnt = 0;
  43. void timer0(void)        interrupt 1
  44. {
  45.         CLI();
  46.         TL0=TL0RLD;//重裝定時(shí)器
  47.         TH0=TH0RLD;       

  48.         if( 295 == n20HzCnt ++)
  49.         {
  50.                 n20HzCnt = 0;
  51.                 IOXOR(P3,BIT(5));
  52.         }
  53.         if( 560 == n10HzCnt ++)
  54.         {
  55.                 n10HzCnt = 0;
  56.                 IOXOR(P3,BIT(2));
  57.         }
  58.         //IOCLR(P1,BIT(6));
  59.         //IOSET(P1,BIT(6));
  60.         SEI();
  61. }

  62. /**************************************************************************************************
  63. *  * 函數(shù)名稱:void Timer0_Initialize(void)
  64. *  * 函數(shù)功能:Timer0 初始化
  65. *  * 輸入?yún)?shù):
  66. *  * 返回參數(shù):
  67. *  * 備    注:內(nèi)部時(shí)鐘FOSC = 18.432 ,定時(shí)1ms           初值 0xFA00
  68. **************************************************************************************************/
  69. void Timer0_Initialize(void)
  70. {
  71.         #if 0
  72.         U32 v;
  73.         TMOD&=0xf0;
  74.         TMOD|=0X01;        //T0方式1
  75.         v=FOSC/12/5000;
  76.         v=v-6;
  77.         if(v>65535)v=65535;
  78.         v=65535-v;
  79.         TH0RLD=v>>8;
  80.         TL0RLD=v;
  81.         TH0 =TH0RLD;
  82.         TL0 =TL0RLD;       
  83.         TR0 =1;        //啟動(dòng)T0
  84.         ET0 =1        //允許T0中斷
  85.         #endif


  86.         TMOD |= 0x1;    // 定時(shí)器T0,模式1                       
  87.         TH0        = TH0RLD;        // 定時(shí)時(shí)長(zhǎng)為1ms,即T0=0xFACB
  88.         TL0        = TL0RLD;
  89.         EA         = 1;
  90.         ET0        = 1;                  
  91.         TR0        = 1;

  92. }



  93. /**************************************************************************************************
  94. *  * 函數(shù)名稱:void InitPortAndVar(void)
  95. *  * 函數(shù)功能:IO端口配置和全局變量初始化
  96. *  * 輸入?yún)?shù):
  97. *  * 返回參數(shù):
  98. *  * 備    注:P3.2 P3.5 強(qiáng)推挽輸出                       
  99. **************************************************************************************************/
  100. void InitPortAndVar(void)
  101. {

  102.         P3M1 = 0x00;   //
  103.         P3M0 = 0x14;   // 1111 1111          

  104. }

  105. /**************************************************************************************************
  106. *  * 函數(shù)名稱:void Initialize_Devices(void)
  107. *  * 函數(shù)功能:設(shè)備初始化
  108. *  * 輸入?yún)?shù):
  109. *  * 返回參數(shù):
  110. *  * 備    注:P3.5 強(qiáng)推挽輸出                       
  111. **************************************************************************************************/
  112. void Initialize_Devices(void)
  113. {
  114.         InitPortAndVar();
  115.         //Uart1_init(2400,0);//28800/12=2400,關(guān)中斷
  116.         IOSET(AUXR,BIT(7));  // T0x12,讓T0的時(shí)鐘變?yōu)樵瓉?lái)的12倍。        1,一個(gè)時(shí)鐘周期 0 12個(gè)時(shí)鐘周期
  117.         Timer0_Initialize();
  118.         EA=1;
  119. }

  120. /**************************************************************************************************
  121. *  * 函數(shù)名稱:main 函數(shù)
  122. *  * 函數(shù)功能:
  123. **************************************************************************************************/
  124. void main(void)
  125. {
  126.         unsigned char k;
  127.         Initialize_Devices();
  128.         while(1)
  129.         {
  130.                 k = k;

  131.         }

  132. }
復(fù)制代碼

全部資料51hei下載地址:
STC15W104 204w資料.rar (2.51 MB, 下載次數(shù): 65)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表