2419|11

40

帖子

0

资源

一粒金砂(中级)

16位PIC单片机

 
#define SCL_1  PORTAbits.RA11  //74ls164
#define SDA_1  PORTAbits.RA10
#define E      PORTBbits.RB13    //lcd
#define RS     PORTBbits.RB12
#define LCD    PORTBbits.RB11
void delay_us(unsigned int j)
{
   unsigned int i;
   for(i=0;i++;i    {
    Nop();   
   }
}
void __delay_ms(unsigned int i)              
{
  unsigned int j;
  for(;i>0;i--)
  for(j=0;j<130;j++);                     
}
void write_command(unsigned char data)//lcd写指令
{
  unsigned char i ,temp;
  for(i=0;i<8;i++)
{
   temp=data;
   temp&=0x80;
   if(temp==0x80)
   SDA_1=1;
     else
      SDA_1=0;
      data=data<<1;
      SCL_1=0;
    // __delay_us(1);
      delay_us(1);
      SCL_1=1;
}
  RS=0;
  E=1;
//  __delay_us(1);
    delay_us(1);

   E=0;
}
void write_data(unsigned char data) //lcd写数据
{
    unsigned char i ,temp;
    for(i=0;i<8;i++)
    {
      temp=data;
      temp&=0x80;
      if(temp==0x80)
        SDA_1=1;
        else
         SDA_1=0;
         data=data<<1;
         SCL_1=0;
        //__delay_us(1);
         delay_us(1);
         SCL_1=1;
     }
      RS=1;
      E=1;
//  __delay_us(1);
     delay_us(1);
      E=0;
}
void lcd_write_char(unsigned char x, unsigned char y,unsigned char dat)
{

     write_data(dat);

}
void lcd_init(void)
{
    write_command(0x01);  /*清除显示*/
    __delay_ms(10);
    write_command(0x38);  /*设置 8 位格式,2 行,5*7*/
    __delay_ms(10);
    write_command(0x0c);  /*整体显示,关光标,不闪烁*/
    __delay_ms(10);
    write_command(0x06);  /*设定输入方式,增量不移位*/
    __delay_ms(10);
}
void display2(void)
{
write_command(0xc0);  /*初始位置*/
lcd_write_char(0,2‘2’);
          lcd_write_char(1,2,‘3’);
          lcd_write_char(2,2,'.');
}
void init(void)
{
        PORTA=0x0000;
        TRISA=0x0000;
        PORTB=0x0000;
        TRISB=0xc000;  ///RB14 RB15  为输入
        PORTC=0x0000;
        TRISC=0x0001;  ////RC0为输入
        lcd_init();             ////液晶屏显示初始化
void main(void)
{
  init();
  while(1)
{
      write_command(0x38);  /*设置 8 位格式, 2行, 5*7*/
      write_command(0x0c);  /*整体显示,关光标,不闪烁*/
      write_command(0x06);  /*设定输入方式,增量不移位*/
       LCD=1;
       display2();
}
之前改程序用在PIC18F2420上能正常驱动1602正常显示(SDL_1    SCL_1 用的是74LS164)  但是现在把该程序用在PIC24FV32KA304上时显示屏不能正常显示 屏幕出现闪动     不知道是为什么?    与配置位和端口复用有关吗


回复

2938

帖子

0

资源

纯净的硅(初级)

两个芯片的时钟一样吗?

点评

晶振不是一样的 2420用的4M PIC24FV32KA304用的8M 我之前给2420换过8M的晶振也能正常显示  详情 回复 发表于 2017-1-9 18:30

回复

40

帖子

0

资源

一粒金砂(中级)

您是指的晶振频率这一块吗?

回复

40

帖子

0

资源

一粒金砂(中级)

suoma 发表于 2017-1-9 18:07
两个芯片的时钟一样吗?

晶振不是一样的  2420用的4M   PIC24FV32KA304用的8M  我之前给2420换过8M的晶振也能正常显示

回复

3652

帖子

11

资源

五彩晶圆(高级)

除了单片机本身,对外的接口,连接的电路,两种情况是否一样。先确保一样。再看两种情况的时序是否一致,你说复用是不是和屏幕通信的io复用了别的功能? 看复用有没有破坏原有时序,先把其它功能去掉,看看效果。

点评

我感觉是时序的事 我测了一下 8M晶振 我的一条空指令大约是4us 不是1us吗  详情 回复 发表于 2017-1-10 11:40

回复

40

帖子

0

资源

一粒金砂(中级)

ienglgge 发表于 2017-1-9 20:25
除了单片机本身,对外的接口,连接的电路,两种情况是否一样。先确保一样。再看两种情况的时序是否一致,你 ...

我感觉是时序的事   我测了一下 8M晶振 我的一条空指令大约是4us    不是1us吗

点评

cpu的主频和晶振频率不见得一样。要看对应的配置寄存器。分频,倍频什么的。既然能看波形,就把正常和不正常的波形都看看,就比较出区别来了。  详情 回复 发表于 2017-1-10 13:24

回复

3652

帖子

11

资源

五彩晶圆(高级)

shimingyan1992 发表于 2017-1-10 11:40
我感觉是时序的事   我测了一下 8M晶振 我的一条空指令大约是4us    不是1us吗

cpu的主频和晶振频率不见得一样。要看对应的配置寄存器。分频,倍频什么的。既然能看波形,就把正常和不正常的波形都看看,就比较出区别来了。

点评

我用的75LS164 发现不正常的时钟脉冲有丢失 我用的16位的PIC 8M晶振 配置字该如何设置啊  详情 回复 发表于 2017-1-10 13:41
我用的75LS164 发现不正常的时钟脉冲有丢失 我用的16位的PIC 8M晶振 配置字该如何设置啊  详情 回复 发表于 2017-1-10 13:41

回复

40

帖子

0

资源

一粒金砂(中级)

ienglgge 发表于 2017-1-10 13:24
cpu的主频和晶振频率不见得一样。要看对应的配置寄存器。分频,倍频什么的。既然能看波形,就把正常和不 ...

我用的75LS164 发现不正常的时钟脉冲有丢失   我用的16位的PIC 8M晶振   配置字该如何设置啊

点评

看手册关于时钟配置的部分啊,时钟树框图,还有选择时钟源,频率的设置。我给你的别的型号的手册中,相关内容的截图,你找你的手册里,肯定有这些东西,哪个寄存器,哪个位怎么配,都有说明。好好找找。  详情 回复 发表于 2017-1-10 21:33

回复

40

帖子

0

资源

一粒金砂(中级)

ienglgge 发表于 2017-1-10 13:24
cpu的主频和晶振频率不见得一样。要看对应的配置寄存器。分频,倍频什么的。既然能看波形,就把正常和不 ...

我用的75LS164 发现不正常的时钟脉冲有丢失   我用的16位的PIC 8M晶振   配置字该如何设置啊

回复

3652

帖子

11

资源

五彩晶圆(高级)

shimingyan1992 发表于 2017-1-10 13:41
我用的75LS164 发现不正常的时钟脉冲有丢失   我用的16位的PIC 8M晶振   配置字该如何设置啊

看手册关于时钟配置的部分啊,时钟树框图,还有选择时钟源,频率的设置。我给你的别的型号的手册中,相关内容的截图,你找你的手册里,肯定有这些东西,哪个寄存器,哪个位怎么配,都有说明。好好找找。
QQ截图20170110212855.png
QQ截图20170110213048.png
QQ截图20170110213136.png

回复

481

帖子

1

资源

一粒金砂(中级)

用示波器看看三个IO口的波形和原来板子的区别,在对症下药

回复

10

帖子

0

资源

一粒金砂(初级)

首先确认配置端口是否正确,一般换芯片都是配置出现问题的多。

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

关闭
站长推荐上一条 1/3 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表