⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 74ls165._c

📁 ATmega16应用例子
💻 _C
字号:
/*********************************************************************
	微 雪 电 子   WaveShare   http://www.waveShare.net            	
		                                                            
目    的:   测试SeialBoard的74LS165模块
		
目标系统:   基于AVR单片机

应用软件:   ICCAVR                                               
		                                                                
版    本:   Version 1.0 
                                                        
圆版时间:   2005-05-2

开发人员:   SEE

说    明:   若用于商业用途,请保留此段文字或注明代码来源
		
	深 圳 微 雪 电 子 保 留 所 有 的 版 权     
*********************************************************************/

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:

----------------------------------------------------------------------
实验内容:
使用PA口作为信号源输入到74LS165,74LS165将会将该信号转为串行信号,
MCU再自己接收串行信号,使用PB口的LED指示灯查看数据是否正确。
----------------------------------------------------------------------
硬件连接:
将PB口的LED指示灯使用短路帽短接。
           SeialBoard(165PrlPort) 	 M16SD
				P0		---------     PB0
				P1  	---------     PB1
				P2 		---------     PB2
				P3  	---------     PB3
				P4  	---------     PB4
				P5  	---------     PB5
				P6  	---------     PB6
				P7  	---------     PB7
				PL		---------	  PD2
		   SeialBoard(165SrlPort)    M16SD
				VCC		---------	  VCC
				GND		---------	  GND
				TXD		---------	  RXD
				RXD		---------	  TXD
----------------------------------------------------------------------
注意事项:
详见M16SD说明书
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.h>
#include "D:\ICC_H\CmmICC.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)

/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
uint8 getDat()
{
	uint8 i,dat;

	for(i=0;i<7;i++)
	{
		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();
	//}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -