(8051) Проверьте, установлен ли один бит - PullRequest
2 голосов
/ 09 июня 2010

Я пишу программу для микроконтроллера 8051.В первой части программы я делаю некоторые вычисления и, основываясь на результате, я либо загораю светодиод, либо нет (используя CLR P1.7, где P1.7 - порт, к которому светодиод подключен в микроконтроллере).

В следующей части программы я хочу получить бит, возможно, сохранить его где-нибудь и использовать его в инструкции if-jump, такой как JB.Как я могу это сделать?

Кроме того, я видел инструкцию MOV C, P1.7 в примере кода.Что за C здесь?

Ответы [ 2 ]

4 голосов
/ 09 июня 2010

Здесь C - это флаг переноса 8051, называемый так потому, что его можно использовать для удержания «переноса» при выполнении операций сложения с несколькими байтами.

Он также может использоваться как одиночныйбитовый регистр - так (как здесь), где вы хотите переместить биты, вы можете загрузить его со значением порта (например, P1.7), а затем сохранить его где-нибудь еще, например:

MOV C, P1.7
MOV <bit-address>, C

Тогдапозже вы можете перейти на него, используя:

JB <bit-address>, <label>
1 голос
/ 02 июля 2010

Некоторые из регистров специальных функций также могут быть адресуемы по битам.Я считаю, что все они заканчиваются на 0 или 8. У меня нет ссылки передо мной, но вы можете сделать что-то вроде setb r0.1.Таким образом, если вам нужен перенос для чего-то, вам не нужно беспокоиться о том, чтобы вытолкнуть его и использовать место в стеке.

...