完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ex6_mode0_input.zip
(15.84 KB, 下载次数: 19
)
仿真电路图见附件ex6_mode0_input.zip 程序是这样的: #include #include unsigned char read165 (void) { unsigned char uch = 0; P1_6 = 1; /* inhibit start */ _nop_ (); P1_7 = 0; /* 74LS166 load */ P3_1 = 0; /* LOW-to-HIGH transition */ P3_1 = 1; _nop_ (); _nop_ (); _nop_ (); P1_7 = 1; /* 74LS166 serial shift */ _nop_ (); _nop_ (); _nop_ (); P1_6 = 0; /* inhibit end */ SCON = 0x10; /* 串口方式0,允许接收 */ while (RI == 0); RI = 0; uch = SBUF; _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ (); _nop_ (); return ch; } 如果将74LS165的CLOCK INHIBIT引脚接地时,注释掉程序中有关P1_6的语句,实验现象是一样的。 仿真时,实验现象为: 1. 试图读取D0 D1 D2 D3 D4 D5 D6 D7,但实际上读取的数据为 1 D0 D1 D2 D3 D4 D5 D6,也就是说,读取数据=真实数据右移一位然后最高位补1。明显偏了一位,而且不知道为什么高位要补1; 2. 轮询方式查询RI置位后,软件复位RI:RI=0;但是后面明显会看到RI会重新变为1. 奇怪的是,如果是语句_nop_(),RI并不会变为1;只要遇到非_nop_()语句,RI就会发生变化。为什么有这种变化? 小弟的软件环境是:keil c51 v9.06+proteus release 7.5 sp3 (build7401) 我猜多半是设计过程出了问题,比如电路图或者驱动程序时序问题,但目前没有任何思路。 请好心人帮忙看看,给个思路? 感激不尽!! |
|
相关推荐
|
|
{:9:}
|
|
|
|
|
|
图居然看不了。。。。。。
|
|
|
|
|
|
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
621 浏览 0 评论
【原创】收藏!单片机输出4种波形的函数信号发生器毕设(Proteus仿真+原理图+源码和论文)
1792 浏览 1 评论
6330 浏览 6 评论
《Proteus实战攻略从简单电路到单片机电路的仿真》+读后总结与推荐
991 浏览 0 评论
请问2020版本ADS中的symbol如何设置出layout look-alike
68230 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-28 02:44 , Processed in 0.455293 second(s), Total 70, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号