找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 3076|回复: 9
打印 上一主题 下一主题
收起左侧

单片机怎么实现移位寄存器的功能?

[复制链接]
跳转到指定楼层
楼主
ID:815936 发表于 2020-8-27 18:09 来自触屏版 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
通过P1.0输入一个脉冲,让P0.0值1让后对这个高电平移位

脉冲从P1.0口输入,当有一个脉冲出现时让P0.0值1,让后通过P1.1口再输入一个脉冲对P0移位,每一个脉冲移动一位。通过51单片机实现移位寄存的功能?请问大侠这个函数怎么写?拜托了

Screenshot_20200827_180520.jpg (488.41 KB, 下载次数: 55)

Screenshot_20200827_180520.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:235200 发表于 2020-8-28 00:24 | 只看该作者
sbit PP=P1^0;
main()
{
unsigned char V=0;
P0=0;
while(!PP)   //出现低脉冲
{
while(PP);
V=(V<<1)+1;
if (V==0xff) V=0;
P0=V;
}
回复

举报

板凳
ID:213173 发表于 2020-8-28 06:22 | 只看该作者
#include <REG52.H>

sbit K1=P1^0;

void main()
{
        while(1)
        {
                if(!K1)
                {
                        P0<<=1;
                        while(!K1);
                }
        }
}
回复

举报

地板
ID:744327 发表于 2020-8-28 08:39 | 只看该作者
可以这样写
sbit PP=P1^0;
main()
{
char V=0;
P0=0;
while(PP!=0)   //出现低脉冲
{
V=(V<<1)+1;
if (V==0xff) V=0;
P0=V;
}
回复

举报

5#
ID:146782 发表于 2020-8-28 09:04 | 只看该作者
建议先画个流程图就容易了
回复

举报

6#
ID:815936 发表于 2020-8-28 09:24 来自触屏版 | 只看该作者
谢谢大家的帮忙
回复

举报

7#
ID:540927 发表于 2020-8-28 09:27 | 只看该作者
这个不就是流水灯的代码吗?楼主可以看看那些单片机书籍,比如郭天祥的,一般都会有流水灯,这是单片机入门时最先遇到的小实验之一
回复

举报

8#
ID:815936 发表于 2020-8-28 09:31 来自触屏版 | 只看该作者
csmyldl 发表于 2020-8-28 00:24
sbit PP=P1^0;
main()
{

怎么通过P1^0的脉冲进行移位?
回复

举报

9#
ID:807712 发表于 2020-8-28 10:09 | 只看该作者
这个事你最好看看IIC视频,时面就有你说到的内容,说白就是数据一位一位的传输过程
回复

举报

10#
ID:235200 发表于 2020-8-28 10:45 | 只看该作者
烈火 发表于 2020-8-28 08:39
可以这样写
sbit PP=P1^0;
main()

需要确定一个脉冲只移位一次,你去掉一条,可能一个脉冲移位了多次(看脉冲宽度)
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表