这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 企业专区» 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," m.amcfsurvey.com",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 跳转至

回复

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