در این برنامه قصد داریم پتانسیومتر روی برد 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- به نقطه بازگشت برگرد. ( تکرار تبدیل ( در صورت تغییر متغییر))