Upload
jemima-lyons
View
227
Download
0
Embed Size (px)
Citation preview
در برنامه كد در نوشتن برنامه كد AVR AVR نوشتنSTUDIOSTUDIO
برنامه برنامه شروع شروع
داده : داده :قسمت قسمت
.DSEG.DSEG
.ORG 0X60.ORG 0X60
.DEF TEMP,R16.DEF TEMP,R16
.EQU LENGTH,10.EQU LENGTH,10
.SET KEY_PORT,PORTC.SET KEY_PORT,PORTC
.STRING: .BYTE 5.STRING: .BYTE 5
برنامه كد برنامه قسمت كد قسمت
.CSEG.CSEG
.ORG 0X80.ORG 0X80
MAIN:MAIN:
STR: .DB”PLEASE INSERT NUM: “STR: .DB”PLEASE INSERT NUM: “
------------
------------
RETRET
برنامه كد برنامه قسمت كد قسمت
: استك گر اشاره دهي :مقدار استك گر اشاره دهي مقدار
LDI TEMP,HIGH(RAMEND)LDI TEMP,HIGH(RAMEND)
OUT SPH,TEMPOUT SPH,TEMP
LDI TEMP,LOW(RAMEND)LDI TEMP,LOW(RAMEND)
OUT SPL,TEMPOUT SPL,TEMP
كليد صفحه كليد اسكن صفحه اسكن
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 1 1 1 1 1 1 11 1 1 1 1 1 1 1
0XF7 0 1 1 10XF7 0 1 1 1
0XFB 1 0 1 10XFB 1 0 1 1
0XFD 1 1 0 10XFD 1 1 0 1
0XFE 1 1 1 0 0XFE 1 1 1 0
كليد صفحه كليد اسكن صفحه اسكنLDI TEMP,0XF7LDI TEMP,0XF7OUT PORTD,TEMPOUT PORTD,TEMPIN TEMP,PORTDIN TEMP,PORTD--- A--- ALDI TEMP,0XFBLDI TEMP,0XFBOUT PORTD,TEMPOUT PORTD,TEMPIN TEMP,PORTDIN TEMP,PORTD----------------
AA• BST R16,4BST R16,4• BRBS 6,M1 BRBS 6,M1
R16 R16
• LDI A,'1'LDI A,'1'• RCALL DISPLAYRCALL DISPLAY• M1M1: : T T
SREG SREG• BST R16,5BST R16,5• BRBS 6,M2BRBS 6,M2• LDI A,'2'LDI A,'2'• RCALL DISPLAYRCALL DISPLAY• M2M2::• BST R16,6BST R16,6• BRBS 6,M3BRBS 6,M3• LDI A,'3'LDI A,'3'• RCALL DISPLAYRCALL DISPLAY• M3M3::
نمايشگر با نمايشگر كار با كار
• DISPLAY:DISPLAY:
• LDI TEMP,0XFFLDI TEMP,0XFF
• OUT DDRC,TEMPOUT DDRC,TEMP خروجی = جهتجهت خروجی = داده داده
• OUT DDRA,TEMP OUT DDRA,TEMP = خروجی داده خروجی = جهت داده جهت
• OUT PORTC,AOUT PORTC,A باشد می کارکتر باشد شامل می کارکتر رجيستررجيسترAA شامل
• SBI PORTA,SBI PORTA,55
• CBI PORTA,CBI PORTA,66
• SBI PORTA,SBI PORTA,77
• CBI PORTA,CBI PORTA,77
• RCALL DELAYRCALL DELAY نما با کار نما برای با کار ن ييبرای ن شگر تاخ ييشگر به تاخ از به ر ر يياز استاست
• RETRET
• COMMAND:COMMAND: نما ارسالارسال نما دستورات شگرشگرييدستورات
• LDI TEMP,0XFFLDI TEMP,0XFF
• OUT DDRA,TEMPOUT DDRA,TEMP
• OUT DDRC,TEMPOUT DDRC,TEMP
• OUT PORTC,AOUT PORTC,A
• CBI PORTA,0CBI PORTA,0
• CBI PORTA,1CBI PORTA,1
• SBI PORTA,2SBI PORTA,2
• CBI PORTA,2CBI PORTA,2
• RCALL DELAYRCALL DELAY
• RETRET
• DELAY:DELAY: ب ييتاختاخ جادجاديياا ب ری از ييری از ش ثان ييمم1010ش ثان لی ههييلی
• ldi R20,250ldi R20,250
• BACK1:LDI R21,200BACK1:LDI R21,200
• HERE: dec r21HERE: dec r21
• cpi r21,0 cpi r21,0
• brne HEREbrne HERE
• dec r20dec r20
• cpi r20,0cpi r20,0
• brne BACK1brne BACK1
• RETRET
RESET_LCD: RESET_LCD: نما نما بردن به ييبردن به شگر اول ييشگر حالت اول ک حالت ه ه ييک مطلوبمطلوب
• LDI A,0X0CLDI A,0X0C
• RCALL COMMANDRCALL COMMAND
• LDI A,0X01LDI A,0X01
• RCALL COMMANDRCALL COMMAND
• LDI A,0X06LDI A,0X06
• RCALL COMMANDRCALL COMMAND
• RETRET
تايمرها با تايمرها كار با كار
TIMER 0TIMER 0TCCR0TCCR0
TCNT0TCNT0T/C 0 ControlT/C 0 Control
T/C 0T/C 0
TIMER 1TIMER 1TCCR1ATCCR1A
TCCR1BTCCR1B
TCNT1TCNT1
OCR1AOCR1A
OCR1BOCR1B
T/C Control register 1 AT/C Control register 1 A
T/C Control register 1 BT/C Control register 1 B
Timer/Counter 1Timer/Counter 1
Output copmare Register Output copmare Register 1A1A
Output copmare Register Output copmare Register 1b1b
تايمر هاى تايمر پورت هاى پورت
يك تايمر هاى يك پورت تايمر هاى پورت
يك تايمر كالك تعيين يك پورت تايمر كالك تعيين پورت
يك تايمر براى يك مثالى تايمر براى مثالى
• LDI TEMP,0X80LDI TEMP,0X80 تا کردن تا فعال کردن ککييمر مر ييفعال
• OUT TIMSK,TEMPOUT TIMSK,TEMP
• LDI TEMP,HIGH(-50000)LDI TEMP,HIGH(-50000)
• OUT TCNT1H,TEMPOUT TCNT1H,TEMP
• LDI TEMP,LOW(-50000)LDI TEMP,LOW(-50000)
• OUT TCNT1L,TEMPOUT TCNT1L,TEMP
تا 5000050000دادن دادن قرارقرار محتوای تا در محتوای مرمرييدر
• LDI TEMP,0X01 LDI TEMP,0X01
• OUT TCCR1B,TEMPOUT TCCR1B,TEMP کالککالک انتخابانتخاب
ها ها وقفه وقفه
External External SRAM/INTSRAM/INT
MCUCRMCUCRGeneral controlGeneral control
External INTExternal INTGIMSKGIMSK
GIFRGIFRINT mask reg.INT mask reg.
INT flag reg.INT flag reg.
Timer INTTimer INTTIMSKTIMSK
TIFRTIFRTimer INT maskTimer INT mask
Timer INT flagTimer INT flag
وقفه هاى وقفه پورت هاى پورت
ها ها پورت پورت
ها ها پورت پورت
صفر خارجى وقفه براى صفر مثالى خارجى وقفه براى مثالى
• LDI TEMP,0X40LDI TEMP,0X40 صفر فعالفعال وقفه صفر کردن وقفه کردن
• OUT GIMSK,TEMPOUT GIMSK,TEMP
• LDI TEMP,0X02LDI TEMP,0X02 وقفه ننييييتعتع وقفه نوع نوع
• OUT MCUCR,TEMPOUT MCUCR,TEMP
• SEISEI کل کردنکردن فعالفعال کل وقفه ىىوقفه
ميکرو وقفه بردارهای ميکرو آدرس وقفه بردارهای آدرس
NameNameAddresAddresss
Triggered byTriggered by
RESETRESET00000000Hardware ResetHardware Reset,,
Power-On-ResetPower-On-Reset
INT0INT000010001Level change INT0 Level change INT0 pinpin
INT1INT100020002Level change INTLevel change INT11 pinpin
TIMER1CAPTTIMER1CAPT00030003Capture event Capture event on on TCO1TCO1
TIMER1COMPTIMER1COMPAA
00040004TCO1=TCO1=Compare Compare value Avalue A
TIMER1 TIMER1 COMPBCOMPB
00050005TCO1=TCO1=Compare Compare value Bvalue B
TIMER1 OVFTIMER1 OVF00060006TCTCOO 1 Overflow 1 Overflow
ميکرو وقفه بردارهای ميکرو آدرس وقفه بردارهای آدرس
NameNameAddresAddresss
Trtiggered byTrtiggered by
TIMER0 OVFTIMER0 OVF00070007TCO0 Overflow
SPI STCSPI STC00080008Transmit Complete
UART TXUART TX00090009
UART UDREUART UDRE000A000A
UART TXUART TX000B000BUART All Sent
ANA_COMPANA_COMP000C000CAnalog Comparator
TIMER1 TIMER1 COMP1COMP1
- - - -- - - -TCo1=Compare value 1
وقفه بردارهای وقفه آدرس بردارهای آدرس
• .ORG 0000 .ORG 0000 ResetReset بردار بردار آدرس آدرس وقفهوقفه
• RJMP ISERVICE0RJMP ISERVICE0 (0x01) (0x01) بردار بردار آدرس آدرسصفر صفر وقفه وقفه
• .ORG 0006 .ORG 0006 تا وقفه بردار تا آدرس وقفه بردار کانتر ييآدرس کانتر مر مرککيي
• RJMP TCORJMP TCO