マイコンを使った工作
pnseq2.asm
最終更新:
匿名ユーザー
-
view
pnseq2.asm
; AVR Noise Source -- A PN Sequence Generator ; Copyright (C) 2003 Chuck ; ; This program is free software; you can redistribute it and/or ; modify it under the terms of the GNU General Public License ; as published by the Free Software Foundation; either version 2 ; of the License, or (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program; if not, write to the Free Software ; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ; ; ; Title: AVR Noise Source ; Author: Chuck ; Date: 16, August, 2003 ; Software: AVR Studio to assemble ; Hardware: AT90S2323 ; ; .NOLIST ;List Disable .include "2323def.inc" .LIST ;List Enable .EQU PN_OUT = PB0 .DEF TEMP = R16 .DEF STACK = R17 .DEF SREGH = R18 .DEF SREGL = R19 .DEF SREGM = R20 .DEF TEMP2 = R21 .CSEG ;---- Vector ---- .ORG 0 RJMP INIT RETI RETI INIT: CLI LDI TEMP, 0b00000001 OUT DDRB, TEMP LDI TEMP, 0b00000000 OUT PORTB, TEMP LDI SREGH, 0xAA LDI SREGM, 0x0F LDI SREGL, 0xAA ;---- main loop ---- LOOP: CLR TEMP ; calculate parity section BST SREGH,7 BLD TEMP,0 CLR TEMP2 BST SREGH, 6 BLD TEMP2, 0 EOR TEMP, TEMP2 BST SREGL, 6 BLD TEMP2, 0 EOR TEMP, TEMP2 BST SREGL, 0 BLD TEMP2, 0 EOR TEMP, TEMP2 SBRC SREGL, PN_OUT ; output PN sequence section SBI PORTB, PN_OUT SBRS SREGL, PN_OUT CBI PORTB, PN_OUT CLC ; shift section SBRC TEMP, 0 SEC ROR SREGH ROR SREGM ROR SREGL RJMP LOOP