这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » Renesas » 试验十一:正在进行中移植,以前没做过。加油!

共31条 3/4 1 2 3 4 跳转至
高工
2012-09-14 08:54:28     打赏
21楼

实验十二:串并转换PCF8574芯片

先上个电路图:


上传PCF8574程序文件,这个程序与网上随便下的差不多,主要注意几个方面的事
1.总线开始的延时时间需要4.7US;
2.器件的地址
3.IO的输入与输出的转换(为了更好提现IO的变化关系,我程序中写的有点罗嗦不明了)
下载:PCF8574.zip

设计思路:
1. 采用IIC总线方式实现双向准IO,选择PCF8574芯片
2.PCF8574资料下载 8574.cn.pdf
3.扩展出四个按键和两路指示灯;
4.可以用查询方式和中断方式实现按键扫描


助工
2012-09-14 11:34:25     打赏
22楼

你看看我的程序对不对?
void delay(unsigned int x)
{
  unsigned int i,j;
  for(i=x;i>0;i--)
    for(j=2000;j>0;j--);
}
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char table1[]={
      0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
   0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
void  main(void)
{
 /* Start user code. Do not edit comment generated here */
  unsigned int i=0;
 P2=0X07;
 while (1U)
 {
             P1=table[i];
           
             i=(i+1)%10;   
                  delay(1000);
              
 }
对应的是我上次发你的那个电路图里的数码管


高工
2012-09-14 11:53:03     打赏
23楼
看了你这个程序,,你没有明白怎么让数码管动起来。。
电路图如下:


根据你电路可以知道只能动态方式实现
程序设计要求:
1. 给P0口数据-要显示的数据
2.给P2.0---P2.2数据--要点亮的那个数据管(138 的资料你自己上网找)
3. 动态扫描需要的时间(如果时间太长的话会闪烁)

while(1U)
{
           P0=table[i];//写数据
           P2=i;      //写地址
           i++;
           if(i>=8)i=0;//只八个数据码地址0-7

           dealy(1);  //时间你自己调一下,不闪烁就行。
}
结果显示应该是:76543210

高工
2012-09-15 14:23:37     打赏
24楼

正在调LCD。240*160的液晶 。请期待。


高工
2012-09-18 12:47:21     打赏
25楼

更新中。。。。。


高工
2012-09-24 10:47:57     打赏
26楼
马上上传24V02和读写程序。

此程序与8574的程序的关键点在于延时的控制。

高工
2012-09-28 09:32:39     打赏
27楼
LCD程序规划:
1. LCD采用240*160点阵液晶;
2. 按键采用 PCF8574口扩展IO;
3. MCU板;

程序规划:
1.  显示主界面(主界面划表各显示)
2.  做二级菜单(通过对主界面可进入多级菜单)
3.  二级菜单显示数据可设置
4.  通过按键可调整

程序:
void  main(void)
{

     LCD_init();
     asm("nop");
   //  LCD_init();
     delayms(1);
     ClearSCR();
    delayms(10);
    put_str_xy (72,0,"电子产品世界",0,FONT_NORMAL);
   put_str_xy (60,16,"www.eepw.com.cn",0,FONT_NORMAL);
     put_str_xy (70,128,"湖南鼎能科技",0,FONT_NORMAL);
     put_str_xy (82,144,"ID:LZ1135",0,FONT_NORMAL);
    
      line(0, 34, 0, 126, 1);//原点下划线
      line(80, 34, 80, 126, 1);//X80下划线
      line(160, 34, 160, 126, 1);
      line(240, 34, 240, 126, 1);
      line(0, 34, 240, 34, 1);//原点开始横线
      line(0, 57, 240, 57, 1);
      line(0, 80, 240, 80, 1);//Y69横线
      line(0, 103, 240, 103, 1);
      line(0, 126, 240, 126, 1);
     
      put_str_xy (3,34+4,"A",0,FONT_NORMAL);
      put_str_xy (80+3,34+4,"B",0,FONT_NORMAL);
      put_str_xy (160+3,34+4,"C",0,FONT_NORMAL);
     
      put_str_xy (3,57+4,"D",0,FONT_NORMAL);
      put_str_xy (80+3,57+4,"E",0,FONT_NORMAL);
      put_str_xy (160+3,57+4,"F",0,FONT_NORMAL);
     
      put_str_xy (3,80+4,"G",0,FONT_NORMAL);
      put_str_xy (80+3,80+4,"H",0,FONT_NORMAL);
      put_str_xy (160+3,80+4,"I",0,FONT_NORMAL);
     
      put_str_xy (3,103+4,"J",0,FONT_NORMAL);
      put_str_xy (80+3,103+4,"K",0,FONT_NORMAL);
      put_str_xy (160+3,103+4,"L",0,FONT_NORMAL);

    while(1U)
  {
   R_WDT_Restart();
    
    
    
     if(KEY_sign==0)
     {
        IRcvByte(PCF8574_WriteDadd,&KeyNum);
       // KEY_sign
        if(KeyNum==0xff||KeyNum==0x00)
        {
          P77=0;
          P70=1;
        }
        else
        {
          P70=0;
          P77=1;
          KeyNum=KeyNum&KEYMASK;
          key_old=KeyNum;
          delayms(100);
         // delayms(100);
          IRcvByte(PCF8574_WriteDadd,&KeyNum);
          KeyNum=KeyNum&KEYMASK;         
         
          if(KeyNum==key_old)
          //Key_Pro();
          KEY_sign=1;
         
        }
     }//end key_pro
     else
     {
       IRcvByte(PCF8574_WriteDadd,&KeyNum);
       if(KeyNum==0xff||KeyNum==0x00)
       {
         KeyNum=key_old;
         Key_Pro();
         KEY_sign=0;
       }
     }
    
    }
    /* End user code. Do not edit comment generated here */
}

显示主界面请看下图:


视屏地址:http://v.eepw.com.cn/video/play/id/2005

高工
2012-09-29 14:59:24     打赏
28楼
LCD显示,不错~

高工
2012-10-08 12:17:24     打赏
29楼

十号八号上班。打卡。


高工
2012-10-23 10:46:16     打赏
30楼

还有试验没做完。不过那些容易简单的就不做哒。。下一个试验。移植请期待。


共31条 3/4 1 2 3 4 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]