سلام![]()
برنامه توابع تمرين 5-2 به دو زبان C و Assembly:
/*******************************************************
E5-2, Functions
*******************************************************/
#include
#include
#include
void func1(char PA,char PB,char PC);
unsigned int func2(unsigned char N1,unsigned char N2,unsigned char N3,unsigned char N4,unsigned char N5);
void main()
{
while(1)
{
func1(PINA,PINB,PINC);
func2(127,5,6,87,1);
}
}
void func1(char PA,char PB,char PC)
{
unsigned int res;
res=(PINA+PINB)*PINC; // MULx doesn't change V flag
if (SREG.3==1)
{ printf("Overflow occured!");
pokew(0,0);
}
else
pokew(0,res); // puts R0<=LOW(RES) R1<=HIGH(RES)
}
unsigned int func2(unsigned char N1,unsigned char N2,unsigned char N3,unsigned char N4,unsigned char N5)
{
unsigned int N6;
N6=(((N1+N2)&N3)|N4)*N5; // The variables are unsigned
N6=(N1+N2);
if(SREG.0==1)
{ printf("The resault of N1+N2 couldn't be store in a byte!");
N6=0;
}
else
N6=((N6&N3)|N4)*N5;
return(N6);
}
;*************************************
; TAMRIN 5-2
;*************************************
.INCLUDE "M32DEF.inc"
.CSEG
RESET: .ORG 0
JMP 60
FUNC1: .ORG 60
IN R2,PINA
IN R3,PINB
IN R4,PINC
ADD R2,R3
BRVS OVRF ; IF OVERFLOW OCCURED => ERROR MESSAGE
MUL R2,R4 ; R1:R0=R2*R4
RET
FUNC2: .DSEG
N1: .BYTE 1
N2: .BYTE 1
N3: .BYTE 1
N4: .BYTE 1
N5: .BYTE 1
N6: .BYTE 2
.CSEG
.ORG 70
LDS R1,N1
LDS R2,N2
ADD R1,R2
BRVS OVRF ; IF OVERFLOW OCCURED => ERROR MESSAGE
LDS R2,N3
AND R1,R2
LDS R2,N4
OR R1,R2
LDS R2,N5
MUL R1,R2
STS N6,R0
STS N6+1,R1
RET
OVRF: CALL ERROR
RET
ERROR: .CSEG
.ORG 200
;
;
;
RET
.EXIT
فايل BCW.EXE محيط ويراستاري آن تحت ويندوز است و به خاطر كپي بودن برنامه اجرا نميشود.
فايل BC.EXE محيط ويراستاري تحت داس است.
- ابتدا پوشه BORLANDC را از CD2 در درايو :C كپي كنيد.( C:\BORLANDC )
- براي اجراي برنامه فايل BC.EXE را از پوشه C:\BORLANDC\BIN اجرا كنيد. اگر برنامه اجرا نشد ميانبر زير را دانلود و در Desktop خود كپي كنيد. با اجراي اين ميانبر برنامه به صورت يك پنجره كوچك باز ميشود. براي نمايش تمام صفحه آن كليدهاي Alt+Enter را به صورت همزمان فشار دهيد(كليد Alt را گرفته سپس كليد Enter را برنيد).
روز سه شنبه برنامه اصلي Borland C++ v3.1 رو ميارم. با نصب برنامه اصلي به راحتي ميتوانيد در محيط ويندوز برنامه ها را كامپايل كرده و اسير محيط داس نشيد.
سه شنبه از ساعت 8:00 تا 10:00 كلاس 304 و از ساعت 13:00 تا 15:30 هم كلاس 202 هستم.
الوعده وفا،
- راهنماي نصب CodeVisionAVR: دانلود
- آموزش مقدماتي برنامه نويسي در CodeVisionAVR: دانلود
اين هم جواب تمرين ها:
با استفاده از كتابخانه stdio.h در Cavr مي توان از دستورات printf و scanf به عنوان دستورات ورودي-خروجي از پورت سريال استفاده كرده و به كمك يك ترمينال با ميكرو ارتباط برقرار كرد.
۱- سری فاکتوریل:
#include"m32def.h"
#include"math.h"
#include"stdio.h"
exercise1()
{
printf("Sum=%g",exp(1)-1);
}
۲- توان رساندن عدد اعشاری:
#include"m32def.h"
#inclde"stdio.h"
#include"math.h"
exercise2()
{
float x;
int y;
scanf("%d%f"&y,&x);
printf("X with the power of Y is %g",pow(x,y));
}
اگه سوال داشتید تو قسمت نظرات بگید.
برای اینکه به راحتی بتونید برنامه هاتون رو در محیط ویندوز ترجمه کنید و درگیر NC و محيط خط فرمان نشويد مراحل زير را به ترتيب انجام دهيد.
1- فعال كردن حالت نمايش پسوند در ويندوز:
- براي اينكه پسوند فايل ها در ويندوز نمايش داده شوند، در هر پنجره اي از ويندوز اكسپلورر كه هستيد از منوي Tools گزينه Folder Options را انتخاب كنيد. (اگر سیستم شما ویروسی شده باشد این گزینه دیده نمی شود)
- سربرگ View را انتخاب كنيد.
- در قسمت Advanced settings چك ليست گزينه Hide extensions for known file types را برداريد.
- روي كليد OK كليك كنيد.
- حال پسوند فايل هايتان قابل مشاهده اند.
2- فايل Assembler.zip را دانلود كرده و آن را از حالت zip خارج كنيد.
3- آماده سازي محيط كار:
- يك فولدر دلخواه (اسم آن فارسي نباشد) ساخته و دو فايل avrasm32.exe و run.bat را كه از فايل zip استخراج كرده ايد را در آن كپي نماييد.
4- نوشتن برنامه:
- در همان فولدر يك فايل متني ايجاد كرده و نام آن را به PRG.ASM تغيير دهيد.
* براي ايجاد سريع فايل متني مي توانيد در قسمت خالي فولدر خود كليك راست كرده و از قسمت New گزينه Text file را انتخاب كنيد.
- فايل PRG.ASM را توسط برنامه Notepad باز كرده برنامه خود را به زبان اسمبلي در داخل آن بنويسيد.
- پس از پايان كار فايل خود را ذخيره (Save) كرده و آن را ببنديد.
5- ترجمه برنامه:
- فايل RUN.BAT را براي چك كردن برنامه و ترجمه آن اجرا كنيد.
- اگر برنامه داراي اشكال نباشد دو فايل به نامهاي و PRG.HEX و PRG.TXT ساخته شده و اسمبل برنامه با پيغام Assembly complete with no errors خاتمه مييابد. PRG.TXT همان فايل ليست است.
- اگر برنامه داراي اشكال باشد پيغام خطاي مناسب صادر مي شود.
- پس از پايان كار مي توانيد اسم فايل خود را تغيير داده و مراجل فوق را براي برنامه جديد تكرار كنيد.

