با سلام ،
دوست عزیز شما در حال استفاده از ورژنی قدیمی از اینترنت اکسپلورر هستید ، برای اینکه مشکلات ناشی از نمایش را نداشته باشید ، لطفا اقدام به دریافت مرورگری مناسب کرده و یا از ورژن قدیمی ما استفاده نمایید.


امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
سوالات برنامه نویسی با بسکام
#81
سلام این مداری است که فرموده بودید ببندم اما هیچ جوابی نمی دهد سنسورها رو همان طوری که فرمودید با اهم متر چک کردم سالم بودند


فایل‌(های) پیوست شده
.rar   frestandeh.rar (اندازه: 3.09 MB / تعداد دفعات دریافت: 7)
پاسخ
#82
با سلام.این برنامه دو خط اولشو در نرم افزار Bascom-AVR ارور میده.گفته بودین برنامه رو بزارم تو سایت تا مشکلشو حل کنین(در ضمن همشون از چپ به راست خونده میشه).ممنون.


کد php:
.equ BAUD =25 ;9600 bps at 4.00 MHz.
 .
equ RamStart =96 ;First RAM address byte.
 .
equ SMSC =100 ;RAM address for SMS Service Center 
 
.equ TPDA =118 ;RAM address for Sender's number 
 .equ TimeDate =134 ;RAM address for Time and date of received SMS
 .equ ASCII_HEX =185 ;RAM address for ASCII to HEX conversion
 .equ SMScommand =150 ;RAM address for encoded SMS command (11001010)
 .equ Relay1 =2 
 .equ Relay2 =3
 .equ Relay3 =4
 .equ Relay4 =5
 .equ good =$10
 .equ error =$20

 .def eeadr =R17
 ;.def backup_status_register = r5
 .def temp =R16 ;temporary storage register
 .def Txbyte =R18 ;Data to be transmitted
 .def Rxbyte =R19 ;Received data
 .def temp2 =R20
 .def temp3 =R21
 .def temp4 =R22
 .def No_of_relay =R22
 .def output =R23
 .def Byte_counter =R24
 .def No_Of_ignore_bytes =R25 ;
 .def status =r26

 .def delay1 =R26
 .def delay2 =R27
 .def YLramadr=R28
 .def YHramadr=R29
 .def delay3 =R29
 .def ZLramadr=wle
 .def ZHramadr=R31

 .include "tn2313def.inc" ;Define chip particulars


 ;========================================================================


 .org 0
 rjmp reset

 ;.org OVF0addr ; Timer/Counter0 Overflow
 ; clr interrupt
 ; in backup_status_register,SREG
 ; inc interrupt
 ;
 ; ldi temp,0b11001100
 ; out portb,temp
 ; out SREG,backup_status_register
 ; reti


 ;*******************************************************************

 ;read_module_ID: .db "ATI" ,0x0d, 0 ;Show module'
s ID (GM47)
 ;
enable_clip: .db "AT+CLIP=1" ,0X0d;enable CLIP
 select_phone_memory
: .db "AT+CPMS=",'"',"ME",'"',0x0d,;Select the phone memory ("ME")
 
set_text_mode: .db "AT+CMGF=1" ,0x0d,0,;Select text mode
 
;enable_RI_on_SMS: .db "AT*E2SMSRI=1000" ,0x0d;Enable Ring pin after incomming SMS.
 
Hide_SMS_details: .db "AT+CSDH=0"0x0d,0,;Show only phone numberdate-timetext of SMS.
 
Read_received_sms: .db "AT+CMGR=1" ,0x0d,0,;read the received message(Memory possition 1)
 
Send_SMS_command: .db "AT+CMGS=",0,;Send SMS command
 Delete_SMS
: .db "AT+CMGD=1" ,0x0d,0,;delete the received message (Memory possition 1)
 
Relay: .db "Relay"0
 cmdOut
: .db "Input"

 
.db "SMS REMOTE CONTROL, FOR SONY-ERICSSON GSM MODULE GM47 "
 
.db "Written by Serasidis Vasilis at December 2005 "
 
.db "http://www.serasidis.gr info@serasidis.gr - avrsite@yahoo.gr"


 
.cseg
 reset
:

 ; 
Setup buffers and pointers


 ldi temp
,RAMEND
 out SPL
,temp ;Init Stack Pointer


 ldi temp
,0b00000000
 out DDRB
,temp
 ldi temp
,0b11111111
 out portB
,temp

 ldi temp
,0b11111110
 out DDRD
,temp
 ldi temp
,0b00000000
 out portD
,temp

 
;ldi temp,(1<<CS02)+(0<<CS01)+(1<<CS00)
 ;
out TCCR0,temp Set clock to count on CK/1024
 
;ldi temp,(1<<TOIE0)
 ;
out TIMSK,temp enable timer 0 overflow interrupt

 ldi temp
,BAUD
 out UBRR
,temp ;Set baud rate generator


 
;=========== Set UART, as Transmiter ======================

 
ldi temp,0b00011000
 out UCR
,temp ;Enable UART Tx and Rx 
 
;==============================================================


 ;==============================================================
 ; 
Send command to module
 
;==============================================================

 
rcall long_delay

 Start
:
 ;
ldi zl,low(read_module_ID*2) ;
 ;
ldi zh,high(read_module_ID*2) ;
 ;
rcall send_command
 
;ldi No_Of_ignore_bytes,1
 
;rcall receive2 ;Read all response bytes.

 ;
ldi zl,low(enable_clip*2) ;
 ;
ldi zh,high(enable_clip*2) ;
 ;
rcall send_command
 
;rcall receive

 select_phone_mem
:
 
ldi zl,low(select_phone_memory*2) ;
 
ldi zh,high(select_phone_memory*2) ;
 
rcall send_command
 rcall receive2
 rcall check_for_command_error
 cpi temp
,good
 brne select_phone_mem

 set_text_mod
:
 
ldi zl,low(set_text_mode*2) ;
 
ldi zh,high(set_text_mode*2) ;
 
rcall send_command
 rcall receive2
 rcall check_for_command_error
 cpi temp
,good
 brne set_text_mod

 
;ldi zl,low(enable_RI_on_SMS*2) ;
 ;
ldi zh,high(enable_RI_on_SMS*2) ;
 ;
rcall send_command
 
;rcall receive

 Hide_SMS_detail
:
 
ldi zl,low(Hide_SMS_details*2) ;
 
ldi zh,high(Hide_SMS_details*2) ;
 
rcall send_command
 rcall receive2
 rcall check_for_command_error
 cpi temp
,good
 brne Hide_SMS_detail


 ldi zl
,low(Read_received_sms*2) ;
 
ldi zh,high(Read_received_sms*2) ;
 
rcall send_command
 rcall receive2
 rcall check_for_command_error
 cpi temp
,good
 brne start


 Read_receiv_sms
:
 
ldi zl,low(Read_received_sms*2) ;
 
ldi zh,high(Read_received_sms*2) ;
 
rcall send_command

 ldi No_Of_ignore_bytes
,71 ;ignore first 71 bytes of received SMS (part: +CMGR"REC READ","+306947123456",,"05/11/29,14:17:12+08"[CR][LF] )
 
rcall from_read_phone_number 

 rcall check_for_command_error
 cpi temp
,good
 brne exit_from_here

 
;==============================================================
 ;
 ;==============================================================

 ; 
ldi txbyte,'a'
 
rcall b_transmit
 
ldi txbyte,'t'
 
rcall b_transmit
 
ldi YL,RamStart
 
;
 ;
send_all_rambytes:
 ; 
ld txbyte,Y+
 ; 
tst txbyte ;test if txbyte is zero
 
breq loop ;if yesgo to loop 
 
rcall b_transmit
 
out portb,txbyte
 
rjmp send_all_rambytes

 
;------------ Check password --------------

 
ldi YL,ramstart
 clr eeadr
 ldi byte_counter
,4
 check_password
:
 
rcall eeread
 ld temp2
,Y+
 
cp temp2,temp
 brne check_for_recovery_password 
;If is not the samego to check it is the recovery password.
 
dec byte_counter
 brne check_password
 rjmp read_next

 
;------------ Check for recovery password --------------
 
check_for_recovery_password:
 
ldi YL,ramstart
 ldi byte_counter
,4
 ldi eeadr
,;eeprom address after '*' character.

 
check_next_recovery_byte:
 
rcall eeread
 ld temp2
,Y+
 
cp temp2,temp
 brne exit_from_this_routine
 dec byte_counter
 brne check_next_recovery_byte
 rjmp recovery_password

 exit_from_this_routine

 ; 
delete_received_message:
 
ldi zl,low(Delete_SMS*2) ;
 
ldi zh,high(Delete_SMS*2) ;
 
rcall send_command

 exit_from_here
:

 
ldi txbyte,'A'
 
rcall b_transmit
 ldi txbyte
,'T'
 
rcall b_transmit
 rjmp Send_ESC_sequence


 read_next
:
 ;------------ 
Check for <password changesymbol "*" --------------

 
ld temp,Y+
 
cpi temp,'*' ;check for password change symbol "*"
 
brne read_next2

 ldi byte_counter
,4
 clr eeadr
 write_all_password_bytes_to_ram
:
 
ld temp,Y+
 
rcall eewrite
 dec byte_counter
 brne write_all_password_bytes_to_ram

 
;------------ Check for relay status and arm or disarm the relays --------------
 
read_next2:

 
clr output
 ldi YL
,ramstart

 
;========
 
check_for_1st_relay:

 
cpi YL,252
 breq check_for_2nd_relay
 ld txbyte
,Y+
 
cpi txbyte,'1'
 
brne check_for_1st_relay
 ld txbyte
,Y+
 
cpi txbyte,'='
 
brne check_for_1st_relay
 ld txbyte
,Y+
 
cpi txbyte,'1'
 
brne check_for_zero
 sbi portd
,Relay1
 rjmp check_for_2nd_relay
 check_for_zero
:
 
cpi txbyte,'0'
 
brne check_for_2nd_relay
 cbi portd
,Relay1

 
;========
 
check_for_2nd_relay:
 
ldi YL,ramstart
 check_for_2nd_relayb
:

 
cpi YL,252
 breq check_for_3rd_relay
 ld txbyte
,Y+
 
cpi txbyte,'2'
 
brne check_for_2nd_relayb
 ld txbyte
,Y+
 
cpi txbyte,'='
 
brne check_for_2nd_relayb
 ld txbyte
,Y+
 
cpi txbyte,'1'
 
brne check_for_zero2
 sbi portd
,Relay2
 rjmp check_for_3rd_relay
 check_for_zero2
:
 
cpi txbyte,'0'
 
brne check_for_3rd_relay
 cbi portd
,Relay2

 
;========
 
check_for_3rd_relay:
 
ldi YL,ramstart
 check_for_3rd_relayb
:

 
cpi YL,252
 breq check_for_4th_relay
 ld txbyte
,Y+
 
cpi txbyte,'3'
 
brne check_for_3rd_relayb
 ld txbyte
,Y+
 
cpi txbyte,'='
 
brne check_for_3rd_relayb
 ld txbyte
,Y+
 
cpi txbyte,'1'
 
brne check_for_zero3
 sbi portd
,Relay3
 rjmp check_for_4th_relay
 check_for_zero3
:
 
cpi txbyte,'0'
 
brne check_for_4th_relay
 cbi portd
,Relay3

 
;========
 
check_for_4th_relay:
 
ldi YL,ramstart
 check_for_4th_relayb
:

 
cpi YL,252
 breq check_for_status
 ld txbyte
,Y+
 
cpi txbyte,'4'
 
brne check_for_4th_relayb
 ld txbyte
,Y+
 
cpi txbyte,'='
 
brne check_for_4th_relayb
 ld txbyte
,Y+
 
cpi txbyte,'1'
 
brne check_for_zero4
 sbi portd
,Relay4
 rjmp check_for_status
 check_for_zero4
:
 
cpi txbyte,'0'
 
brne check_for_status
 cbi portd
,Relay4

 
;------------ check for <statuscommand inside the SMS ------------

 
check_for_status:
 
ldi YL,ramstart

 check_next_byte_for_status
:
 
ld txbyte,Y+
 
cpi YL,252
 breq aaaa
 rjmp check_for_s

 aaaa

 
rjmp Send_ESC_sequence

 check_for_s
:
 
cpi txbyte,'s'
 
breq check_for_t
 cpi txbyte
,'S'
 
brne check_next_byte_for_status

 check_for_t
:
 
ld txbyte,Y+
 
cpi txbyte,'t'
 
breq check_for_a
 cpi txbyte
,'T'
 
brne check_next_byte_for_status
 check_for_a
:
 
ld txbyte,Y+
 
cpi txbyte,'a'
 
breq check_for__t
 cpi txbyte
,'A'
 
brne check_next_byte_for_status
 check_for__t
:
 
ld txbyte,Y+
 
cpi txbyte,'t'
 
breq check_for_u
 cpi txbyte
,'T'
 
brne check_next_byte_for_status
 check_for_u
:
 
ld txbyte,Y+
 
cpi txbyte,'u'
 
breq check_for__s
 cpi txbyte
,'U'
 
brne check_next_byte_for_status
 check_for__s
:
 
ld txbyte,Y+
 
cpi txbyte,'s'
 
breq Request_status
 cpi txbyte
,'S'
 
brne check_next_byte_for_status

 
;=========== read the relay's status ============
 Request_status:
 ldi zl,low(Read_received_sms*2) ; Re-read the SMS to see the phone number of the sender.
 ldi zh,high(Read_received_sms*2) ;
 rcall send_command
 ldi temp2,50 ;read 20 bytes
 ldi No_Of_ignore_bytes,12 ;Leave first 12 of received bytes.
 rcall from_read_phone_number ;read again the SMS.

 ldi zl,low(Send_SMS_command*2) ;
 ldi zh,high(Send_SMS_command*2) ;
 rcall send_command
 ldi YL,ramstart + 18 ;go to sender'
s phone number in RAM (RAM address 113exclude the first (") symbol.
 ld txbyte,Y+
 rcall b_transmit
 ;ldi txbyte,'a'
 ;rcall b_transmit
 ;ldi txbyte,'t'
 ;rcall b_transmit
 send_phone_number:
 ld txbyte,Y+
 rcall b_transmit
 cpi txbyte,'"'
 brne send_phone_number
 ldi txbyte,0x0d
 rcall b_transmit
 rcall delay
 rcall delay
 rcall delay
 rcall delay
 rcall delay
 rcall delay


 send_nxt:
 ldi zl,low(Relay*2) ;
 ldi zh,high(Relay*2) ;
 rcall send_command
 ldi txbyte,'
1'
 rcall b_transmit
 ldi txbyte,'
='
 rcall b_transmit
 sbic portD,relay1
 rjmp send_one
 ldi txbyte,'
0'
 send1:
 rcall b_transmit
 ldi txbyte,' '
 rcall b_transmit

 ldi zl,low(Relay*2) ;
 ldi zh,high(Relay*2) ;
 rcall send_command
 ldi txbyte,'
2'
 rcall b_transmit
 ldi txbyte,'
='
 rcall b_transmit
 sbic portD,relay2
 rjmp send_one2
 ldi txbyte,'
0'
 send2:
 rcall b_transmit
 ldi txbyte,' '
 rcall b_transmit

 ldi zl,low(Relay*2) ;
 ldi zh,high(Relay*2) ;
 rcall send_command
 ldi txbyte,'
3'
 rcall b_transmit
 ldi txbyte,'
='
 rcall b_transmit
 sbic portD,relay3
 rjmp send_one3
 ldi txbyte,'
0'
 send3:
 rcall b_transmit
 ldi txbyte,' '
 rcall b_transmit

 ldi zl,low(Relay*2) ;
 ldi zh,high(Relay*2) ;
 rcall send_command
 ldi txbyte,'
4'
 rcall b_transmit
 ldi txbyte,'
='
 rcall b_transmit
 sbic portD,relay4
 rjmp send_one4
 ldi txbyte,'
0'
 send4:
 rcall b_transmit
 ldi txbyte,' '
 rcall b_transmit


 ;========= Read the 8 input status =========

 ldi byte_counter,8
 in status,pinB
 com status ;invert data
 ldi no_of_relay,'
1'

 send_nxt2:
 ldi zl,low(cmdOut*2) ;
 ldi zh,high(cmdOut*2) ;
 rcall send_command
 mov txbyte,no_of_relay
 rcall b_transmit
 ldi txbyte,'
='
 rcall b_transmit
 sbrc status,0
 rjmp send_onee
 ldi txbyte,'
0'
 send1e:
 rcall b_transmit
 ldi txbyte,' '
 rcall b_transmit
 dec byte_counter
 breq send_message_
 ror status
 inc no_of_relay
 rjmp send_nxt2

 send_message_:
 ldi txbyte,26 ;<Ctrl-Z> key
 rcall b_transmit
 ldi txbyte,$0D
 rcall b_transmit
 rcall long_delay

 delete_old_message:
 ldi zl,low(Delete_SMS*2) ;
 ldi zh,high(Delete_SMS*2) ;
 rcall send_command
 rcall long_delay
 rjmp Send_ESC_sequence

 send_onee:
 ldi txbyte,'
1'
 rjmp send1e

 send_one:
 ldi txbyte,'
1'
 rjmp send1

 send_one2:
 ldi txbyte,'
1'
 rjmp send2

 send_one3:
 ldi txbyte,'
1'
 rjmp send3

 send_one4:
 ldi txbyte,'
1'
 rjmp send4
 ;------------ 
 next:

 rjmp loop 
 ;---------------------------------------------------- 
 send_command:
 lpm
 tst r0 ;check if it'
s the last character (zero number)
 
breq return ;if it is, return.
 
mov txbyte,r0
 rcall b_transmit 
;
 
adiw zl,;increase zl
 rjmp send_command 
;read the next character from flash memory

 
return: ret


 
;read_response:
 ; 
ldi No_Of_ignore_bytes,71 ;ignore first 71 bytes of received SMS (part: +CMGR"REC READ","+306947123456",,"05/11/29,14:17:12+08"[CR][LF] )
 ; 
rcall from_read_phone_number ;Go to receive bytes from module
 
com temp4
 
ret
 
;----------------------------------------------------
 
Send_ESC_sequence:
 
ldi txbyte,$1B ;escape key
 rcall b_transmit
 ldi txbyte
,$0D
 rcall b_transmit

 rcall long_delay

 rjmp start 
;Read all the time the last SMS


 loop
rjmp loop

 
;----------------------------------------------------
 
check_for_command_error:

 
ldi YL,ramstart
 ldi byte_counter
,120
 read_for_next
:
 
dec byte_counter
 breq exit_from_check_error
 ld temp
,Y+
 
cpi temp,0
 breq exit_from_check_error
 cpi temp
,'O'
 
brne read_for_next
 ld temp
,Y+
 
cpi temp,'K'
 
brne read_for_next
 ldi temp
,good
 ret

 exit_from_check_error
:
 
ldi temp,error 
 ret
 
;=============================================================
 ; <
Change line> and <EnterASCII commands
 
;=============================================================
 ;
nextline:
 ; 
ldi txbyte,0x0d
 
rcall b_transmit
 
ldi txbyte,0x0a
 
rcall b_transmit
 
;
 ; 
ret
 
;
 ;***************************************************************************
 ; 
Transmiting routine (The data from the eeprom through the AVR are going to
 
the PC computer
 ;***************************************************************************
 
b_transmit
 
sbis USR,UDRE ;is UART transmitter ready?
 
rjmp b_transmit
 out UDR
,txbyte ;sent out char
 ret

 
;*************************************************************************
 ; 
Receiving routine (The data from PC computer through to the AVR are going
 
to the eeprom
 ;*************************************************************************
 
receive2:
 
ldi No_Of_ignore_bytes,12 ;Ignore the first 12 AT command bytes.
 
rjmp from_read_phone_number
 receive

 
ldi No_Of_ignore_bytes,1

 from_read_phone_number
:
 
ldi YL,RamStart ;The first byte of RAM
 clr temp4
 clr Byte_counter 

 Delay_routine1
:
 
ldi temp3,5
 Delay_routine2
:
 
ldi temp2,255
 Delay_routine3
:
 
ldi temp,255
 loop2
:
 
sbic USR,RXC
 rjmp 
continue
 
dec temp
 brne loop2
 dec temp2
 brne Delay_routine3
 dec temp3
 brne Delay_routine2
 rjmp 
exit

 continue:
 
in Rxbyte,UDR
 inc Byte_counter
 cp No_Of_ignore_bytes
,byte_counter 
 brge Delay_routine1
 st Y
+,RxByte
 inc temp4
 cpi YL
,ramend-;If RAM address is at 250th bytego to exit because it will erase the "return" stack pointer
 
breq exit
 
rjmp Delay_routine1

 
exit:
 
ldi RxByte,0
 st Y
+,RxByte
 ret

 
;=================================================================
 ; 
Recovery password routine
 
;=================================================================
 
recovery_password:
 
ldi YL,ramstart
 clr eeadr
 ldi byte_counter
,4
 ldi temp
,'1'
 
write_next_password_number:
 
rcall eewrite
 inc temp
 dec byte_counter
 brne write_next_password_number

 delete_old_message2
:
 
ldi zl,low(Delete_SMS*2) ;
 
ldi zh,high(Delete_SMS*2) ;
 
rcall send_command
 rcall long_delay

 rjmp Send_ESC_sequence 
;go to send ESC sequence and then go to start.

 ;=================================================================
 ; 
eeprom read routine
 
;=================================================================

 
EERead:
 
out EEAR,eeadr ;send address to EEPROM 
 sbi EECR
,EERE ;strobe EEPROM
 in temp
,EEDR ;read decoded number
 inc eeadr
 ret

 
;=================================================================
 ; 
eeprom write routine
 
;=================================================================
 
EEWrite:
 
sbic EECR,EEWE ;if EEWE not clear
 rjmp EEWrite 
wait more

 out EEAR
,eeadr 
 out EEDR
,temp ;output data
 sbi EECR
,EEMWE ;set master write enable
 sbi EECR
,EEWE ;set EEPROM Write strobe
 inc eeadr 
 ret

 
;=================================================================
 ; 
Delay routine
 
;=================================================================

 
long_delay:
 
ldi delay3,100
 waitmore2
:
 
rcall delay
 dec delay3
 brne waitmore2
 ret 



 delay
:
 
ldi delay2,255
 waitsome
:
 
ldi delay1,255 

 waitmore
:
 
dec delay1
 brne waitmore
 dec delay2
 brne waitsome

 ret

 
.eseg
 
;1234 is programable password5268 is the fixed recovery password (like PUK password).
 .
db "5678*5268 
پاسخ
#83
سلام
من یه برنامه می خواستم که در زمان مشخصی مثلا یک ثانیه به ترتیب هر ثانیه یک پایه از میکرو روشن بشه
فقط پایه های aوb روشن بشن
با بسکام نوشته شده باشه برنامه
ممنون از لطف دوستان
پاسخ
#84
سلام دوستان

من میخوام عدد 123 رو رو 3 تا سون سگمنت بیارم... کسی برنامشو میگه؟؟؟

نحوه اتصال atmega 32 به سون سگمت چه جوریه؟؟


ممنون
پاسخ
#85
سلام،اگه ممکنه توضیح بدین خط به خط برنامه ای که واسه سنسور گاز نوشتین واسه چیه؟،خودم تا حدی متوجه شدم ولی چون باید سر کلاس ارائه بدم بیشتر باید بدونم،ممنون
پاسخ
#86
سلام اگه امکانش هست توضیح بدین خط به خط برنامه ی سنسور گاز واسه چی نوشته شده و چه تاثیری روی سخت افزار مرتبطش میذاره ،توضیحاتتون برام خیلی حیاتیه چون باید تا ترم تموم نشده سر کلاس ارائه بدم، باتشکر
پاسخ
#87
(26 فروردين 1392، 05:11 عصر)ramincng2 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
با سلام.این برنامه دو خط اولشو در نرم افزار Bascom-AVR ارور میده.گفته بودین برنامه رو بزارم تو سایت تا مشکلشو حل کنین(در ضمن همشون از چپ به راست خونده میشه).ممنون.



سلام :


من زیاد با دستورا ت اسمبلی در AVR آشنا نیستم . شما مطمئنی که این دستورات مربوط به ادیتور بیسکامه ؟
(2 ارديبهشت 1392، 11:58 صبح)erza نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام
من یه برنامه می خواستم که در زمان مشخصی مثلا یک ثانیه به ترتیب هر ثانیه یک پایه از میکرو روشن بشه
فقط پایه های aوb روشن بشن
با بسکام نوشته شده باشه برنامه
ممنون از لطف دوستان



سلام دوست عزیز :
حدس من اینه که شما اصلا" با برنامه نویسی میکروها آشنا نیستید . البته هیچ اشکالی نداره . میتونید با مراجعه به نمونه مدارهای خود پروتئوس و یا sample های کامپایل بیسکام ، روال برنامه نویسی شو یاد بگیرید .
چیزی که شما فرمودید ، جزء ابتدایی ترین برنامه های مراحل یادگیری هست . به همین دلیل هم بهتره من شخصا" برنامه شو بهتون نگم تا از الان در برنامه نویسی تنبل نشید !
با مقدار دادن به خروجی های پورت مورد نظرتون و دستورات wait متوالی ، براحتی انجام خواهد شد ...
(7 ارديبهشت 1392، 05:44 عصر)تیرا نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام دوستان

من میخوام عدد 123 رو رو 3 تا سون سگمنت بیارم... کسی برنامشو میگه؟؟؟

نحوه اتصال atmega 32 به سون سگمت چه جوریه؟؟


ممنون



سلام :
شما باید از روش مالتی پلکس کردن استفاده کنید . به نمونه های موجود در برنامه پروتئوس مراجعه کنید . روش سیم بندی هم در اونجا مشخصه .
(8 ارديبهشت 1392، 02:01 عصر)maede jbr نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام اگه امکانش هست توضیح بدین خط به خط برنامه ی سنسور گاز واسه چی نوشته شده و چه تاثیری روی سخت افزار مرتبطش میذاره ،توضیحاتتون برام خیلی حیاتیه چون باید تا ترم تموم نشده سر کلاس ارائه بدم، باتشکر
سلام :

این برنامه رو کامران جان قرار داده و بهتره خودش توضیحات لازم رو ارائه که . احتمالا" فرصت نکرده . کمی تأمل کنید تا ایشون پاسخ بده ...
پاسخ
#88
سلام دوستان
یه سوال داشتم
ببخشید اگه خیلی مبتدیانه استHuh
وقتی میکرو ریست میشه دقیقا چه اتفاقی براش میفته؟؟؟:-/
برنامه ای که توش پروگرام کردیم پاک میشه یا تو اجراش اختلال به وجود میاد؟؟؟:-/
یا راهی خواهیم یافت
یا راهی خواهیم ساخت...!
پاسخ
#89
(14 ارديبهشت 1392، 02:30 عصر)mp1 نوشته است: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
سلام دوستان
یه سوال داشتم
ببخشید اگه خیلی مبتدیانه استHuh
وقتی میکرو ریست میشه دقیقا چه اتفاقی براش میفته؟؟؟:-/
برنامه ای که توش پروگرام کردیم پاک میشه یا تو اجراش اختلال به وجود میاد؟؟؟:-/
سلام به شما mp1 عزیز :

اصلا" اشکالی نداره ... همیشه سعی کنید برای پیشرفت کردن ، پرسشگر باشید .


با reset شدن میکرو هیچ مشکلی برای برنامه و یا اطلاعات نوشته شدهء شما که داخل حافظهء فلش و یا ایپرام اون هست پیش نمیاد و پاک نمیشه . فقط 2 تا اتفاق میفته :


1 - تمام اطلاعاتی که توی بخش حافظهء موقت میکرو تا اون لحظه ذخیره شده بوده ( یعنی اطلاعات درون رجیسترهای موقت میکرو ) پاک میشه و از بین میره .


2 - میکرو در هر خطی از برنامه که بوده و داشته اونو اجرا میکرده ، مجددا" برمیگرده و از آدرس 0000 شروع به اجرای دستورات میکنه .


مثال میزنم :فرض کنید شما برنامهء یک قفل رمزی رو روی میکرو نوشتید و با صفحه کلید ، باید 10 رقم وارد کنید تا اگه درست بودند ، یک رله رو وصل کنه . حالا شما شروع میکنید به وارد کردن اعداد ...


مثلا" 8 رقم وارد کردید . این رقمها همگی در حافظهء موقت میکرو ذخیره میشن . حالا مثلا" یک اتفاقی میفته و میکرو reset میشه ... پس شما انگاری که هیچی تا حالا رقم وارد نکردید و باید مجددا" از اول شروع کنید و از صفحه کلید ، عدد وارد کنید ...



امیدوارم تونسته باشم خیلی روان و ساده توضیح داده باشم .
پاسخ
#90
لطفا به سوالات جواب بدین :|
پاسخ
مشترک شدن در این موضوع


پرش به انجمن:

کاربرانِ درحال بازدید از این موضوع: 1 مهمان

انتخاب پوسته :

دسترسی سریع
درباره ما
انجمن سرزمین الکترونیک در 20 شهریور 91 تاسیس شده ، که همیشه سعی کرده با ظاهری متفاوت و سرعتی خوب رضایت کاربران را جلب کند ، امیدواریم توانسته باشیم گامی کوچک در پیشرفت فناوری در ایران برداشته باشیم...
نیرو گرفته از MyBB 1.8.6 با فارسی سازی مای بی بی ایران - طراحی شده در : ملت دیزاین
© تمامی حقوق برای انجمن سرزمین الکترونیک محفوظ می باشد .

پوسته‌ی انجمن: