標題: FMD輝芒微單片機FT60F12x學習例程 C語言匯編都有 [打印本頁]

作者: tyu666    時間: 2022-4-28 12:50
標題: FMD輝芒微單片機FT60F12x學習例程 C語言匯編都有


代碼下載: FT60F12x-C語言.7z (6.91 MB, 下載次數(shù): 127)

包含以下常用功能模塊的C語言和匯編語言例程
EEPROM
IIC
INT
IO
IR
LVD
LVD_PWM
MSCK
PA_INT
PWM
SLEEP
SPI
TIMER0
TIMER2
UART
WDT

部分單片機源程序如下:
  1. //*********************************************************
  2. /* 文件名:TEST_60F12x_IO.c
  3. * 功能:   FT60F12x-IO功能演示
  4. * IC:     FT60F123 SOP16
  5. * 晶振:   16M/2T                    
  6. * 說明:   當DemoPortIn懸空或者高電平時,
  7. *               DemoPortOut輸出50Hz占空比50%的波形
  8. *               當DemoPortIn接地時,DemoPortOut輸出高電平
  9. *
  10. *                  FT60F123  SOP16
  11. *                 ----------------
  12. *  VDD-----------|1(VDD)   (VSS)16|-----------VSS     
  13. *  NC------------|2(PA7)   (PA0)15|------------NC
  14. *  DemoPortIn----|3(PA6)   (PA1)14|------------NC
  15. *  NC------------|4(PA5)   (PA2)13|------------NC
  16. *  DemoPortOut---|5(PA4)   (PA3)12|------------NC
  17. *  NC------------|6(PC5)   (PC0)11|------------NC
  18. *  NC------------|7(PC4)   (PC1)10|------------NC
  19. *  NC------------|8(PC3)   (PC2)09|------------NC
  20. *                                 ----------------
  21. */
  22. //*********************************************************
  23. #include "SYSCFG.h"
  24. //***********************宏定義****************************
  25. #define  DemoPortOut        PA4   
  26. #define  DemoPortIn                PA6
  27. /*-------------------------------------------------
  28. * 函數(shù)名:POWER_INITIAL
  29. * 功能:  上電系統(tǒng)初始化
  30. * 輸入:  無
  31. * 輸出:  無
  32. --------------------------------------------------*/        
  33. void POWER_INITIAL (void)
  34. {
  35.         OSCCON = 0B01110001;        //IRCF=111=16MHz/2T=8MHz,0.125us
  36.         INTCON = 0;                          //暫禁止所有中斷
  37.         PORTA = 0B00000000;               
  38.         TRISA = 0B01000000;                //PA輸入輸出 0-輸出 1-輸入
  39.                                                         //PA4-OUT PA6-IN
  40.         PORTC = 0B00000000;         
  41.         TRISC = 0B00000000;                //PC輸入輸出 0-輸出 1-輸入  
  42.                                                                
  43.         WPUA = 0B01000000;            //PA端口上拉控制 1-開上拉 0-關上拉
  44.                                                         //開PA6上拉
  45.         WPUC = 0B00000000;            //PC端口上拉控制 1-開上拉 0-關上拉
  46.                                                         //60系列PC口無上拉        
  47.                            
  48.         OPTION = 0B00001000;        //Bit3=1,WDT MODE,PS=000=WDT RATE 1:1                             
  49.     PSRCA = 0B11111111;            //源電流設置最大
  50.     PSRCC = 0B11111111;
  51.     PSINKA = 0B11111111;    //灌電流設置最大
  52.     PSINKC = 0B11111111;
  53.                      
  54.     MSCON = 0B00110000;                           
  55.         //Bit5:        PSRCAH4和PSRCA[4]共同決定源電流。00:4mA; 11: 33mA; 01、10:8mA
  56.         //Bit4:        PSRCAH3和PSRCA[3]共同決定源電流。00:4mA; 11: 33mA; 01、10:8mA
  57.         //Bit3:        UCFG1<1:0>為01時此位有意義。0:禁止LVR;         1:打開LVR
  58.         //Bit2:        快時鐘測量慢周期的平均模式。0:關閉平均模式;1:打開平均模式
  59.         //Bit1:        0:關閉快時鐘測量慢周期;1:打開快時鐘測量慢周期
  60.         //Bit0:        0:睡眠時停止工作:1: 睡眠時保持工作。
  61.     //                當T2時鐘不是選擇指令時鐘的時
  62.         }
  63. /*----------------------------------------------------
  64. * 函數(shù)名稱:DelayUs
  65. * 功能:    短延時函數(shù) --16M-2T--大概快1%左右.
  66. * 輸入?yún)?shù):Time延時時間長度 延時時長Time Us
  67. * 返回參數(shù):無
  68. ----------------------------------------------------*/
  69. void DelayUs(unsigned char Time)
  70. {
  71.         unsigned char a;
  72.         for(a=0;a<Time;a++)
  73.         {
  74.                 NOP();
  75.         }
  76. }                  
  77. /*----------------------------------------------------
  78. * 函數(shù)名稱:DelayMs
  79. * 功能:    短延時函數(shù)
  80. * 輸入?yún)?shù):Time延時時間長度 延時時長Time ms
  81. * 返回參數(shù):無
  82. ----------------------------------------------------*/
  83. void DelayMs(unsigned char Time)
  84. {
  85.         unsigned char a,b;
  86.         for(a=0;a<Time;a++)
  87.         {
  88.                 for(b=0;b<5;b++)
  89.                 {
  90.                          DelayUs(197);         //快1%
  91.                 }
  92.         }
  93. }
  94. /*-------------------------------------------------
  95. *  函數(shù)名: main
  96. * 功能:   主函數(shù)
  97. *  輸入:  無
  98. *  輸出:  無
  99. --------------------------------------------------*/
  100. void main(void)
  101. {
  102.         POWER_INITIAL();                        //系統(tǒng)初始化
  103.    
  104.         while(1)
  105.         {
  106.                 DemoPortOut = 1;                 
  107.                 DelayMs(10);                     //10ms
  108.         
  109.                 if(DemoPortIn == 1)         //判斷輸入是否為高電平
  110.                 {
  111.                         DemoPortOut = 0;
  112.                 }
  113.                 DelayMs(10);
  114.         }
  115. }
復制代碼

作者: hjh002    時間: 2023-8-15 17:16
想要PWM 的,能不能直接貼出來?
作者: likejian    時間: 2023-8-23 12:16
搞不定pwm怎么寫的




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1