'-------------------------- Описание проекта --------------------------------- 'Проект : My_Project 'Автор : 'Версия : 1.0.0 от 30.09.2012 '-------------------------- Опции компилятора -------------------------------- Declare SHOW_SYSTEM_VARIABLES = OFF ' При симуляции в Proteus не показывать внутренние переменные Declare FSR_CONTEXT_SAVE = OFF ' Не заботиться о сохранении содержимого регистра FSR Declare Reminders = OFF ' Выключить напоминания компилятора Declare Warnings = OFF ' Выключить предупреждения компилятора Declare Optimiser_Level 0 ' Выключить оптимизацию программы ;-------------------------- Общие настройки------------------------------------ Device = 16F628A ' Используемый микроконтроллер Xtal = 4 ' Частота осциллятора 4 МГц '-------------------------- Конфигурация программирования -------------------- Config WDT_OFF, LVP_OFF, MCLRE_OFF, INTOSC_OSC_NOCLKOUT '-------------------------- Настройки портов --------------------------------- PortB_Pullups = OFF ' Выключить подтягивающие резисторы на PORTB Declare All_Digital = On ' Установить все порты цифровыми входами/выходами '-------------------------- Регистры специального назначения------------------ '-------------------------- Определение переменных --------------------------- Dim w As Byte Dim X As Byte Dim Hag As Word Dim Hag_in As Word '-------------------------- Определение символов ----------------------------- Symbol BIT5 = PORTB.5 Symbol BIT6 = PORTB.6 Symbol BIT7 = PORTB.7 Symbol BIT4 = PORTB.4 '-------------------------- Начало ------------------------------------------- TRISB=%00000000 PORTB=%00000000 '-------------------------- Главная программа ------------------------- Clear BIT4=0:BIT5=0:BIT6=0:BIT7=0 DelayMS 1000 MainProgram: Inc w ' ======== DelayMS 500 ' If w=1 Then Hag_in=48: GoTo HAG_POL ' DelayMS 500 ' If w=2 Then Hag_in=12: GoTo HAG_POL ' DelayMS 500 ' для пробы задаем последовательность шагов If w=3 Then Hag_in=12: GoTo HAG_OTR ' и направление вращения DelayMS 500 ' If w=4 Then Hag_in=48: GoTo HAG_OTR ' DelayMS 500 ' If w=5 Then w=0: GoTo End_Hag ' ========= ' паузы выставлены для нагладности HAG_POL: 'вращение например влево DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.1=0 Then BIT4=1:BIT5=0:BIT6=0:BIT7=0: X.1=1: X.2=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.2=0 Then BIT4=0:BIT5=1:BIT6=0:BIT7=0: X.2=1: X.3=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.3=0 Then BIT4=0:BIT5=0:BIT6=1:BIT7=0: X.3=1: X.4=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.4=0 Then BIT4=0:BIT5=0:BIT6=0:BIT7=1: X.4=1: X.1=0: Inc Hag GoTo HAG_POL HAG_OTR: 'вращение вправо DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.4=0 Then BIT4=0:BIT5=0:BIT6=0:BIT7=1: X.4=1: X.3=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.3=0 Then BIT4=0:BIT5=0:BIT6=1:BIT7=0: X.3=1: X.2=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.2=0 Then BIT4=0:BIT5=1:BIT6=0:BIT7=0: X.2=1: X.1=0: Inc Hag '++++++++++++++++++++++++++++++++++++ DelayMS 100 If Hag=Hag_in Then GoTo End_Hag If X.1=0 Then BIT4=1:BIT5=0:BIT6=0:BIT7=0: X.1=1: X.4=0: Inc Hag GoTo HAG_OTR End_Hag: Hag=0 BIT4=0:BIT5=0:BIT6=0:BIT7=0 GoTo MainProgram ' Возврат на начало основной программы