没看懂吗?设置有图啊!
是用的Applilet3..我的下载包里有个Applilet3 的包,扩展名是CGP
实验十二:串并转换PCF8574芯片
先上个电路图:

上传PCF8574程序文件,这个程序与网上随便下的差不多,主要注意几个方面的事
1.总线开始的延时时间需要4.7US;
2.器件的地址
3.IO的输入与输出的转换(为了更好提现IO的变化关系,我程序中写的有点罗嗦不明了)
下载:PCF8574.zip
设计思路:
1. 采用IIC总线方式实现双向准IO,选择PCF8574芯片
2.PCF8574资料下载 8574.cn.pdf
3.扩展出四个按键和两路指示灯;
4.可以用查询方式和中断方式实现按键扫描
看了你这个程序,,你没有明白怎么让数码管动起来。。
电路图如下:

根据你电路可以知道只能动态方式实现
程序设计要求:
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
电路图如下:

根据你电路可以知道只能动态方式实现
程序设计要求:
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
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
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
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取磁力计iis2mdc被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取LPS22HH气压、温度被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取STTS751温度被打赏¥17元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
我要赚赏金
