اطلاعات

پیگیری سفارش

جهت مشاهده اطلاعات سفارش خود کد پیگیری سفارش را وارد نمایید:

نماد اعتماد الکترونیکی

157357
راه اندازی دو تایمر همزمان در کامپایلر BASCOM AVR

در این بخش به منظور راه اندازی دو تایمر به صورت همزمان در میکروپروسسور های AVR توسط کامپایلر بسکام خواهیم پرداخت.میکرو کنترلر مورد استفاده شده در این آموزش از نوع MEGA32A میباشد که دارای سه تایمر که دوتا 8 بیتی و یک تایمر 16 بیتی میباشد. که ما از تایمر های صفر و یک میکروکنترلر استفاده کرده ایم.

روال برنامه به این صورت میباشد که تایمر اول به منظو...

در این بخش به منظور راه اندازی دو تایمر به صورت همزمان در میکروپروسسور های AVR توسط کامپایلر بسکام خواهیم پرداخت.میکرو کنترلر مورد استفاده شده در این آموزش از نوع MEGA32A میباشد که دارای سه تایمر که دوتا 8 بیتی و یک تایمر 16 بیتی میباشد. که ما از تایمر های صفر و یک میکروکنترلر استفاده کرده ایم.

روال برنامه به این صورت میباشد که تایمر اول به منظور تنظیم دقیقه به صورت معکوس و پس از اتمام مقدار آن رله مربوطه فعال میشود. و تایمر دوم به صورت ثانیه شمار معکوس میباشد.

سورس برنامه:

"regfile = "m32def.dat $
crystal = 1000000 $
'*******************
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
Config Timer0 = Timer , Prescale = 1
Config Timer1 = Timer , Prescale = 1
***********************'

Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input

Pinb.0 = 1
Pinb.1 = 1
Pinb.2 = 1
Pinb.3 = 1
Pinb.4 = 1

Config Pinc.0 = Output
Config Pinc.1 = Output

Config Debounce = 2
'***********************
Dim A As Word
Dim S As Byte
Dim M As Byte
M = 0
S = 0

Dim A1 As Word
Dim S1 As Byte
S1 = 0

'******************************************

Cls
Cursor Off

Main1:
Do
Debounce Pinb.0 , 0 , Incrmin
Debounce Pinb.1 , 0 , Decrmin
Debounce Pinb.2 , 0 , Start1
Debounce Pinb.3 , 0 , Incrsec
Debounce Pinb.4 , 0 , Dicersec

Locate 1 , 1
Lcd "Min:" ; M ; " "
Locate 2 , 1
Lcd "Sec:" ; S1 ; " "

Loop
End

'*************************
Incrmin:
Incr M
If M >= 60 Then M = 60
Goto Main1
'**********************
Decrmin:
If M <= 0 Then
M = 0
Else
Decr M
End If
Goto Main1
'*************************
Incrsec:
Incr S1
If S1 >= 60 Then S1 = 60
Goto Main1
'*************************
Dicersec:
If S1 <= 0 Then
S1 = 0
Else
Decr S1
End If
Goto Main1
'*****************************
Start1:
Enable Interrupts
Enable Timer0
Enable Timer1
Enable Ovf0
Enable Ovf1
Start Timer0
Start Timer1
On Ovf0 Tim0_isr
On Ovf1 Tim1_isr
Goto Main1

'*************************************
Tim0_isr:
Incr A
If A = 3850 Then
A = 0
Incr S
End If
If S > 60 Then
S = 0
Decr M
End If
If M = 0 Then
Set Portc.0
Stop Timer0
End If
Return
'****************************************
Tim1_isr:
Incr A1
If A1 = 15 Then
A1 = 0
Decr S1
End If
If S1 = 0 Then
Set Portc.1
Stop Timer1
End If
Return

از یک ال سی دی کارکتری 2*16 به منظور نمایش مقادیر استفاده شده است لازم به ذکر است که مقادیر پایه ها قابل تغییر به صورت دلخواه میباشند.

توجه داشته باشید با این که پایه های ورودی کلید های افزایشی و کاهشی به صورت اینترنال پول آپ شده اند ولی محض اطمینان حتما از مقاومت پول آپ خارجی نیز استفاده کنید.

پیکره بندی سخت افزاری:

بیشتر

راه اندازی دو تایمر همزمان در کامپایلر BASCOM AVR هیچ محصولی در این شاخه وجود ندارد.