[其它应用] 中颖单片机6488总结

[复制链接]
10453|14
 楼主| xiaoqi000 发表于 2021-6-22 22:40 | 显示全部楼层 |阅读模式
1. 配置字

1.OSC1 12M,

2.OSC1为32768.OSC2为内部12M

3.OSC1为32768 OSC2 外部晶振400K--12M



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xiaoqi000 发表于 2021-6-22 22:42 | 显示全部楼层
2. OSC时钟
开启OSC2的时候需要等待片刻。配置OSC2作为SYSCLK

PLLCON开启锁相环,只有48M的二分频。
 楼主| xiaoqi000 发表于 2021-6-22 22:44 | 显示全部楼层
3.开启校准功能
实际测试发现时钟不准确,需要校准。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xiaoqi000 发表于 2021-6-22 22:44 | 显示全部楼层
4.PWM配置
  1. PWM1PH = 2000>>8;
  2.         PWM1PL = 2000%256;
  3.         PWM1DH = 1500>>8;
  4.         PWM1DL = 1500%256;
  5.         PWM1CON = 0x81;
 楼主| xiaoqi000 发表于 2021-6-22 22:45 | 显示全部楼层
配置周期寄存器,占空比寄存器,开启PWM,配置占空比是高电平还是低电平。
 楼主| xiaoqi000 发表于 2021-6-22 22:46 | 显示全部楼层
5.串口配置
  1. // bref: ´®¿Ú³õʼ»¯
  2. // para:
  3. // note:
  4. static void uart_init(void)
  5. {
  6.         SCON = 0x50;
  7.         /*???????,???9600*/
  8.         /* ????:(int)X=FSY/(16*???) ;  SBRT=32768-X  ;   SFINE=(FSY/???)-16*X   FSY=24M*/
  9.         SBRTH=0xFF;
  10.         SBRTL=0xF3;
  11.         SFINE=0x04;
  12. }
 楼主| xiaoqi000 发表于 2021-6-22 22:47 | 显示全部楼层
x = FSY/(16*波特率)  SBRT = 32768-x.  SPINE = (FSY/波特率)-16*x

SBRTH 最高位是使能位。
 楼主| xiaoqi000 发表于 2021-6-22 22:47 | 显示全部楼层
测试波特率正常

使用printf 需要实现
  1. char putchar(char c)
  2. {
  3.         SBUF = c;
  4.     while(!TI);
  5.     TI=0;
  6. }
 楼主| xiaoqi000 发表于 2021-6-22 22:48 | 显示全部楼层
和arm的不一样,这个可以在stdio.h中看到接口。

 楼主| xiaoqi000 发表于 2021-6-22 22:49 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xiaoqi000 发表于 2021-6-22 22:49 | 显示全部楼层
6  ADC(20位)
搞了半天发现还需要开启ADC的参考电压。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| xiaoqi000 发表于 2021-6-22 22:50 | 显示全部楼层

  1. static void adc_init(void)
  2. {
  3.         ADCON = 0x00;  //ADON, VDD as vref, no trigger
  4.         /***************************************************************************************
  5.         24M SYSCLK, 100ksps
  6.         ****************************************************************************************/
  7.         ADT = 136;
  8.         // ADREF Ñ¡ÔñÍⲿ²Î¿¼
  9.         //ADCON |= 1<<4;
  10.         // ÅäÖÃP1.1 -- P1.2 ΪAIN0+ AIN0-
  11.         ADCH |= 0x01;
  12.         //
  13.         ADCDS |= 0x01;
  14.         // PGA 64±¶·Å´ó
  15.         PGAM = 0xC0|(1<<2);
  16.         // ¿ªÆôPGA
  17. }
 楼主| xiaoqi000 发表于 2021-6-22 22:51 | 显示全部楼层

  1. static void adc_init(void)
  2. {
  3.         ADCON = 0x00;  //ADON, VDD as vref, no trigger
  4.         /***************************************************************************************
  5.         24M SYSCLK, 100ksps
  6.         ****************************************************************************************/
  7.         ADT = 136;
  8.         // ADREF Ñ¡ÔñÍⲿ²Î¿¼
  9.         //ADCON |= 1<<4;
  10.         // ÅäÖÃP1.1 -- P1.2 ΪAIN0+ AIN0-
  11.         ADCH |= 0x01;
  12.         //
  13.         ADCDS |= 0x01;
  14.         // PGA 64±¶·Å´ó
  15.         PGAM = 0xC0|(1<<2);
  16.         // ¿ªÆôPGA
  17. }
 楼主| xiaoqi000 发表于 2021-6-22 22:51 | 显示全部楼层
使能P1.1--P1.2差分输入。

开启PGA功能。
两只袜子 发表于 2021-7-8 16:28 来自手机 | 显示全部楼层
帮楼主顶一下,哈哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

821

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部