На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> PIC16F84 программа на ассемблере , Пожалуйста,помогите мне написать программу
    Пожалуйста,помогите написать программу на ассемблере.
    На основе микроконтроллера разработать устройство, выполняющее следующие функции:
    Отображение имени (на основе LCD-матрицы), активизируемое при нажатии кнопки SB1. И
    завершающиеся при нажатии кнопки SB2.
      XYF, покажите что уже сделано и что конкретно не получается.
      Если ничего, и вы просто хотите, чтобы за вас её кто-то сделал за "спасибо", то это не вариант.
      Сперва потрудитесь сделать что-то самостоятельно...
        ExpandedWrap disabled
          p=16f84
          #include<p16f84.inc>
          __CONFIG _CP_OFF &_WDT_OFF&_PWRTE_ON&_XT_OSC
           
          ;************************ область переменных **********************************
          ; #define INTCON, T0IF ;признак прерыывания по переполнению таймера
          symbol EQU 0x0F ; символ
          st_tmp EQU 0x10
          w_tmp EQU 0x11
          priz EQU 0x12
          #define RS PORTA,0 ; КОМАНДА \ ДАННЫЕ
          #define RW PORTA,1 ; ЧТЕНИЕ \ ЗАПИСЬ
          #define E PORTA,2 ; ТАКТОВЫЙ ИМПУЛЬС
          ORG 0x000
          goto main
          ;******** прерывание *******************************
          ORG 0x004
          movwf w_tmp
          movf STATUS,w
          movwf st_tmp
           
          bsf priz,1
           
           
           
           
           
          exit
          movwf STATUS
          swapf w_tmp,f
          swapf w_tmp,W
          bcf INTCON,T0IF
          bcf INTCON,INTF
          retfie
          ;*******************************************************
           
          main
           
           
          clrf PORTA
          clrf PORTB
          bsf STATUS,RP0 ; выбор банка1
          movlw b'11111000'
          movwf PORTA ; RA1-RA3=вывод
          movlw b'00000000'
          movwf PORTB ; все на вывод
          movlw b'01010101'
          movwf OPTION_REG ; прерывание по наростанию уровня
          movlw b'10100000'
          movwf INTCON; прерывания запрещены
          bcf STATUS,RP0
          clrf symbol
          clrf priz
          clrf TMR0
           
          clrf PORTA
          clrf PORTB
          btfss priz,1 ; задержка
          goto $-1
           
           
           
          bcf RS
          bcf RW
          bsf E
          movlw 0x30
          movwf PORTB
          bcf E
          clrf PORTB
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          bsf E
          movlw 0x30
          movwf PORTB
          bcf E
          clrf PORTB
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
           
          bsf E
          movlw 0x30
          movwf PORTB
          bcf E
          nop
          clrf PORTB
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
           
           
          bsf E
          movlw 0x38
          movwf PORTB
          bcf E
          nop
          clrf PORTB
           
          nop
          nop
           
          bsf E
          movlw 0x08 ;
          movwf PORTB
          BCF E
          clrf PORTB
          nop
          nop
           
           
          bsf E
          movlw 0x01 ;очистка дисплея
          movwf PORTB
          BCF E
          clrf PORTB
          nop
          nop
          nop
           
           
          bsf E
          movlw 0x01 ;entry mode
          movwf PORTB
          BCF E
          clrf PORTB
          nop
          nop
          nop
           
          bsf E
          movlw 0x03 ;entry mode
          movwf PORTB
          BCF E
          clrf PORTB
          nop
           
           
          nop
          nop
          A bcf RW
          bsf RS
          bsf E
          movlw 0x37 ;7 показать
          movwf PORTB
          BCF E
          clrf PORTB
          nop
          nop
          bcf RW
          bsf RS
          bsf E
          movlw 0x37 ;7 показать
          movwf PORTB
          BCF E
          clrf PORTB
          nop
           
           
          goto A
           
           
          end
        Сообщение отредактировано: Jin X -
          XYF, что в этом коде не так? Что не работает?

          M

          Используйте теги [CODE][/CODE] при выделении исходников!
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0256 ]   [ 16 queries used ]   [ Generated: 28.03.24, 23:01 GMT ]