完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 he282942873 于 2016-1-31 18:13 编辑
请教各位大神谁有PIC16F887单片机驱动74HC595芯片程序,麻烦共享下。 我是做labview上位机程序编程的,对单片机是小白,本来是用并口控制74HC595芯片,刚好公司有PIC16F887单片机,所以就想尝试单片机控制试试。 基本上想实现功能是labview通过串口控制单片机,然后单片机控制74HC595芯片。 例如: labview下指令“输出0000 0001”,然后单片机发送0000 0001控制74HC595芯片 下指令“输出1111 1111”,然后单片机控制74HC595。 附上程序,现在时序很乱,有时能控制,有时不行,不清楚是程序问题还是硬件上接线引起,请大家先帮忙看看程序有没有问题,谢谢!
|
|
相关推荐
|
|
自己先慢慢学,争取一个星期内搞个小程序出来。
|
|
|
|
|
|
顺便再追问下各位大神,如果要学这个单片机要买什么样的开发板?
麻烦建议下,对单片机真的是小白一个。 |
|
|
|
|
|
另外还有一个74HC595移位问题没完全弄明白
void Input(unsigned char DAT) //C4 C5 C6是74HC595数据线 D0 D1 D2是74HC595移位线 D7 D6 D5是控制输出线(74HC595 0E脚) { for(int j=0;j<8;j++) { if(DAT & 0X80) { PORTC= 0x70; } else { PORTC=0x00; //发送数据至74HC595 } DAT=DAT<<1; //左移1位 PORTD=0x07; //高电平74HC595移1位 __delay_us(1); PORTD=0x00; } PORTD=0x00; __delay_us(1); PORTD=0xe0; __delay_us(1); PORTD=0x00; } 比如:Data=0B0000 0001,写入数据及移位是左移还是右移,从上面的循环看是从QH-->QA。 |
|
|
|
|
|
另外还有一个74HC595移位问题没完全弄明白
void Input(unsigned char DAT) //C4 C5 C6是74HC595数据线 D0 D1 D2是74HC595移位线 D7 D6 D5是控制输出线(74HC595 0E脚) { for(int j=0;j<8;j++) { if(DAT & 0X80) { PORTC= 0x70; } else { PORTC=0x00; //发送数据至74HC595 } DAT=DAT<<1; //左移1位 PORTD=0x07; //高电平74HC595移1位 __delay_us(1); PORTD=0x00; } PORTD=0x00; __delay_us(1); PORTD=0xe0; __delay_us(1); PORTD=0x00; } 比如:Data=0B0000 0001,写入数据及移位是左移还是右移,从上面的循环看是从QH-->QA。 |
|
|
|
|
|
原理图简单,后面我又加了个一个串口通讯控制74HC595的功能,现在没画图,用万能板焊接的,等我做成PCB后分享给大家
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2069 浏览 1 评论
3378 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2319 浏览 2 评论
2744 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
3991 浏览 5 评论
939浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6328浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 12:56 , Processed in 0.615121 second(s), Total 71, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号