سلام دوست عزیز
کدوم ماژول؟ پورت موازی برای چه کاری؟ اگه ارتباط بین دومیکرو هست یه خط کلاک هم بکشید که slave بفهمه master دیتا رو رو باس گذاشته ، واضح تر بپرسید دوست عزیز
Good Luck
جواب سوالم رو فهمیدم اما ایراد دارم بزارید واضح تر بپرسم
برنامه من اسمش تایپ از راه دوره با کیبورد یک کلمه رو تایپ میکنیم از طریق فرستنده میفرستیم ازون ور گیرنده میگیره رو ال سی دی نشون میده .برنامه فرستنده رو نوشتم مشکل نداشت اما رو ال سی دی هیچی نشون نداد واسه همین میخوام برام ببینید این برنامه چیش ایراد داره؟چون به سبب کیبورد از پورت سریال میکرو استفاده کردیم و فرستنده ما هم ارتباط سریال داره پس باید یک پورت سریال نرم افزاری با نوشتن برنامه بنویسیم توی اینترنت کتابخانه ارتباط سریال ایجاد شده و کار ماراحت تر میشود حالا ما این برنامه رو نوشتیم
این برنامه فرستندست بنظرتون ایرادش چیه؟
#include <mega16.h>
#include <stdio.h>
#include "uart2.h"
#include <delay.h>
unsigned char Scan_Code;
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTD=0x00;
DDRD=0x00;
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0xF6;
initUART2();
#asm("sei");
while(1)
{
putchar2(Scan_Code);
delay_ms(300);
}
}
interrupt [USART_RXC]void usart_rx_isr(void)
{
unsigned char buffer;
buffer=UDR;
switch(buffer)
{
case 0xF0:
break;
case 0xE0:
break;
default:
Scan_Code=buffer;
}
}
و اینم مال کتابخونش که من کپی میکنم واستون
/* Software UART Library */
/* Author: Reza Sepas Yar */
/* Version: 1.0 */
#include <delay.h>
#define TX2_PIN PORTC.0 // UART2 TX pin
#define TX2_DDR DDRC.0 // UART2 TX Direction Register
// TX & RX levels
#define HIGH 1
#define LOW 0
// UART2 specific
#define DATA_BIT_LENGTH 1040 // ((1/BAUD)*10000000)
// put a character DIRECTLY to the UART2
void putchar2(unsigned char c)
{
unsigned char i;
TX2_PIN = LOW; // clear output (start bit)
delay_us(DATA_BIT_LENGTH);
for(i=0; i<8; i++)
{
TX2_PIN = (c & 0x01);
delay_us(DATA_BIT_LENGTH);
c >>= 1; // next bit, please !
}
TX2_PIN = HIGH; // stop bit (bit #8)
delay_us(DATA_BIT_LENGTH);
}
void puts2(char* str)
{
while( *str != '\0' )
{
putchar2((unsigned char) *str++);
}
}
// UART2 initialization function (we MUST call this function BEFORE using UART2)
void initUART2(void)
{
TX2_PIN = 1; // logic 1 (high level = STOP TX)
TX2_DDR = 1; // output
}
اگر ایرادشو بگین ممنون میشم