544852010

个性签名:来吧...

    1. TI 无线产品有奖调查获奖名单 128/10522 EEWORLD颁奖专区 2014-07-15
      谢谢EEWORLD谢谢MAYLOVE,我得了个手机托架,好像要个卡包啊:loveliness:
    2. 嘿嘿,大家加油啊:kiss: :kiss:
    3. :) :) :) :) :) :) 嘿嘿,搞定了,原来IO口需要这样配置(原先我咨询了Microchip上海技术支持,一女的说不用段式LCD功能,就不用管COMCON0和LCDCON,搞的我.......看来,还是要自己细心才行啊),同志们,不要犯我这样的错误哦,嘿嘿,谢谢各位的指导啊。 /*-----------1602端口初始化-------------*/ void Port_1602_Init(void) {     PORTA=0x00;         CMCON0=0xff;     ANSEL = 0x00;     TRISA=0X00;         PORTC=0x00;     TRISC=0x00;     LCDCON=0x00; }
    4. 显示很暗很暗--全是大黑快--此程序只需改一点点配置(ADCON1和ANSEL处),却可以在877A上面显示正常。开始我怀疑是开发板问题或者线路焊接问题,但是,经过多次自己在面包板上焊接对应电路,烧写程序均正常,显示依然老问题...也就是说,很有可能还是程序的问题,或者是单片机不支持这样做(驱动1602液晶屏),1602液晶屏完好无任何质量问题,同一液晶屏在其它单片机,如877系列,均显示正常。
    5. 关于PIC控制LCD 显示字符串问题 11/6588 Microchip MCU 2012-04-24
      #include <htc.h>//#include <pic.h>//#include <pic1687x.h>//#include <pic16f91x.h>#define uchar unsigned char#define uint  unsigned int#define TESTBIT(a,b) ((a)&(1<<(b))) __CONFIG(WDTDIS & LVPDIS & HS & PWRTDIS & BORDIS);//设置877配置位//__CONFIG(WDTDIS &  HS & PWRTDIS & BORDIS);//设置配置位 #define  LCD_RS  RA0#define  LCD_RW  RA1#define  LCD_EN      RA2 /************************定义显示字符*****************************************/ uchar tab[] = {" Welcome A Use  PIC Study Board "}; /************************声明函数*********************************************/void DelayUS(uint);void Delay_ms(uint delay);uchar Chk_1602_busy(void);void Write_1602_command(uchar gcmd,uchar gvalue);void Write_1602_data(uchar gdata);void INIT_1602(void);void Display_1602_string(uchar gadd_start,uchar gline,uchar glength,uchar *pdata);void Display_1602(uchar x,uchar y,uchar gdata); /******************************************************************************** 函 数 名: DelayUS(uint8 delay)* 函数功能: 微秒延时 * 入口参数: delay* 返    回: 无*******************************************************************************/ void DelayUS(uint delay)    {   for(;delay;)   {      NOP();      delay--;   } } /******************************************************************************** 函 数 名: DelayMS(uint16 delay)* 函数功能: 毫秒延时 * 入口参数: delay* 返    回: 无*******************************************************************************/ void Delay_ms(uint delay)  {   uint i;    for(i=0;i<delay;i++)       DelayUS(1000);} /******************************************************************************** 函 数 名: Read_LCD_Busy(void)* 函数功能: 读液晶忙通道数据* 入口参数: 无* 返    回: 无*******************************************************************************/uchar Chk_1602_busy(void){   uint gR_data;   uint gwait_time=0xff;   //设置忙超时数    LCD_RS=0;         //表示状态   LCD_RW=1;         //选择读   LCD_EN=1;   TRISC = 0xFF;   //接收口设为输入口   DelayUS(30);   gR_data=PORTC;    while(TESTBIT(gR_data,7))  //表示busy   {      --gwait_time;      if(!gwait_time)      { LCD_EN=0;TRISC = 0x00; return 0; }   }     LCD_EN=0;    TRISC = 0x0;   //恢复为输出口    return 1;} /******************************************************************************* 函 数 名: Write_LCD_Comd(uint8 commond)* 函数功能: 写指令* 入口参数: commond指令* 返    回: 无*******************************************************************************/ void Write_1602_command(uchar gcmd,uchar gvalue){   if(gvalue)             //写命令时大部分情况下是在LCD空闲模式下写   {      if(Chk_1602_busy())      {         LCD_RS=0;         //选择指令         LCD_RW=0;         //选择写         PORTC=gcmd;       //赋指令         LCD_EN=1;         //使能         DelayUS(30);         LCD_EN=0;      }   }    else   {      LCD_RS=0;         //选择指令      LCD_RW=0;         //选择写      PORTC=gcmd;       //赋指令      LCD_EN=1;         //使能      DelayUS(30);      LCD_EN=0;   }} /******************************************************************************* 函 数 名: Write_LCD_Data(uint8 Data)* 函数功能: 写数据* 入口参数: Data数据* 返    回: 无*******************************************************************************/ /*----------- 写数据 -------------*/void Write_1602_data(uchar gdata){   if(Chk_1602_busy())     //写数据必须是在LCD空闲模式下才能写   {      LCD_RS=1;             //选择数据      LCD_RW=0;             //选择写      PORTC=gdata;      LCD_EN=1;             //使能      DelayUS(30);      LCD_EN=0;      DelayUS(10);   }} /******************************************************************************* 函 数 名: LCD1602_Init(void)* 函数功能: 初始化1602LCD* 入口参数: 无* 返    回: 无*******************************************************************************/ /*-----------1602初始化函数-------------*/void INIT_1602(void){   Delay_ms(15);   Write_1602_command(0x38,0);  //设置16X2显示,5X7点阵,8位数据传送,不检测忙信号   Delay_ms(5);   Write_1602_command(0x38,0);   Delay_ms(5);   Write_1602_command(0x38,0);  //设置16X2显示,5X7点阵,8位数据传送,不检测忙信号   Write_1602_command(0x38,1);  //设置16X2显示,5X7点阵,8位数据传送,检测忙信号   Write_1602_command(0x08,1);  //关闭显示、无光标、检测忙信号   Write_1602_command(0x01,1);  //清屏、光标归位、AC=0、检测忙信号   Write_1602_command(0x06,1);  //显示光标右移位置、检测忙信号   Write_1602_command(0x0c,1);  //显示功能开、无光标 } /******************************************************************************* 函 数 名: Write_LCD_Mult_Byte(uint8 addr,uint8* pointer,uint8 index,uint8 num)* 函数功能: 写多字节字符* 入口参数: addr起始地址,pointer指针地址,index下标,num个数* 返    回: 无*******************************************************************************/ /*-----------显示字符串-------------*///                                开始地址  行号        数据长度      数组元素void Display_1602_string(uchar gadd_start,uchar gline,uchar glength,uchar *pdata){   uchar gaddress;   uchar *pdat;   uchar gcount=0;    uchar glongth=glength-gadd_start;  //真正需要写的数据长度   pdat=pdata+gadd_start;    if(gline)                          //第0行   { gaddress=0x80+gadd_start; }      //地址对应   else   { gaddress=0xc0+gadd_start; }      //第一行    for(;gcount<glongth;gcount++)   {      Write_1602_command(gaddress,1);        //设定数据地址      Write_1602_data(*pdat);  //取设定地址里的数据      gaddress++;      pdat++;   }} /*-----------指定位置显示字符-------------*/void Display_1602(uchar x,uchar y,uchar gdata){   uchar gaddress;    if(y)   { gaddress=0x80+x; }    else   { gaddress=0xc0+x; }    Write_1602_command(gaddress,1);   //设定数据地址   Write_1602_data(gdata);} /******************************************************************************* 函 数 名: main()* 函数功能: LCD显示字符* 入口参数: 无* 返    回: 无*******************************************************************************/ void main(){     //ANSEL = 0x00;    ADCON1 = 0x87;   //设置PORTA为普通IO口 TRISA0 = 0; TRISA1 = 0; TRISA2 = 0;     TRISA3 = 0;  TRISC = 0x00;   //设置PORTC为输出 INIT_1602(); while(1) {   Display_1602(0,1,'2');            RA3 = 1;Delay_ms(100);RA3 = 0;            Display_1602_string(0,1,16,tab);           RA3 = 0;Delay_ms(100);RA3 = 1; } } [ 本帖最后由 544852010 于 2012-4-24 11:08 编辑 ]
    6. PIC单片机书籍下载---共8本 578/130793 Microchip MCU 2012-04-24
      很好  可惜  几次下载 没有下下来
    7. 请问我怎么设置A口,怎么设置位选 3/3010 Microchip MCU 2012-04-24
      看它的用户手册吧  很简单  就是ANSEL  和TRISAx的设置
    8. PIC单片机书籍下载---共8本 578/130793 Microchip MCU 2012-04-20
      很好  很不错  支持  史上最强大
    9. 很好  很不错  支持:victory:
    10. PIC16F877A和PIC16F914驱动1602液晶屏问题 6/4331 Microchip MCU 2012-04-20
      是的,913/914上面就是这样,黑快,并且很暗很暗
    11. PIC16F877A和PIC16F914驱动1602液晶屏问题 6/4331 Microchip MCU 2012-04-18
      在877A上,我使用RA0 1 2 作为1602液晶屏的 DI  R/W  EN  使用 PORTC(RC0-RC7)作为数据端口D0-D7 在913单片机上,依然是这样,未做任何修改 我单片机开发板,有单片机底座,扳起小扳手,可以将877A拿下来,因此,可以切换单片机877A和913,都是40脚的,并且,单片机每一个引脚外,都有调帽引出来,拔掉所有调帽,单片机就成裸机了。 用913时,用RA3点亮LED灯来指示程序是否运行及运行到何处,可以看到,程序依然运行正常。
    12. PIC16F877A和PIC16F914驱动1602液晶屏问题 6/4331 Microchip MCU 2012-04-18
      :rose: :rose: :rose: :rose: :rose: :rose:
    13. PIC16F877A和PIC16F914驱动1602液晶屏问题 6/4331 Microchip MCU 2012-04-17
      本来要显示 2 和 welcome to use 在877上就显示正常 877上面显示 2 和 welcome to use 在914上面 就是第一排16个暗黑方块(几乎看不清楚)    两程序的区别在于   1:CONFIG   2:877A用ADCON1,914用ANSEL
    14. PIC16F877A和PIC16F914驱动1602液晶屏问题 6/4331 Microchip MCU 2012-04-17
      914单片机的main.c程序: #include //#include //#include //#include #define uchar unsigned char #define uint  unsigned int #define TESTBIT(a,b) ((a)&(1
    15. 谢谢错 谢谢错 谢谢错 谢谢错 谢谢错
    16. 哈哈,谢谢了,以后出来看看.................
    17. 顶顶顶!确实不CUO哦!
    18. EEWorld 社区威望积分规则 3034/1605805 为我们提建议&公告 2009-07-16
      多回帖,多下载...看来以后得踊跃回帖啦,
    19. STM32F10使用USART的应用中编程 38/14186 stm32/stm8 2009-07-16
      芯币不多了 我要多顶点帖子了 谢谢分享!
    20. STM32 中断与嵌套NVIC 快速入门 73/24655 stm32/stm8 2009-07-16
      STM32 中断与嵌套NVIC 快速入门

最近访客

< 1/1 >

统计信息

已有710人来访过

  • 芯积分:--
  • 好友:--
  • 主题:5
  • 回复:22

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言