'========================= Основные установки ==================================

$regfile = "m32def.dat"                                     'указать нужный
$crystal = 8000000                                          'указать нужный
$hwstack = 16
$swstack = 64
$framesize = 32

'*******************************************************************************
'********************* Установки Дисплея и Инициализация ***********************

Nokia_spi_data Alias Portd.5 : Config Portd.5 = Output      'MOSI       - можно задать любую ножку
Nokia_spi_clock Alias Portd.4 : Config Portd.4 = Output     'SCK        - можно задать любую ножку
Nokia_cs Alias Portd.3 : Config Portd.3 = Output            'CS         - можно задать любую ножку
Display_reset Alias Portd.2 : Config Portd.2 = Output       'LCD_RESET  - можно задать любую ножку
Display_reset = 1
Nokia_cs = 1

Declare Sub Nokia_init()
Declare Sub Nokia_clear()
Declare Sub Nokia_text(byval Nokia_x As Byte , Byval Nokia_y As Byte , Byval Nokia_text As String , Byval Nokia_inversion As Byte)
Declare Sub Nokia_picture(bylabel Nokia_label As Word)

Dim W As Iram Word At 8 Overlay
Dim Nokia_data_9 As Integer

Call Nokia_init()                                           ' Инициализируем дисплей

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

'============================== Пример Программы ===============================
Dim Number As Byte
Dim Temp_data As Byte
Dim Text As String * 16

Do

'-------------------------- Картинка №3 ----------------------------------------
Call Nokia_picture(bunny)
Wait 4

'-------------------------- Картинка №2 ----------------------------------------
Call Nokia_picture(scull)
Wait 4

'-------------------------- Выводим текст --------------------------------------
Call Nokia_clear()                                          'очищаем дисплей
Call Nokia_text(3 , 1 , "*** МЕНЮ ***" , 0)                 'выводим текст:
Call Nokia_text(1 , 2 , "----------------" , 0)             'первая цифра - номер столбца 1...16
Call Nokia_text(1 , 3 , "Громкость.....12" , 0)             'вторая цифра - номер строки 1...9 (9 строка отображается только наполовину)
Call Nokia_text(1 , 4 , "Насыщенность..75" , 0)             'последняя цифра: 0-обычный текст, 1-инверсия
Call Nokia_text(1 , 5 , "Яркость.......60" , 0)
Call Nokia_text(1 , 6 , "Контрастность.16" , 0)
Wait 1
Call Nokia_text(15 , 3 , "12" , 1)
Waitms 500
Call Nokia_text(15 , 3 , "16" , 0)
Call Nokia_text(15 , 4 , "75" , 1)
Waitms 500
Call Nokia_text(15 , 4 , "75" , 0)
Call Nokia_text(15 , 5 , "60" , 1)
Waitms 500
Call Nokia_text(15 , 5 , "60" , 0)
Call Nokia_text(15 , 6 , "16" , 1)
Waitms 300
'---------------------------------------------- регулируем контрастность в плюс
For Number = 17 To 31
   Text = Str(number)
   Call Nokia_text(15 , 6 , Text , 1)
   Temp_data = Number + 128                                 'контраст должен быть от 128(блекло) до 159(темно) - изначально 144
   Nokia_data_9 = Temp_data                                 'отсылаем контрастность в дисплей
   Gosub Nokia_out_cmd
   Waitms 300
Next Number
'---------------------------------------------- регулируем контрастность в минус
For Number = 30 To 0 Step -1
   Text = Str(number)
   If Number < 10 Then Text = " " + Text                    'для однозначных цифр добавляем пробел
   Call Nokia_text(15 , 6 , Text , 1)
   Temp_data = Number + 128
   Nokia_data_9 = Temp_data
   Gosub Nokia_out_cmd
   Waitms 300
Next Number
'---------------------------------------------- возвращаем контрастность в норму
For Number = 1 To 16
   Text = Str(number)
   If Number < 10 Then Text = " " + Text
   Call Nokia_text(15 , 6 , Text , 1)
   Temp_data = Number + 128
   Nokia_data_9 = Temp_data
   Gosub Nokia_out_cmd
   Waitms 300
Next Number
Waitms 500

'--------------------------- Картинка №1 с текстом -----------------------------
Call Nokia_picture(phone)
Call Nokia_text(11 , 6 , "08:15" , 1)

For Number = 1 To 6                                         'мигаем двоеточием
   Waitms 500
   Call Nokia_text(13 , 6 , " " , 1)
   Waitms 500
   Call Nokia_text(13 , 6 , ":" , 1)
Next Number

Waitms 500
Call Nokia_text(1 , 4 , "+7-999-108-34-16 " , 0)
Call Nokia_text(13 , 6 , " " , 1)
Waitms 500
Call Nokia_text(13 , 6 , ":" , 1)
Waitms 500
Call Nokia_text(13 , 6 , " 16" , 1)
Waitms 500
Call Nokia_text(13 , 6 , ":" , 1)
Waitms 500
Call Nokia_text(13 , 6 , " " , 1)
Waitms 500
Call Nokia_text(13 , 6 , ":" , 1)

'-------------------------------------------------------------------------------
Loop
End

'*******************************************************************************
$include "Nokia-1100 Library.inc"                           'сама библиотека
$inc Phone , 293 , "Phone.bgf"                              'картинка №1
$inc Scull , 657 , "Scull.bgf"                              'картинка №2
$inc Bunny , 490 , "Bunny.bgf"                              'картинка №3
'*******************************************************************************