使用74LS164将AVR的串口输出扩为并口输出

2020-06-29来源: eefocus关键字:74LS164  AVR  串口输出  并口输出

系统功能

使用74LS164将AVR的串口输出扩为并口输出。


硬件设计

  

AVR主控电路原理图

串行输出扩展为并行输出芯片74LS164控制电路原理图


软件设计


下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!


//目标系统: 基于AVR单片机

//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101

----------------------------------------------------------------------

实验内容:

使用PB口的LED指示灯查看MCU自己从模拟串口发送的数据。

----------------------------------------------------------------------

硬件连接:

将PB口的LED指示灯开关切换到"ON"状态。

          SeialBoard(164PrlPort)     SMK1632

    Q0  ---------     PB0

    Q1   ---------     PB1

    Q2   ---------     PB2

    Q3   ---------     PB3

    Q4   ---------     PB4

    Q5   ---------     PB5

    Q6   ---------     PB6

    Q7   ---------     PB7

    SeialBoard(164SrlPort)     SMK1632

    VCC  ---------   VCC

    GND  ---------   GND

    TXD  ---------   RXD

    RXD  ---------   TXD

----------------------------------------------------------------------

注意事项:

(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘

(2)请详细阅读:光盘根目录下的“产品资料开发板实验板SMK系列SMK1632说明资料”

----------------------------------------------------------------------

10101010101010101010101010101010101010101010101010101010101010101010*/


#include

#include "D:ICC_HCmmICC.H"


#define OUT_RXD  sbi(DDRD,0)    //PD0 数据口

#define SET_RXD  sbi(PORTD,0)

#define CLR_RXD  cbi(PORTD,0)


#define OUT_TXD   sbi(DDRD,1)    //PD1 脉冲口

#define SET_TXD  sbi(PORTD,1)

#define CLR_TXD   cbi(PORTD,1)


/*--------------------------------------------------------------------

程序名称:

程序功能:

注意事项:

提示说明:

输    入:

返    回:

--------------------------------------------------------------------*/

void setDat(uint8 dat)

{

 uint8 i;


 for(i=0;i<8;i++)

 {

  SET_TXD; //设置脉冲口为高

  if((bool)dat&0x01) //在下降沿的时候写数据

   SET_RXD;

  else

   CLR_RXD;

  CLR_TXD; //设置脉冲口为低

  dat = dat>>1;

 }

}

/*--------------------------------------------------------------------

程序名称:

程序功能:

注意事项:

提示说明:

输    入:

返    回:

--------------------------------------------------------------------*/

void main()

{

    uint8 dat=0X55;      //改变dat,观察数据变化

 

 OUT_RXD; //设置数据口为输出

 OUT_TXD; //设置脉冲口为输出

 setDat(dat);

 while(1);

}



系统调试

将74LS164的输出端口Q0--Q7接入LED,用LED指示74LS164输出的数据。改变dat=0x55;语句的值,观察LED的变化。


关键字:74LS164  AVR  串口输出  并口输出 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501489.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:使用74LS165将AVR的串口输入扩为并口输入
下一篇:AVR I2C(TWI)程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

使用74LS164将C8051F的串口输出扩为并口输出
系统功能使用74LS164将AVR的串口输出扩为并口输出。硬件设计串行输出扩展为并行输出芯片74LS164控制电路原理图软件设计下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!//目标系统: 基于C8051F单片机//应用软件: Silicon IDE / Keil/*01010101010101010101010101010101010101010101010101010101010101010101----------------------------------------------------------------------实验内容:使用P2口的LED指示灯查看MCU自己从模拟串口发送
发表于 2020-06-30
使用74LS164将C8051F的串口<font color='red'>输出</font>扩为<font color='red'>并口</font><font color='red'>输出</font>
74LS164 for stm32 源码
在单片机系统中, 如果并行口的IO资源不够,而串行口又没有其他的作用, 那么我们可以用74LS164来扩展并行IO口,节约单片机资源。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。 其中: Q0—Q7 并行输出端 。 A,B串行输入端。 MR 清除端, 为0时,输出清零。 CP 时钟输入端。74LS164引脚定义: 74LS164逻辑表:相关原理:74LS164.c
发表于 2019-12-11
<font color='red'>74LS164</font> for stm32 源码
51单片机的4×4键盘识别与74LS164驱动数码显示
;P1口外接4×4键盘,输出使用74LS164驱动一位数码显示器。;当按下任一键时,在数码显示器上显示键值。;程序用汇编语言编写,用PROTEUS仿真调试的画面如下:;程序如下:    ORG   0000H    LJMP  START    ORG   0030HSTART:    MOV  P1, #255    MOV  60H, #16MAIN:    CALL
发表于 2018-05-08
51单片机的4×4键盘识别与<font color='red'>74LS164</font>驱动数码显示
用单片机的串口驱动74LS164
  8051单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。  串口工作在模式0,只是作为同步移位寄存器。RXD(P3.0)用于串行数据输出,TXD(P3.1)用于移位时钟输出,P1.7用来控制74LS164的工作状态。  单片机串口驱动74LS164的程序主要包括函数声明管脚定义部分、串口初始化函数以及数据发送函数。  (1)函数声明管脚定义。  函数声明管脚定义部分主要完成程序所涉及的库函数的声明及有关引脚的定义,一般置于程序的开头部分,代码
发表于 2018-03-24
用单片机的串口驱动<font color='red'>74LS164</font>
用单片机I/O端口驱动74LS164
   74LS164是8位串入,并出移位寄存器,工作时,在移位时钟CLK的作用下,串行口送入的数据一位一位地移入。用单片机的P1.6口输出移位脉冲,用P1.5口输出串行数据,同样可以驱动74LS164工作。如图2-4所示,74LS164的清零端CLR由单片机P1.7控制。  单片机I/O端口驱动74LS164主要包括函数声明管脚定义部分、数据输入函数以及数据输出函数。   (1)函数声明管脚定义。  函数声明管脚定义部分主要完成程序所涉及的库函数的声明及有关引脚的定义,一般置于程序的开头部分,代码如下:  (2)数据输入函数out_simuseri0。  数据输入函数out_simuseri()将8位数据的从低位到高位
发表于 2018-03-24
用单片机I/O端口驱动<font color='red'>74LS164</font>
[AVR]高压并行编程---基础知识
手一抖就锁了好几片Mega16,这可是几十块钱啊...有必要造一个高压并行编程器了一、接线方式及端口定义RDY/BSY 判忙标志位。(0:设备正忙 1:等待新的命令)OE 输出使能位 低电平有效WR 写脉冲 低电平有效BS[2:1] 字节选择1(0:选择低位字节 1:选择高位字节)XA[1:0] XTAL动作位00加载Flash或者EEPROM地址01加载数据10加载命令11保留PAGEL 加载程序存储器和EEPROM数据页DATA 双向数据/命令口0x80 芯片擦除0x40 写熔丝位0x20 写锁定位0x10 写FLASH0x11 写EEPROM0x08 读标示字节和校准字节0x04 读熔丝位及锁定位0x02 读FLash0x03
发表于 2020-06-06
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved