ATmega32

آرشیو برنامه های ATmega32 روی برد NSK115

ATmega32

آرشیو برنامه های ATmega32 روی برد NSK115

پتانسیومتر

در این برنامه قصد داریم پتانسیومتر روی برد NSK115 را توسط کد اسمبلی راه اندازی کنیم. 

.include "m32def.inc";1
.ORG 0;2
;>> General Constants;3
LDI R20,0;4
LDI R21,$FF;5
OUT DDRC,R21;6

;>> ADC Initiating;7
LDI R16,$E0;8
OUT ADMUX,R16;9
LDI R16,$87;XXX;10
OUT ADCSRA,R16;11
OUT SFIOR,R20;12


;>> Read from ADC1;13
;SBI ADMUX,MUX0;14

IST:;15
SBI ADCSRA,ADSC; Start Conversion;16
SBIS ADCSRA,ADIF;17
RJMP IST;18

SBI ADCSRA,ADIF; Clear ADIF flag;19
IN R16,ADCH;20
OUT PORTC,R16;XXX;21

RJMP IST;22

1-  تنظیمات برای ATmega32 تعریف می شوند.

2- برنامه از فضای صفرم آغاز می شود.

3- به کاربر اعلام می شود که می خواهیم متغییرهای عام را تعریف کنیم. 

4-  R20=0

5- R21=11111111

6- PORTC as output port

7- تنظیمات مبدل آنالوگ به دیجیتال

8 , 9 - ADMUX = E0 H

10 , 11 -  ADCSRA = 87 برای کمترین نرخ نمونه برداری در برابر بیشترین دقت

12- SFIOR = 0

13-  اعلام به کاربر که می خواهیم مبدل را بیاغازانیم

14-  پین صفرم پورت اول به عنوان ورودی آنالوگ تعریف شده است.

15- تعریف نقطه بازگشت

16- آغازاندن تبدیل

17 و 18 - اگر پرچم تبدیل بالا رفت ( یعنی تبدیل انجام شده است) به دو خط بعد برو، وگرنه به نقطه بازگشت IST بازگرد. 

19- پرچم تبدیل را بکش پایین

20- بایت بالای مبدل را به R16 منتقل کن

21- R16 را روی پورت سوم بگذار = روی ال ای دی های هشتگانه مقدار مبدل را نمایش بده

22- به نقطه بازگشت برگرد. ( تکرار تبدیل ( در صورت تغییر متغییر))

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.