Разработка микропроцессорного устройства цифрового фильтра

                                                                                                           

                                                                                              

      

                                                                                                                  

            1                                                                                                                  2


            2                                                                                                                     3


               


   Вычисление

  А11UM1с сох-                                                                                          Вычисление

 ранением  зна-                                                                                           A32YN2YK2=

 чения                                                                                                          =A32(YN2+YK2)

                                                                                                                       с сохранением             

                                                                                                                        значения

  Вычисление

  B11YN1 с сох-

  ранением зна-                                                                                           Вычисление

  чения                                                                                                            B31YL1


  Вычисление

   В12YN2                                                              

                                                                                                                               

                                                                                                                               

                                                                                                                      ВычислениеYLL           

                                                                                                                      = A31YN1YK1+             

    Вычисление                                                                                           + A32YN2YK2-              

YNN=А11UM1-                                                                                         - B31YL1 с сох-              

- B11YN1-                                                                                                     ранением зна-

- В12YN2 с сох-                                                                                           чения             

ранением зна-

чения



   Вычисление                                                                                                YK1 ® W

 A21UM1 с сох-

ранением зна-

чения



   Вычисление                                                                                                 W ® YK2

   B21YK1



                                                                                                                               

Вычисление                                                                                                    YK ® W    

YK=А21UM1-

- B21YK1 с сох-

ранением зна-

чения

                                                                                                                           W ® YK1  

                                                                                                                               


Вычисление

A31YN1YK1 =

=A31(YN1+YK1)                                                                          Вычисление                

с сохранением                                                                                             A10UM         

значения

 




            3                                                                                                                      4   
           4                                                    6                                               5

 



Вычисление

  YN =A10UM+                                                                                               UM ® W  

   +YNN

   с сохранением

   значения


                                                                                                                           W ® UM1

Вычисление

YL=A30(YN+

+YK)+YLL

  с сохранением

   значения

                                                                                                                          ОСТАНОВ



Передача знач-

чения YL на

порт B




   YN1 ® W





   W ® YN2





  YN ® W




  W ® YN1           





  YL ® W


 



           5


Рисунок 4.2 - Алгоритм программы проектируемого                                                                                                                                                                                             устройства

5 РАЗРАБОТКА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕР


          Прежде чем приступить к написанию программы необходимо учесть спецификацию ПЗУ микроконтроллера. Организация ПЗУ изображена на рисунке 5.1

                   

Рисунок 5.1 – Организация ПЗУ PIC16C71


Из рисунка видно, что начало программы пользователя может быть расположено ниже адреса 0004h. Адрес 0000h – вектор сброса, 0004h – вектор прерывания. По этим адресам перед началом программирования, как правило, прописывают безусловный переход на программу пользователя и безусловный переход на программу обработки прерывания соответственно. Так как в случае нашей системы устройство, осуществляющее запрос прерывания, одно, то по адресу 0004h можно прописывать начало программы обработки прерывания.

          Также при программировании обязательно нужно учесть спецификацию банков ОЗУ. Структура ОЗУ изображена       на

рисунке 5. При обращении к регистрам ОЗУ каждый раз необходимо программно переключаться между банками ОЗУ, в зависимости от того в каком банке находится регистр. Ассемблер, поставляемый производителем, позволяет вначале всем регистрам присвоить вместо адреса определенное имя. Это удобно для составления программы. 


                                

Рисунок 5.2 – Организация ОЗУ PIC16C711

         

Сначала напишем программу обработки прерывания. Занесем программу в таблицу - 1 с адресами ПЗУ и комментариями.

Таблица 5.1

Адрес

Метка

Мнемонический код

Комментарии

Циклы



ORG 0x004

Директива


0004h


MOVWF W_TEMP

Сохранение содержимого W в W_TEMP

1

0005h


MOVF STATUS, 0

Пересылка содержимого STATUS в W

1

0006h


MOVWF STATUS_TEMP

Сохранение W в STATUS _TEMP

1

Продолжение таблицы 5.1

0007h


BCF STATUS, RP0

Выбор банка 0

1

0008h


MOVF ADRES, 0

Пересылка результата АЦП в W

1

0009h


MOVWF UM

Пересылка W в UM


000Ah


MOVF STATUS_TEMP, 0

Пересылка STATUS_TEMP в W

1

000Bh


MOVWF STATUS

Пересылка W в STATUS

1

000Ch


MOVF W_TEMP, 0

Пересылка W_TEMP в W

1

000Dh


RETFIE

Возврат прерывания

2


          Программу, реализующую математическую модель фильтра начнем с адреса 000Eh и разместим в таблицу 5, 2.

Страницы: 1, 2, 3, 4, 5, 6, 7



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать