[家电应用] 关于sh79f3283的一个问题

[复制链接]
 楼主| 右耳情歌 发表于 2017-3-14 14:54 | 显示全部楼层 |阅读模式
  1. void Timer2_Init()                                         //定时时间为125us
  2.   {
  3.              T2CON  = 0x00;                         //定时器4为波特率发生器
  4.                                         //  TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2(0:自动重载   1:捕获)
  5.                                         // RCLK:        0:定时器4产生接收波特率   1:定时器2产生接收波特率
  6.                                        // TCLK: 0:定时器4产生发送波特率   1:定时器2产生发送波特率

  7.            T2MOD  = 0x80;
  8.                                         //  TCLKP2(选择为系统时钟/12)  空 空 空 空 空 T2OE(选择P05为I/O)  DCEN(只允许增加计数)

  9.            TH2    = (65536-125)/256;
  10.            TL2    = (65536-125)%256;
  11.            RCAP2H = (65536-125)/256;
  12.            RCAP2L = (65536-125)%256;
  13.            ET2 = 1 ;                  //开定时器中断2                  
  14.            TR2 = 1 ;                 //启动定时器2
  15.   }

  16. 这段代码是初始化定时器2做125us定时,以及定时器4做波特率产生器,但是为什么两个定时器的计数值一直都相等,而且只要TR4 = 1,定时器2和4 就不工作了

  17.   void Uart_Init()
  18.   {
  19.        T4CON = 0x00;             //设定定时器4位时钟为系统时钟,工作方式为波特率发生器
  20.                                      // TF4 TC4 T4PS1 T4PS0 T4M1 T4M0 TR4 T4CLKS
  21.            TH4   = (65536-78)/256;   //波特率设置为4800
  22.            TL4         = (65536-127)%256;

  23.            SCON  = 0x40;             //SM0 SM1 SM2 REN TB8 RB8 TI RI
  24.            PCON  = 0x00;             //SMOD  SSTAT SSTAT1 空 GF1 GF0 PD IDL
  25.            ES0   = 1;                //开串口中断
  26.            //REN   = 1;
  27. //           T4CON = 0x06;
  28. //       IEN1  &= 0xbf;
  29.        TR4   = 1;
  30.   }
 楼主| 右耳情歌 发表于 2017-3-14 15:37 | 显示全部楼层
我肯定拿到假的头文件了
  1. sfr T2CON = 0xC8;
  2. sfr T2MOD = 0xC9;
  3. sfr RCAP2L = 0xCA;
  4. sfr RCAP2H = 0xCB;
  5. sfr TL2 = 0xCC;
  6. sfr TH2 = 0xCD;

  7. sfr T3CON = 0x88;  /*bank1*/
  8. sfr TL3 = 0x8C;  /*bank1*/
  9. sfr TH3 = 0x8D;  /*bank1*/
  10. sfr T4CON = 0xC8;  /*bank1*/
  11. sfr TL4 = 0xCC;  /*bank1*/
  12. sfr TH4 = 0xCD;  /*bank1*/
  13. sfr T5CON = 0xC0; /*bank1*/
  14. sfr TL5 = 0xCE; /*bank1*/
  15. sfr TH5 = 0xCF; /*bank1*/
  16. sfr SWTHL = 0x89;
 楼主| 右耳情歌 发表于 2017-3-14 16:21 | 显示全部楼层
来个大神指导下,如何才能正确寻址到TH4还有TL4吧
缥缈九哥 发表于 2017-3-25 13:51 | 显示全部楼层
注意 BANK0 和BANK1的访问 。

评论

正在使用SH79F3283单片机,用到P5端口,程序有故障,寄存器地址就是位于bank1,九哥能否讲讲在编写C程序时,如何区分BANK0 和BANK1的访问?谢谢  发表于 2019-4-9 14:19
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

25

帖子

0

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

6

主题

25

帖子

0

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