找回密码
 立即注册

QQ登录

只需一步,快速开始

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

FMD辉芒微单片机FT60F12x学习例程 C语言汇编都有

[复制链接]
跳转到指定楼层
楼主


代码下载: FT60F12x-C语言.7z (6.91 MB, 下载次数: 102)

包含以下常用功能模块的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. * 函数名:POWER_INITIAL
  29. * 功能:  上电系统初始化
  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. * 函数名称:DelayUs
  65. * 功能:    短延时函数 --16M-2T--大概快1%左右.
  66. * 输入参数:Time延时时间长度 延时时长Time Us
  67. * 返回参数:无
  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. * 函数名称:DelayMs
  79. * 功能:    短延时函数
  80. * 输入参数:Time延时时间长度 延时时长Time ms
  81. * 返回参数:无
  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. *  函数名: main
  96. * 功能:   主函数
  97. *  输入:  无
  98. *  输出:  无
  99. --------------------------------------------------*/
  100. void main(void)
  101. {
  102.         POWER_INITIAL();                        //系统初始化
  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. }
复制代码

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:1091375 发表于 2023-8-15 17:16 | 只看该作者
想要PWM 的,能不能直接贴出来?
回复

使用道具 举报

板凳
ID:224580 发表于 2023-8-23 12:16 | 只看该作者
搞不定pwm怎么写的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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