M
Micro Lover
Guest
Я AT89C51 м, используя для цифровых часов, с внешними Пульс.
Я хочу установить port0-1-2 для параллельных данных и port3 для серийных данных
проблема заключается в том, чтобы определить, как порт ввода или вывода
Часы Master
------------------
port0 для ввода; Полный 8 бит порта
port1 для вывода; Полный 8 бит порта
port2 для вывода; Полный 8 бит порта
port3 на выход (для передачи данных серийных)
Невольничий Часы
------------------
port0 для вывода; Полный 8 бит порта
port1 для вывода; Полный 8 бит порта
port2 для вывода; Полный 8 бит порта
port3 для ввода (получение данных)
Основная проблема заключается в том, чтобы определить какой-либо порт на ввод или вывод
--------------------------------
Я м отправке моих исходных кодов, пожалуйста, сообщите мне любые ошибки
----------------------------- Источник кодекса ------------------- ---------------------
Org 00h
; Установка таймера 1
MOV IE, # 0; Запретить все прерывания
MOV TMOD, # 020h; Таймер 1: Режим 2 (8-битный перезагрузки)
MOV TH1, # 230d; Перезагрузить значение 1201, SMOD = 0
MOV TL1, # 230d; Сделайте первый тайм-аут исправить
ANL PCON, # 07fh; Чтобы SMOD = 0
; Настройка последовательных портов
MOV SCON, # 50H; Таймер 1: Режим 1 (вариант бод) и набор позволит получать
SETB TR1; Пуск таймера 1
мов R1, # 6D
мов r2, # 91d
мов r3, # 63d
мов R4, # 63d
MainLoop:
setb p0.7
мов R7, # 90d
Подлупы лупы:
мов R6, # 90d
InnerSpot:
JMP DisplayData
InnerSpot1:
djnz R6, InnerSpot
djnz R7, подлупы лупы
CLR p0.7
мов R7, # 90d
SubLoop1:
мов R6, # 90d
InnerSpot12:
JMP DisplayData
InnerSpot11:
djnz R6, InnerSpot12
djnz R7, SubLoop1JMP MainLoop
DisplayData:
мов C, p2.7
ORL C, p0.7мов B, R1
мов p2, б
JNC Skip1
мов B, # 254d
мов P1, б
Skip1:
мов B, # 255d
мов P1, б
мов б, r2
мов p2, б
JNC Skip2
мов B, # 253d
мов P1, б
Skip2:
мов B, # 255d
мов P1, б
мов б, r3
мов p2, б
JNC Skip3
мов B, # 251d
мов P1, б
Skip3:
мов B, # 255d
мов P1, б
мов б, R4
мов p2, б
JNC Skip4
мов B, # 247d
мов P1, б
Skip4:
мов B, # 255d
мов P1, б
jnb РИ, CheckReturnPoint
CLR РИ
мов а, sbuf
cjne A, # 246d, CountCountinus
мов r0, # 0D
CheckReturnPoint:
мов C, p0.7
JC InnerSpot1
JNC InnerSpot11
CountCountinus:
Inc r0
DigOne:
cjne r0, # 1D, DigTwo
мов R1,
AJMP DisplayData
DigTwo:
cjne r0, # 2D, DigThree
мов r2, а
JMP DisplayData
DigThree:
cjne r0, # 3D, DigFour
мов r3, а
JMP DisplayData
DigFour:
cjne r0, # 4D, CheckReturnPoint
мов r0, # 0D
мов R4,
AJMP DisplayData
Конец
Я хочу установить port0-1-2 для параллельных данных и port3 для серийных данных
проблема заключается в том, чтобы определить, как порт ввода или вывода
Часы Master
------------------
port0 для ввода; Полный 8 бит порта
port1 для вывода; Полный 8 бит порта
port2 для вывода; Полный 8 бит порта
port3 на выход (для передачи данных серийных)
Невольничий Часы
------------------
port0 для вывода; Полный 8 бит порта
port1 для вывода; Полный 8 бит порта
port2 для вывода; Полный 8 бит порта
port3 для ввода (получение данных)
Основная проблема заключается в том, чтобы определить какой-либо порт на ввод или вывод
--------------------------------
Я м отправке моих исходных кодов, пожалуйста, сообщите мне любые ошибки
----------------------------- Источник кодекса ------------------- ---------------------
Org 00h
; Установка таймера 1
MOV IE, # 0; Запретить все прерывания
MOV TMOD, # 020h; Таймер 1: Режим 2 (8-битный перезагрузки)
MOV TH1, # 230d; Перезагрузить значение 1201, SMOD = 0
MOV TL1, # 230d; Сделайте первый тайм-аут исправить
ANL PCON, # 07fh; Чтобы SMOD = 0
; Настройка последовательных портов
MOV SCON, # 50H; Таймер 1: Режим 1 (вариант бод) и набор позволит получать
SETB TR1; Пуск таймера 1
мов R1, # 6D
мов r2, # 91d
мов r3, # 63d
мов R4, # 63d
MainLoop:
setb p0.7
мов R7, # 90d
Подлупы лупы:
мов R6, # 90d
InnerSpot:
JMP DisplayData
InnerSpot1:
djnz R6, InnerSpot
djnz R7, подлупы лупы
CLR p0.7
мов R7, # 90d
SubLoop1:
мов R6, # 90d
InnerSpot12:
JMP DisplayData
InnerSpot11:
djnz R6, InnerSpot12
djnz R7, SubLoop1JMP MainLoop
DisplayData:
мов C, p2.7
ORL C, p0.7мов B, R1
мов p2, б
JNC Skip1
мов B, # 254d
мов P1, б
Skip1:
мов B, # 255d
мов P1, б
мов б, r2
мов p2, б
JNC Skip2
мов B, # 253d
мов P1, б
Skip2:
мов B, # 255d
мов P1, б
мов б, r3
мов p2, б
JNC Skip3
мов B, # 251d
мов P1, б
Skip3:
мов B, # 255d
мов P1, б
мов б, R4
мов p2, б
JNC Skip4
мов B, # 247d
мов P1, б
Skip4:
мов B, # 255d
мов P1, б
jnb РИ, CheckReturnPoint
CLR РИ
мов а, sbuf
cjne A, # 246d, CountCountinus
мов r0, # 0D
CheckReturnPoint:
мов C, p0.7
JC InnerSpot1
JNC InnerSpot11
CountCountinus:
Inc r0
DigOne:
cjne r0, # 1D, DigTwo
мов R1,
AJMP DisplayData
DigTwo:
cjne r0, # 2D, DigThree
мов r2, а
JMP DisplayData
DigThree:
cjne r0, # 3D, DigFour
мов r3, а
JMP DisplayData
DigFour:
cjne r0, # 4D, CheckReturnPoint
мов r0, # 0D
мов R4,
AJMP DisplayData
Конец