ch. 2- assembly lang - pic the pic microcontroller and embedded systems: using assembly and c for...
TRANSCRIPT
![Page 1: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/1.jpg)
Ch. 2- Assembly Lang - PIC
The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey
![Page 2: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/2.jpg)
• http://microdigitaled.com/PIC/Software/PIC_tools.htm– Install MPLAB– Install C18
– Read tutorials from - http://microdigitaled.com/PIC/PIC_books.htm
![Page 3: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/3.jpg)
Finish!!!?
Now work at home n learn –
based on the concepts of Intel 8086’s Assembly Language
=======
![Page 4: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/4.jpg)
Working Register
![Page 5: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/5.jpg)
Only one!
• WREG – Working REGister is same as Accumulator in other microprocessors
• WREG us used for all arithmetic and logic instructions
![Page 6: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/6.jpg)
MOVLW instruction
• MOVLW move 8-bit data into the WREG reg.MOVLW k Move literal value of k into WREG
• L Literally – a number must be used• Similar to immediate value of 8086’s assembly
languageMOVLW 25H Move value 25H into WREG
![Page 7: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/7.jpg)
MOVLW
• ‘L’ stands for literal • Immediate value concept of other
microprocessor
• ‘W’ for WREG• MOVLW move a literal value to WREG reg.
![Page 8: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/8.jpg)
ADDLW
![Page 9: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/9.jpg)
ADDLW
• Add ‘k’ to register WREG• Put the result back in the WREG
![Page 10: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/10.jpg)
WREG & ALU using literal value
![Page 11: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/11.jpg)
• MOVLW 5h• MOVLW 05h• MOVLW 00000101 ;in binary
• Moving a value larger than 255 (FF in hex) into the WREG register will truncate the upper byte and cause a warning in the .err file
![Page 12: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/12.jpg)
2.2: File Register
• File register • == data RAM • == data memory• == (general-purpose-reg. + special-function-reg.)
• Data memory space is different from program (code) memory
![Page 13: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/13.jpg)
Data RAM == special-function-reg + general-purpose-reg
• Special-fn.reg. [SFR] for specific functions, e.g.,– ALU status– Timers– Serial communications – I/O ports– ADC– Etc.
![Page 14: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/14.jpg)
SFR…
• Function of each SFR is fixed by the CPU designer at the time of the design – as it is used for control of the microcontroller or peripheral
• 8-bit registers• No. of locations in the file reg.? 7 to over a hundredmore timers in a PIC, the more SFR reg. it has
![Page 15: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/15.jpg)
Data RAM == special-function-reg + general-purpose-reg
• GPR / RAM• Used for data storage and scratch pad• 8 bits wide• The space that is not allocated for SFRs –
typically is sued for GPR
![Page 16: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/16.jpg)
File reg. size [in bytes]
PIC File register = SFR + GPR• PIC12F508 32 bytes 7 25• PIC16… 80 12 68• PIC18F452 1792 256 1536
![Page 17: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/17.jpg)
GPR RAM vs. EEPROM
• GPR – internal data storage, used by the CPU
• EEPROM – as an add-on memory, can add externally to the chip
![Page 18: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/18.jpg)
File register & access bank in PIC18
• PIC18 family can have a max of 4096 (4k = 212) bytes
• So, address range of the file reg. = 000h ~ FFFh• File reg. is divided into 256-byte banks
• So, 4069/256 = 16 banks• At least one bank for the file reg. – called
access bank
![Page 19: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/19.jpg)
• 256-byte access bank two 128 bytes sections = GPR & SFR
• The 128 bytes – from locations 00H to 7FH – as General-purpose reg. – used for read/write storage – Scratch pad– For storing data & parameters by PIC18 programmers &
C compilers • The other 128 bytes – from locations F80H to FFFH
– as special-function reg.
![Page 20: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/20.jpg)
So far for PIC
• MOVLW• ADDLW
– Literal – WREG
![Page 21: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/21.jpg)
2.3: Using instructions with the default access bank
• MOVWF it tells the CPU to move (in reality, copy) the source reg. of WREG – to a destination in the file reg. (F)
• So, the location (new) in file reg. will have the same value as reg. WREG.
• F – file reg. – stands for a location in the file reg.• W – WREG
![Page 22: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/22.jpg)
Move to SFR
• MOVWF PORTA; move the contents of WREG into SFR reg. called PORTA
MOVLW 55H ;WREG = 55H
MOVWF PORTB ;copy WREG to Port-B
MOVWF PORTC ;copy WREG to Port-C..
PortB, PortC, and PortD are part of the special function reg.They can be connected to the I/O pins of the PIC mic.
![Page 23: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/23.jpg)
Move to GPR
• Move [copy] contents of WREG GPR/RAM
MOVLW 99H ;WREG=99HMOVWF 0H;move [copy] WREG contents to location 0h…- Cant move literal [immediate] values directly into the general-
purpose RAM locations in the PIC18.- They must be moved there via WREG.
Q: Can literal values directly into SFR?
![Page 24: Ch. 2- Assembly Lang - PIC The PIC Microcontroller and Embedded Systems: Using Assembly and C for PIC18 By Muhammad Ali Mazidi, Rolin McKinlay, Danny Causey](https://reader033.vdocuments.us/reader033/viewer/2022061605/56649cf75503460f949c744e/html5/thumbnails/24.jpg)
ADDWF• ADDLW 15H ; =15h + [WREG]
• ADDWF fileReg, D ; =[WREG] + [fileReg]
• Sources: • Content of WREG• fileReg: Content of file register (special or general)
• Destination: D indicates destination bit• If D = 0, destination of the result is WREG, or• If D = 1, destination is file register