16F84 СТАТУТ Регистрация

B

brpathirana

Guest
Hellow, имам някои съмнения относно статута Microcontroller регистри.Ако говорим за PIC 16F84;

1) Защо се състои от 2 бр статута на регистрите на 2 места?

2) Ако това е необходимо да се промени от банката от 0 до банка 1, възможно ли е да напишете командата следния начин?
BSF 03h, 5
Какво ще се случи, ако напишете командата по следния начин?
BSF 83h, 5

Пл.Помогни ми.

 
1.има само един статут регистър.Причината за това изглежда да бъде на две места е, че повечето програми се наложи да я достъп често независимо от коя банка в момента е избран.Ако считате, че инструкциите, които тестове бита в статута регистър или ще изпълни следващата инструкция или скок над нея, ако банката трябваше да бъде включен, това би било невъзможно да прескочите обучение без кацане в банката смяна код.Вие ще видите някои други регистри са картирани при всички банки.

2.Вие може да получи предупреждение от страна на асемблер за проверка на банката е избрана правилно, но то ще се разглежда като една и съща операция.

Между другото, има далеч по-добър начин на писане на код, който го прави по-разбираеми.Вместо да се използва регистъра и номера малко, ако сте включили 16F84.inc файл заглавието в началото на програмата, можете да използвате регистъра и малко вместо имена.

Например, можете да напишете "BSF 03h, 5" като "BSF СТАТУС, RP0", която е по-лесно да чета.

Ако използвате MPLAB като си на асемблер (безплатно и силно препоръчително), можете да използвате също banksel директива.Всичко, което правя е да напишете banksel последвано от наименованието на регистъра ви ще използвате най-близък и той ще генерира код, за да настроите RP0 и RP1 бита за вас.На 16F84 не е сложно да се определи банковата бита, но ако преминат към по-големи PiCs регистри, където са разпределени в повече банки, става много по-лесно, когато използвате banksel.

Брайън.

 

Welcome to EDABoard.com

Sponsor

Back
Top