AT89S51からデータを送信するために

F

freakkaito

Guest
私AT89S51にATMEGA32 SPIポートを介してから
の データを送信するには
、 私は混乱し、作る
の を助けることができる誰かが私です。

私 AT89s51初期化するが、このコードを行ったrespon
すべて では
ない 。マイavr xtal 4MHzのとAT89sを使用
し、 1 MHzの転送クロックは16MHzを使用している( 1月4日avrクロックまたは1月16日at89s時計、それが何もデータシートに書いて) 。私はそれをコンパイルするにはWinAVRを使用します。

#含まれ<stdio.h>
#含まれ<stdlib.h>
#含まれ<string.h>
#含まれ<avr/pgmspace.h>
#含まれ<avr/io.h>
#含まれ<avr/interrupt.h>#
" global.h "を含む
# " lcd.h
" など

SPI_USEINT定義#

INTはtargetInit (ボイド) ;
ボイドtargetClear (ボイド) ;
uint8_t spiTransferByte ( uint8_tデータ) ;
u08 spiTransferComplete揮発性;
ボイドspiInit (ボイド) ;INTはメイン(ボイド)


# ifdef SPI_USEINT
( SIG_SPI )信号

= TRUEをspiTransferComplete ;

# endifのlcd_init ( LCD_DISP_ON ) ;
spiInit ( ) ;
開始:
場合( ! targetInit ( ) )

lcd_gotoxy ( 0,1 ) ;
lcd_puts ( "目標エラー" ) ;delay1s ( ) ;
後藤開始;

その他の

lcd_clrscr ( ) ;
lcd_puts ( "ターゲット
[ OK
] を" ) ;


targetClear ( ) ;
_delay_ms ( 100 ) ;
spiTransferByte ( 0xAA ) ; / /ターゲットに0xAAを書く

INTはtargetInit (ボイド)

spiTransferByte ( 0xac ) ; / /最初のバイトを送信する
spiTransferByte ( 0x53 ) ; / / 2番目のバイトを送信する
spiTransferByte ( 0 ) ; / / 3バイトを送る
もし( spiTransferByte ( 0 ) == 105 ) / / respon 105 10進数または69の16進
する必要があります(
リターン( 1 ) ;

その他の

リターン( 0 ) ;



ボイドtargetClear (ボイド)

spiTransferByte ( 0xac ) ; / /ターゲットの明確な命令
spiTransferByte ( 0x80を) ;
spiTransferByte ( 0 ) ;
spiTransferByte ( 0 ) ;

uint8_t spiTransferByte ( uint8_tデータ)


# ifdef SPI_USEINT

= FALSEをspiTransferComplete ;
outb ( SPDR 、データ) ; / /データを送信

中( !
) spiTransferComplete ;
#他

outb ( SPDR 、データ) ; / /データを送信

中( ! ( inb ( SPSR ) & ( 1 < <会社のイニシャル入り切手) ) ) ; / /終わるまで待つ
# endifの

戻りinb ( SPDR ) ; / /戻りデータ
を取得)ボイドspiInit (ボイド)
(sbi (ポート、 7 ) ; / /最高裁のハイ
セットsbi ( DDRB 、 7 ) ; / /出力として最高裁に設定
cbi ( DDRB 、 6 ) ; / /入力
として 味噌セット
sbi ( DDRB 、 5 ) ; / /出力としてMOSI設定
sbi ( DDRB 、 4 ) ; / / ßマスターモードのために働く
に 出力する必要があります/ /セットアップのSPIインタフェース:

sbi ( SPCR 、 MSTR ) ; / /マスターモード

cbi ( SPCR 、 SPR0 ) ; / /クロック=金/ 4
cbi ( SPCR 、 SPR1 ) ;

cbi ( SPCR 、 DORD ) ; / / MSBファースト

sbi ( SPCR 、 SPE ) ; / /
SPIは 有効
inb ( SPSR ) ;/ /割り込みのSPIを有効にする

sbi ( SPCR 、 SPIE ) ;



私の16x2液晶diplayされています。私の体を助けてください....

 
このzipファイルには
、 ソ¥ースコードを見てください。ので
、 zip形式でのSPIルーチンバンビットを使用するようにファイルを投稿している私89S51ハードウェアのSPIを持っていません。avrで選択しているあなたにぴったりの1つのクロックレートを選択します。

また
、 PDFファイルをご覧ください。また
、 いくつかのアイデアを与える可能¥性があります。

頑張って
申¥し訳ありませんが、
お客様 からこの添付ファイルを表¥示するにはログインが必要

 
方法についてのISPプログラマが、彼らのSPI
、 MOSI
、 味噌
、 最高裁と同じピンを使用しています。一部の友人たちは
私 は知らないのSPIシリアルデータのISPを経由して
、 私は私を送ることができるという方法が、とにかくソ¥ースのおかげで
、私 は勉強
します が返信してください。<img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" />
 
freakkaito書いた:

方法についてのISPプログラマが、彼らのSPI 、 MOSI 、味噌、最高裁と同じピンを使用しています。
一部の友人たちは私は知らないのSPIシリアルデータのISPを経由して、私は私を送ることができるという方法が、とにかくソ¥ースのおかげで、私は勉強しますが返信してください。<img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" /><img src=¥"http://www.edaboard.com/images/smiles/icon_biggrin.gif¥" alt=¥"とてもハッピー¥" border=¥"0¥" />
 
引用:

マイavr xtal 4MHzのとAT89sを使用し、 1 MHzの転送クロックは16MHzを使用している( 1月4日avrクロックまたは1月16日at89s時計、それが何もデータシートに書いて) 。
 

Welcome to EDABoard.com

Sponsor

Back
Top