Question

In: Electrical Engineering

How many bits are required to address the program memory of PIC16F887? What is PCLATH? For...

How many bits are required to address the program memory of PIC16F887? What is PCLATH? For PC absolute addressing, describe how to write assembly program to jump to code located in a different program memory page.

Solutions

Expert Solution

8000bits(8Kb) are required to address the program memory of PIC16F887. The fig below represents program mapping of PIC16F887.

PCLATH Registers: The size of the program memory of the PIC16F887 is 8K. Therefore, it has 8192 locations for program storing. For this reason the program counter must be 13-bits wide (2^13 = 8192). In order that the contents of some location may be changed in software during operation, its address must be accessible through some SFR. Since all SFRs are 8-bits wide, this register is “artificially” created by dividing its 13 bits into two independent registers: PCLATH and PCL.

13 Register File Structure in PIC 16F887

  • Eight lower bits (the low byte) come from the PCL register which is readable and writable, whereas five upper bits coming from the PCLATH register are writable only.
  • The PCLATH register is cleared on any reset.

write assembly program to jump to code located in a different program memory page:


Related Solutions

Clark 202 Part 1: Approximately how many bits are required to address a 4M x 16...
Clark 202 Part 1: Approximately how many bits are required to address a 4M x 16 main memory if: a. Main memory is byte addressable? b. or Main memory is word addressable? Part 2: Consider 256 x 8 RAM chips for the following: a. About how many are needed to provide a memory capacity of 4096 bytes? b. How many lines must go to each and every chip? Part 3: Digital computers have a memory unit with 24 bits per...
Suppose a block cipher uses m-to-m bits S-boxes. How many bits are required to store the...
Suppose a block cipher uses m-to-m bits S-boxes. How many bits are required to store the look-up table of k different such m-to-m bits S-boxes? Give a formula in terms of k and m. Hint: A look-up table for one DES S-box requires 256 bits of storage.
How many bits are required to represent all the elements currently in the Periodic Table?
How many bits are required to represent all the elements currently in the Periodic Table?
Assume a 64Kx8 Memory is designed using 16Kx1 RAM chips. How many address lines must be...
Assume a 64Kx8 Memory is designed using 16Kx1 RAM chips. How many address lines must be decoded externally to each 16K RAM chip?
Write a MIPS program that always checks the bit 0 of a memory data at address...
Write a MIPS program that always checks the bit 0 of a memory data at address 0x0BF81234. If it is equal to one add nth and (n+1)th elements of an array and store it to memory address 0x0BF85678 . Suppose $t0 contains the address of the 0th element of an array of 32-bit data and $t1 = n.
How many words are in the Gettysburg Address? Write a program that reads any text file,...
How many words are in the Gettysburg Address? Write a program that reads any text file, counts the number of characters, num- ber of letters and number of words in the file and displays the three counts. To test your program, a text file containing Lincoln’s Gettysburg Address is included on the class moodle page. Sample Run Word, Letter, Character Count Program Enter file name: GettysburgAddress.txt Word Count = 268 Letter Count = 1149 Character Count = 1440 Do the...
For a direct mapped cache design with 32 bit address, the following bits of the address...
For a direct mapped cache design with 32 bit address, the following bits of the address are used to access the cache Tag Index Offset 31 - 8 7 - 4 3 - 0 What is the cache block size (in words)? How many entries does the cache have? What is the ratio between total bits required for such a cache implementation over the data storage bits? Starting from power on, the following byte-addressed cache references are recorded. Address 0...
Write a program that copies the even number of bits from a into the corresponding bits...
Write a program that copies the even number of bits from a into the corresponding bits in b ,only use bit-manipulation instructions, no loop int main () { uint_32 a = 0 xaabbccdd ; uint_32 b = 0 x11223344 ; // Replace bits 0 ,2 ,4 ,... of b with bits 0 ,2 ,4 ,... from a . uint_32 result = ...; // Print out the result as a hexadecimal number }
What are the different parts of a typical program and how do they affect memory usage?
What are the different parts of a typical program and how do they affect memory usage?
In UART protocol, how many bits are NECESSARILY added into a data package for the interfacing...
In UART protocol, how many bits are NECESSARILY added into a data package for the interfacing to be successful? What is the function of those bits?
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT