| 数据搜索系统,热门电子元器件搜索 |
|
ST9 数据表(PDF) 38 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST9 数据表(HTML) 38 Page - STMicroelectronics |
|
38 / 146 page ![]() 38/146 ST9 USER GUIDE 3.3.1.5 Bit Operations Microcontrollers are often used for controlling inputs and outputs on a single-bit basis, in order to read the state of a contact, switch a relay on or off, etc. Because of this and because the data is stored in bytes, instructions for bitwise manipulation of data are welcome. The ST9 provides instructions to load, and, or, exor, set, clear, complement and test single bits. These are bld, band, bor, bxor, bset, bres, bcpl, btset. To designate a single bit in a byte, the notation .n is used. For example, r0.3 means bit 3 of r0. Here are examples of bit manipulation instructions: bld r0.2, r6.4 ; bit 4 of r6 copied to bit 2 of r0 bld r0.3, !r6.0 ; complement of bit 0 of r6 copied to bit 3 of r0 band r0.2, r0.3 ; r0.2 contains now (r6.4) and not (r6.0) bor r0.2, r2.7 bset r0.0 ; bit 0 or r0 set to 1 bcpl r0.1; bit 1 of r0 is complemented All the above instructions act on single working registers. If the source operand is preceded by ‘!’, the complement of the source bit is used. To test a bit, to condition a later jump, we have already described the tm and tcm instructions. There is another instruction, btset, that can act on either a single or a double working register, and that sets the Z bit of the FLAGR register if the designated bit is zero. After which, the bit is set to one. You can use this instruction in an interrupt service routine to test for a request and acknowledge it in a single instruction. Warning. Don’t use the bit manipulation instructions directly on bidirectional ports. To avoid unwanted modifications to the port output register contents, use a copy of the port register, then transfer the result with a load instruction to the I/O port. (Refer to the Input/Output Bit Configuration section in the Device Datasheet for more details.) 3.3.1.6 Test and Jump The btjf and btjt instructions test if a bit is set or cleared respectively and branch to another program location if true. For example: btjt r1.5,Lampon bset r1.5 ; switch lamp on Lampon: ... ; continuation of the program Two instructions are well-suited for implementing lookup tables. These are cpjfi and cpjti. They compare a byte in a register with a byte pointed to by a register pair, and increment the pointer |
|
链接网址 |
| ALLDATASHEET是否为您带来帮助? [ DONATE ] |
关于 Alldatasheet | 广告服务 | 联系我们 | 隐私政策 | 数据表链接 | 链接交换 | 制造商名单 All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |