Собери свою радиосхему!
BASCOM AVR - Исходники, вопросы и ответы - Страница 2 - Форум
BASCOM AVR - Исходники, вопросы и ответы
Advanced Дата: Среда, 18.07.2012, 12:09 | Сообщение # 11
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Плавное свечение и гашение светодиода: Code
$regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Dim A As Byte Do For A = 0 To 255 Pwm1a = A Waitms 15 For A = 255 To 0 Step -1 Pwm1a = A Waitms 15 Next A Loop End
Advanced Дата: Среда, 18.07.2012, 12:11 | Сообщение # 12
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Поочередное включение светодиодов: Code
Config Portb = Output Do Portd.0 = 1 Waitms 500 Portd.0 = 0 Portd.1 = 1 Waitms 500 Portd.1 = 0 Portd.2 = 1 Waitms 500 Portd.2 = 0 Loop End
Advanced Дата: Среда, 18.07.2012, 12:12 | Сообщение # 13
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
"Горит не горит", нажимаем одну кнопку - светодиод светится, нажимаем другую кнопку - светодиод тушится: Code
$regfile = "m8def.dat" $crystal = 8000000 Config Pinb.0 = Output : Red_0 Alias Portb.0 Config Pinc.2 = Input : Кнопка_старт Alias Pinc.2 Config Pinc.3 = Input : Кнопка_стоп Alias Pinc.3 Do If Кнопка_старт = 0 Then : Gosub Горит : End If If Кнопка_стоп = 0 Then : Gosub Не_горит : End If Loop Горит: Red_0 = 1 Goto Основная Не_горит: Red_0 = 0 Goto End
Advanced Дата: Среда, 18.07.2012, 12:14 | Сообщение # 14
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Полицейская сирена: Code
$regfile = "m8def.dat" $crystal = 1000000 Dim Frq As Word Dim D As Word Config Pind.0 = Output Spkr Alias Pind.0 '---------------------------------- Do For Frq = 50 To 20 Step -1 'Step -1 => Speed D = 51 - Frq Sound Spkr , D , Frq Next Frq For Frq = 20 To 50 Step 1 'Step 1 => Speed D = 51 - Frq Sound Spkr , D , Frq Next Frq Loop '---------------------------------- '( Do Sound Spkr , 420 , 60 Sound Spkr , 620 , 40 Loop Do For Frq = 1 To 80 Set Portd.0 Waitms 3 Reset Portd.0 Waitms 3 Next Frq Waitms 500 Loop ') End
Advanced Дата: Среда, 18.07.2012, 12:14 | Сообщение # 15
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Мигание одного светодиода: Code
$regfile = "m8def.dat" $crystal = 8000000 Config Pinc.0 = Output Led Alias Pinc.0 Do Led = 1 Waitms 20 Led = 0 Waitms 70 Loop End
Advanced Дата: Среда, 18.07.2012, 12:15 | Сообщение # 16
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
При нажатии на кнопку на пульте (RC5) на ЖКИ дисплее (1602) проезжает паравозик: Code
$regfile = "m8def.dat" $crystal = 8000000 $lib "lcd4.lbx" Config Rc5 = Pinc.0 : Enable Interrupts Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 Config Lcd = 16 * 2 : Cursor Off Dim Address As Byte , Command As Byte Deflcdchar 1 , 28 , 4 , 20 , 7 , 16 , 4 , 27 , 4 Deflcdchar 2 , 4 , 24 , 24 , 30 , 17 , 5 , 26 , 4 Cls : Lcd Chr(1) ; Chr(2) Do Getrc5(address , Command) If Address < 255 Then Command = Command And &B01111111 If Command = 22 Then Shiftlcd Right If Command = 21 Then Shiftlcd Left Waitms 100 Locate 2 , 1 Lcd " " Locate 2 , 1 Lcd Command If Command = 12 Then Display Off Powerdown End If End If Loop End
Advanced Дата: Среда, 18.07.2012, 12:20 | Сообщение # 17
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Работы с ИК датчиком TSOP: Code
$regfile = "m8def.dat" 'используем Mega8 $crystal = 16000000 'частота кварцевого резонатора 16mHz 'Генерация частоты 36kHz 'Настраиваем Timer1 Config Timer1 = Counter , Edge = Rising , Prescale = 8 , Compare A = Toggle ' Расчитываем Compare1a ' тактовая частота (kHz) / частота TSOPa (kHz) / 2 = Compare ' 16000 / 36 / 2 = 222 Compare1a = 222 'PortB.1 - выход сигнала 'PinC.0 - считываем состояние TSOPa 'Portd.0 - сигнальный светодиод Config Pinb.1 = Output Config Portd.0 = Output Config Pinc.0 = Input Start Timer1 Do If Pinc.0 = 0 Then Portd.0 = 1 Else Portd.0 = 0 End If Loop End
Advanced Дата: Среда, 18.07.2012, 12:47 | Сообщение # 18
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Подключаем LCD L2F50 от Siemens S65 к 16меге (в bascom надо прдключить библиотеку, библиотеки подключаются командой $lib) Code
$regfile = "m16def.dat" $crystal = 3840000 $lib "LCD-EPSON_L2F50.LBX" Config Graphlcd = Color , Controlport = Portc , Cs = 5 , Rs = 3 , Scl = 6 , Sda = 7 , Reset = 4 Const Blue = &B00000011 ''predefined contants are making programming easier Const Yellow = &B11111100 Const Red = &B11100000 Const Green = &B00011100 Const Black = &B00000000 Const White = &B11111111 Const Brightgreen = &B00111110 Const Darkgreen = &B00010100 Const Darkred = &B10100000 Const Darkblue = &B00000010 Const Brightblue = &B00011111 Const Orange = &B11111000 Const Violett = 199 Const Brown = 192 '128 'Const Blue = 51 '&B00000011 'Const Yellow = 215 '&B11001111 '11111100 'Const Red = 210 '&B11100000 'Const Green = 69 '&B00011100 'Const Black = 0 '&B00000000 'Const White = 255 '&B1111111111111111 'Const Brightgreen = 15 '&B00111110 'Const Darkgreen = 12 '&B00010100 'Const Darkred = 200 '&B10100000 'Const Darkblue = 48 '&B00000010 'Const Brightblue = 55 '&B00011111 'Const Orange = 212 '&B11111000 'Const Violett = 176 'Const Brown = 128 $include "color8x8wRus.font" $include "color16x16wRus.font"
Advanced Дата: Среда, 18.07.2012, 12:52 | Сообщение # 19
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Меню для дисплея 128х64: Code
$regfile = "m64def.dat" 'заголовочный файл для определения типа контроллера $crystal = 1000000 $lib "glcdks108.lib" $sim Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , Ce = 4 , Ce2 = 5 , Cd = 0 , Rd = 1 , Enable = 2 , Reset = 3 Dim A As Integer On Int4 Up 'кнопка "UP" On Int5 Down 'кнопка "DOWN" On Int6 Ok 'кнопка "OK" On Int7 Esc 'кнопка "ESC" Enable Interrupts Enable Int4 Enable Int5 Enable Int6 Enable Int7 A = 10 'присваиваем переменной значение Cls Do 'главный цикл програамы. постоянно проверяем значение переменной А Select Case A 'проверили значение переменной Case 10 : Gosub 10 'свалили на выполнение подпрограммы Case 20 : Gosub 20 Case 30 : Gosub 30 Case 11 : Gosub 11 Case 12 : Gosub 12 Case 13 : Gosub 13 Case 21 : Gosub 21 Case 22 : Gosub 22 Case 23 : Gosub 23 Case 31 : Gosub 31 Case 32 : Gosub 32 Case 33 : Gosub 33 Case 110 : Gosub 110 Case 120 : Gosub 120 Case 130 : Gosub 130 Case 210 : Gosub 210 Case 220 : Gosub 220 Case 230 : Gosub 230 Case 310 : Gosub 310 Case 320 : Gosub 320 Case 330 : Gosub 330 End Select Waitms 500 Loop Ok: 'обработка нажатия кнопки "OK" If A = 11 Or A = 12 Or A = 13 Then A = A * 10 End If If A = 21 Or A = 22 Or A = 23 Then A = A * 10 End If If A = 31 Or A = 32 Or A = 33 Then A = A * 10 End If If A = 10 Or A = 20 Or A = 30 Then Incr A End If Return Esc: 'обработка нажатия кнопки "ESC" If A = 11 Or A = 12 Or A = 13 Then A = 10 End If If A = 21 Or A = 22 Or A = 23 Then A = 20 End If If A = 31 Or A = 32 Or A = 33 Then A = 30 End If If A > 100 Then A = A / 10 End If Return Down: 'обработка нажатия кнопки "DOWN" If A = 10 Or A = 20 Then A = A + 10 End If If A = 11 Or A = 12 Then Incr A End If If A = 21 Or A = 22 Then Incr A End If If A = 31 Or A = 32 Then Incr A End If Return Up: 'обработка нажатия кнопки "UP" If A = 20 Or A = 30 Then A = A - 10 End If If A = 12 Or A = 13 Then Decr A End If If A = 22 Or A = 23 Then Decr A End If If A = 32 Or A = 33 Then Decr A End If Return End 10: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" , 1 Lcdat 4 , 1 , "LABEL 2" Lcdat 5 , 1 , "LABEL 3" Loop Return 20: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" Lcdat 4 , 1 , "LABEL 2" , 1 Lcdat 5 , 1 , "LABEL 3" Loop Return 30: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" Lcdat 4 , 1 , "LABEL 2" Lcdat 5 , 1 , "LABEL 3" , 1 Loop Return $include "font8x8.font"
Advanced Дата: Среда, 18.07.2012, 12:56 | Сообщение # 20
Подполковник
Группа: Модераторы
Сообщений: 138
Репутация:
0
Статус: Offline
Меню для LCD16x2 - кусок кода: Code
Deflcdchar 0 , 16 , 24 , 28 , 30 , 28 , 24 , 16 , 32 'указатель курсора Deflcdchar 5 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 'очистить знакоместо 'НАЗНАЧЕНИЕ КНОПОК КЛАВИАТУРЫ Cv Alias Pina.0 'КНОПКА КУРСОР ВЕРХ Cn Alias Pina.1 'КНОПКА КУРСОР ВНИЗ M Alias Pind.3 'КНОПКА ВВОД 'меню Cls Locate 1 , 1 Lcd "******MENU******" Locate 2 , 2 Lcd "Run" Locate 3 , 2 Lcd "Zadergka cikla" Locate 4 , 2 Lcd "Setup" Goto _menu_pos1 _menu_pos1: Gosub _lcd_clear1 Locate 2 , 1 Lcd Chr(0) Do Debounce M , 0 , _run Debounce Cn , 0 , _menu_pos2 Debounce Cv , 0 , _menu_pos3 Loop _menu_pos2: Gosub _lcd_clear1 Locate 3 , 1 Lcd Chr(0) Do Debounce M , 0 , _zadergka_cikla Debounce Cn , 0 , _menu_pos3 Debounce Cv , 0 , _menu_pos1 Loop _menu_pos3: Gosub _lcd_clear1 Locate 4 , 1 Lcd Chr(0) Do Debounce M , 0 , _setup Debounce Cn , 0 , _menu_pos1 Debounce Cv , 0 , _menu_pos2 Loop 'очистка знакоместа _lcd_clear1: Locate 2 , 1 Lcd Chr(5) Locate 3 , 1 Lcd Chr(5) Locate 4 , 1 Lcd Chr(5) Return
ВООБЩЕ НЕ РАБОТАЕТ. Порты как автор перечислил распаяны, мк ...
Здраствуйте. на рисунку платы две кнопки а на схеме о...