系统功能
使用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指示串口接收到的数据,进行观察。
上一篇:AVR IO输出之数码管扫描程序
下一篇:使用74LS164将AVR的串口输出扩为并口输出
推荐阅读最新更新时间:2024-11-02 14:34
设计资源 培训 开发板 精华推荐
- TC78S122FNG 多通道步进电机驱动器评估板
- 使用 NXP Semiconductors 的 uA723 的参考设计
- LT3007ITS8 用于保活电源的低压差线性稳压器的典型应用电路
- dc-dc19-12-23
- TWR-S08LL64-KIT、MC9S08LL 基于 MC9S08LL64 MCU 的 8 位段式 LCD 塔式系统模块
- 使用 Richtek Technology Corporation 的 RT9183A 的参考设计
- LT6654AMPS6-4.096 具有升压输出电流和电流限制的电压基准的典型应用
- 盖格计数器
- ADA4841-2YCPZ-RL 的典型应用电路 用于 ADC 驱动器的低功耗、低噪声运算放大器原理图
- DC1048A,用于 LT5575EUF、800 MHz 至 2.7 GHz 直接 I/Q 解调器的演示板