微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机io扩展和WR自动时序

单片机io扩展和WR自动时序

时间:10-02 整理:3721RD 点击:


问题是这样的,单片机的P2口P2.5/P2.6/P2.7连接了74LS138译码器,译码器y7和单片机P3.6WR引脚通过或非门74LS02,输出DIS_CLK。这个DIS_CLK作为74LS164串入并出的时钟线,74LS164的数据输入端1和2连接单片机的P0.0。74LS164驱动一个数码管(共阳数码管)。我需要通过单片机总线和WR自动产生时序的方法通知数码管。如何编程,请大神指点。

sbit dat=P0^0;
#define dis_play_addrece 0xe000//通过译码器得到的y7地址

unsigned char xdata *reg_add;//定义一个指针,得到地址以及给地址写数据

void out_simuseri(uchar data_buf)//
{
uchar i,s;//
reg_add=dis_clk_addrece;//把地址给指针,选通y7,置y7为0.
s=data_buf;//传送过来,需要在数码管上显示的数字

    for(i=0;i<8;i++)//一位一位传,共传八次,
    {
dat=s&0x01;//P0.0需要传的数据
*reg_add=dat;//把需要传的数据写入0XE0地址中,是不是在写的时候,WR时钟就自动置0 了?
     s=s>>1;
     }
}//这样DIS_CLK就可以从低到高变化,164就能移动数据了?
请大神帮忙分析下,程序是有错的。下面是电路图





不错。值得学习!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top