完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
以下是程序,不知道哪里出错了,用protues仿真总是失败,DAti DAIO总是显示电平冲突(如图)。 请老师们解答,不甚感激!!!
ps:PIC16F877A,4M晶振。 #include __CONFIG(0x3b31); #define CS TRISB7=0,RB7 #define Clk TRISB6=0,RB6 #define DATI TRISB5=0,RB5 #define DATO TRISB5=0,RB5 #define uchar unsigned char unsigned char dat = 0x00; void delay(int t) { uchar i,j; for(i=110;i>0;i--) for(j=t;j>0;j--); } void main() { unsigned char i,test,adval; adval = 0x00; test = 0x00; TRISD=0; PORTD=0; while(1) { Clk = 0; //初始化 CS=1; DATI = 1; CS = 0; NOP(); Clk = 1; NOP(); Clk = 0; DATI = 1; //通道0的第一位 NOP(); Clk = 1; NOP(); Clk = 0; DATI = 0; //通道0的第二位 NOP(); Clk = 1; NOP(); Clk = 0; //写进空闲位 //clk上升沿写进去 DATI = 1; NOP(); Clk = 1; NOP(); //读取前8位的值 for( i = 0;i < 8;i++ ) //读取前8位的值 { //clk下升沿读出来 NOP(); //高位先行 adval <<= 1; Clk = 1; NOP(); Clk = 0; if (DATO) adval |= 0x01; } for (i = 0; i < 8; i++) //读取后8位的值 { //clk下升沿读出来 test >>= 1; //低位先行,时序图上 if (DATO) test |= 0x80; NOP(); Clk = 1; NOP(); Clk = 0; } if(adval==test) dat=adval; NOP(); CS = 1; //释放ADC0832,关闭 DATO = 1; Clk = 1; PORTD=dat; } delay(50); }
|
|
相关推荐
1个回答
|
|
求高手解决。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
418 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1083 浏览 0 评论
846 浏览 0 评论
886 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
882 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11832 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 23:33 , Processed in 0.589279 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号