|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
简单的并口测试程序,收不到数据,请大家帮忙看看是何原因? |
作者:IFine 栏目:单片机 |
写了个简单的并口测试程序(编译通过),用并口监视软件查看收不到数据,不知何故, 请高手分析一下原因,谢谢!程序和电路图如下: /****************************************************************** 项目: 并口测试 微控制器: ATMEGA8515L-8PI @4MHZ 编译器: WinAVR20050214 ******************************************************************/ #include <avr/io.h> //常量或变量定义 #define true 0xFF #define false 0x00 #define HostAck PIND3 // PD3, input, Read PULSE #define PeriphRequest PD2 // PD2, OUTPUT, Data valid #define sbi(PORT,bit) (PORT |= (1<<bit)) #define cbi(PORT,bit) (PORT &= ~(1<<bit)) #define chkPORT(PORT,bit) (PORT & (1<<bit)) void Check_ReadPulse(void) { DDRA = 0xFF; // 改变PORTA为输出 while (!chkPORT(PIND,HostAck)){}; while (chkPORT(PIND,HostAck)){}; DDRA = 0x00; } //器件初始化 void init_devices(void) { cli(); //全局中断禁止 // 端口初始化 PORTA = 0xFF; DDRA = 0x00; PORTD = 0xFF; DDRD = 0x04; } void main(void) { init_devices(); while (true) { //发送数据3进行测试 cbi(PORTD,PeriphRequest); PORTA = 0x03; Check_ReadPulse(); } } * - 本贴最后修改时间:2006-4-25 15:52:24 修改者:IFine |
2楼: | >>参与讨论 |
作者: IFine 于 2006/4/25 17:25:00 发布:
顶起来,帖子快沉了! |
3楼: | >>参与讨论 |
作者: tuwen 于 2006/4/25 19:44:00 发布:
电脑并口(打印口)只能输出,不能读入的。 电脑并口读入的只是自己输出的数据(相当于核对),不能读入外部的数据。 |
4楼: | >>参与讨论 |
作者: winsu 于 2006/4/26 8:54:00 发布:
可以读入 用状态口读,一次能读入4位。 用EEP模式或其他高级模式,那么D0~D7是双向。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |