شما 10 بیت دارید و می خواید به ترتیب این 10 بیت و روی پورت b بریزید
راه اول اینه که 10 بار بنویسید portb=x
portb=0
portb=1
portb=2
.
.
.
.
portb=9
راه دوم اینه که 10 بیتو داخل یه چدول ذخیره کنید و بعد با دستور lookup بخونیدش و محتویاتشو بیند
برای این استفاده از این دستور باید اول چدول درست کنید: و اعداد و داخلش ذخیره کنیم
هر جدول به یه لیبل احتیاج داره
ali:
data ,&b00000000 ,&b00000010 ,&b00000110 ,&b00000011 ,&b000000011,&b00110000 ,&b11000000 ,&b01110000
یکی داده های جدول که اونو باید خودتون مقدارش رو توی جدول بریزید
یکی هم یه اندیس که خونه های جدول می شماره و مشخص می کنه کدوم داده باید استفاده بشه مثلا پنجمین خونه
اون وقت داده یا مقدار پنجمین خونه رو برمیداره میریزه توی یه متغیر
var = look up
حالا مقدار این متغیر رو میتونی بدی به یه پورت و پین های اون پورت رو 0 یا 1 کنی
توی رقص نور ها ، تابلوهای روان و خیلی جاهای دیگه کار رو خیلی راحت تر میکنه
سلام دادا
برای مثال ما یه شمارنده داریم که از 0 تا 99 میشماره و روی 2 تا سون سگمنت نشون میده .
شما برای برنامش چی کار میکنی؟
ما این کار رو میکنیم (داخل بیسیک)
برای مثال عددی که شمرده الان روی 35 هست و داخل متغییر cunt قرار داده شده.
1متغییر ایجاد میکنیم:
dim m as byte
حالا با استفاده از دستور mid عدد سمت چپ از متغییر cunt رو جدا میکنیم و داخل متغییر m میریزیم:
m=mid(cunt,1,1)
خوب الان m حاوی عدد سمت چپ یا همون دهگان ماست برای نمایشش ما این کار رو میکنیم که اون سون سگمنت رو اگه به صورت ماتریسی بستیم فعال میکنیم و بعد اگه دیتا سگمنت به پورت a وصل باشه این رو مینویسیم:
porta=lockup(m,datatable)
حالا datatable چیه؟
دیتا تیبل کد های هگز اعداد هست دا داخل یه جایی از حافظه فلش ذخیره شده.مثلا این کد هاست
datatable:
&h00,&h,01,&h,02,....
حالا این کد لوک پ که نوشتیم میاد و کدی که متناظر با عدد داخل متغییر m هست رو میزاره تو پورت a.
میتونی برای عدد دوم هم این کد رو بنویسی:
m=mid(cunt,2,1)
porta=lockup(m,datatable)
این کد هم عدد دوم (از چپ) رو بر میداره و همون کار قبل رو انجام میده.
--------------------------------
حالا فکرش رو بکن اگه میخواستی با if و غیره این کار رو بکنی چقدر برنامت بزرگ میشد؟
اگه میخوای تا برات lockup داخل Cو Code vision هم توضیح بدم :smile:
برای سینوس و کسینوس هم همینکار عموما انجام میشه. 90 بایت سینوس رو ذخیره میکنن و هر کدوم رو خواستن بر میدارن.
برای تبدیلاتی که معادله ریاضی نداره و تعدادشون بالاست. مثلا میخواید کد 0 تا 16 رو اسکی کنید.
من چون بیسیک کار نیستم مثال نمیزنم
بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست
a=lookup (index,lable )
a متغیری که میخواهیم دیتا رو روش بریزیم
lookup که دستوره و همیشه ثابته
index شماره خانه جدول اطلاعات یا همون جدول lookup
lable هم نام جدول lookup
مثال:
dim test as byte
test=lookup(5,amir)
lcd test
end
amir:
data, 12 , 10 , 9 , 4 , 3 , 8 , 9 , 5 , 6 , 9 ,0
که در اینجا عدد 8 (چون در خانه ششم با احتساب خانه صفر جدول قرار داره {یعنی خانه اول شماره صفر است}) برمیگرده و روی LCD نمایش داده میشه
پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری
دیدگاه