使用74LS165将AVR的串口输入扩为并口输入

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

系统功能

使用74LS165将AVR的串口输入扩为并口输入。


硬件设计

AVR主控电路原理图

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


软件设计


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


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

//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101

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

实验内容:

使用PA口作为信号源输入到74LS165,74LS165将会将该信号转为串行信号,

MCU再自己接收串行信号,使用PB口的LED指示灯查看数据是否正确。

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

硬件连接:

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

           SeialBoard(165PrlPort)   SMK1632

    P0  ---------     PB0

    P1   ---------     PB1

    P2   ---------     PB2

    P3   ---------     PB3

    P4   ---------     PB4

    P5   ---------     PB5

    P6   ---------     PB6

    P7   ---------     PB7

    PL  ---------   PD2

     SeialBoard(165SrlPort)    SMK1632

    VCC  ---------   VCC

    GND  ---------   GND

    TXD  ---------   RXD

    RXD  ---------   TXD

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

注意事项:

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

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

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

10101010101010101010101010101010101010101010101010101010101010101010*/


#include

#include "D:ICC_HCmmICC.H"


#define DISP_DDR    DDRB

#define DISP_PORT   PORTB


#define SOURCE_DDR  DDRA

#define SOURCE_PORT PORTA


#define IN_RXD  cbi(DDRD,0)    //PD0 数据口

#define GET_RXD  gbi(PIND,0)


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

#define SET_TXD  sbi(PORTD,1)

#define CLR_TXD   cbi(PORTD,1)


#define OUT_PL  sbi(DDRD,2)    //PD2 锁存口

#define SET_PL  sbi(PORTD,2)

#define CLR_PL  cbi(PORTD,2)


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

程序名称:从74LS165获取数据

程序功能:

注意事项:

提示说明:

输    入:

返    回:

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

uint8 getDat()

{

 uint8 i,dat;


 for(i=0;i<8;i++) //循环输出8位数据

 {

  SET_TXD; //设置为高电平

  if(GET_RXD) //下降沿时候获取数据

   dat |= 0x01;

  dat = dat<<1;

  CLR_TXD; //设置为低电平

 }

 dat = dat>>1;

 return dat;

}

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

程序名称:

程序功能:

注意事项:

提示说明:

输    入:

返    回:

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

void main()

 uint8 i;

 

 DISP_DDR = 0XFF;

 SOURCE_DDR = 0XFF;

 OUT_PL;

 OUT_TXD;

 IN_RXD;

 //while(1)

 //{

  SOURCE_PORT = 0X55;

  SET_PL;

  CLR_PL;

  SET_PL;

  DISP_PORT = getDat();

 //}

}


系统调试

将74LS165的输入端口P0--P7接入单片机的PB口,那么PB口输出的数据经过74LS165的转换变为串行数据,将串行数据接入串口,那样若正常工作接收到的数据将与从PB口发出的数据一致,用LED指示串口接收到的数据,进行观察。

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

上一篇:AVR IO输出之数码管扫描程序
下一篇:使用74LS164将AVR的串口输出扩为并口输出

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

推荐阅读

使用74LS165将C8051F的串口输入扩为并口输入
系统功能使用74LS165将C8051F的串口输入扩为并口输入。硬件设计串行输入扩展为并行输入芯片74LS165控制电路原理图软件设计下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!//目标系统: 基于C8051F单片机//应用软件: Silicon IDE / Keil/*01010101010101010101010101010101010101010101010101010101010101010101----------------------------------------------------------------------实验内容:使用P2口作为信号源输入到74LS165
发表于 2020-06-29
使用74LS165将C8051F的串口<font color='red'>输入</font>扩为<font color='red'>并口</font><font color='red'>输入</font>
用单片机的串口驱动74LS165
  串行口是单片机与外界进行信息交换的工具, 利用单片机串口实现输入移位寄存器,只需用软件置REN=1(同时RI=0),即开始接收。数据字节在移位时钟脉冲的配合下,从低位至高位一位一位地接收下来并装入SBUF中,在启动接收过程(即写SCON,清RI位)开始后的第8个机器周期RI被置位。这一数据帧接收完毕,可进行下一帧的接收。  在模式0下,数据传输速率为fosc/12,fosc是时钟频率。时钟频率为12MHz时串行数据传输速率为lMbit/s,速度较快,故程序中对接收过程采取查询等待方式。如果有必要,应该用中断控制方式以提高程序速率。  需要特别注意,在工作模式0下,必须将SCON的SM2位清零。  单片机串口驱动74LS165
发表于 2018-03-06
用单片机的串口驱动<font color='red'>74LS165</font>
用单片机I/O端口驱动74LS165
  I/O接口的功能是负责实现CPU通过系统总线把I/O电路和外围设备联系在一起,按照电路和设备的复杂程度,I/O接口的硬件主要分为两大类:  (1)I/O接口芯片    这些芯片大都是集成电路,通过CPU输入不同的命令和参数,并控制相关的I/O电路和简单的外设作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA控制器、并行接口等。   (2)I/O接口控制卡    有若干个集成电路按一定的逻辑组成为一个部件,或者直接与CPU同在主板上,或是一个插件插在系统总线插槽上。  按照接口的连接对象来分,又可以将他们分为串行接口、并行接口、键盘接口和磁盘接口等。  用I/O模拟移位寄存器的时序驱动74LS165,实现
发表于 2018-03-06
用单片机I/O端口驱动<font color='red'>74LS165</font>
74LS165 C51程序(并入传出芯片)
单片机IO驱动74LS165 C51程序 //-------------------------------------库函数声明,管脚定义-------------- #include <reg52.h>  sbit a7=ACC^7;  sbit simuseri_CLK=P1^6;            //用P1^6模拟串口时钟  sbit simuseri_DATA=P1^5;  
发表于 2016-11-09
51单片机C编程(十、74LS165串口输入)
通过74ls165将按键的状态串口输入到51单片机,在数码管上显示出来,每个按键对应数码管上的一段。 proteus仿真电路图如下:  #include "reg51.h" sbit SL=P3^7     //串口接收启动端口:0->1启动。 #define LEDPORT P0; void main() {  unsigned char ucCount;  SCON=0x10;       //设置串口模式:模式0,允许接收
发表于 2015-09-25
[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