完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include ***it HC165_DATA= P2^0; // 定义串行数据端口 ***it HC165_SH = P2^1; // 定义数据锁存端口 ***it HC165_CLK = P2^2; // 定义串行时钟端口 //***it rck=P1^2; //***it ds=P1^1; //***it clk=P1^0; unsigned char a[2]; void read_char165(void) //并入串出 { unsigned char i; HC165_SH =0; //置入控制有效,锁存端口值 HC165_SH =1; for(i=0;i<8;i++) { a[0]<<=1; //先取高位 if(HC165_DATA) { a[0]|=0X01; } HC165_CLK=0; // HC165_CLK=1; //上升沿 } // for(i=0;i<8;i++) // { // a[1]<<=1; // if(HC165_DATA) // { // a[1]|=0X01; // } // HC165_CLK=0; // // HC165_CLK=1; //上升沿 // } } //void write_595(unsigned char dat)//串入并出 //{ // unsigned char i=0; // for(i=0;i<8;i++) // { // clk=0; // if((dat&0x80)==0x80) //先读高位 // ds=1; // else ds=0; // clk=1; // dat<<=1; //一直往高位移 // } //} //void send_595(unsigned char dat0,unsigned char dat1)//显示 //{ // write_595(dat0); // write_595(dat1); // rck=0; // rck=1; //} void main(void) { P0=0xFF; P1=0xFF; while(1) { // read_char165(); // send_595(a[0],a[1]); read_char165(); P0=~a[0]; //P1=~a[1]; } } |
|
相关推荐
5个回答
|
|
|
|
|
|
单个可以,级联有点问题,多谢!
|
|
|
|
级联和单个是一样的,就是移位的数量不一样
|
|
|
|
程序的问题
|
|
|
|
要看电路图,看第二片165和第一片165是怎么连接的
|
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9004 浏览 16 评论
4052 浏览 18 评论
1117浏览 3评论
573浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2303浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 04:02 , Processed in 1.349218 second(s), Total 56, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号