安全系统控制与MAXQ2000-Security Syste
[09-13 17:04:28] 来源:http://www.88dzw.com 控制技术 阅读:8633次
文章摘要:Figure 4. In each of the four key-scanning states, the application reads the status of four switches and prepares to read the next four.Because the interrupt vector (IV) for the MAXQ2000 can be set on-the-fly, the application holds the next-state value in the interrupt vector register. Whenever the
安全系统控制与MAXQ2000-Security Syste,标签:计算机控制技术,工厂电气控制技术,http://www.88dzw.comFigure 4. In each of the four key-scanning states, the application reads the status of four switches and prepares to read the next four.
Because the interrupt vector (IV) for the MAXQ2000 can be set on-the-fly, the application holds the next-state value in the interrupt vector register. Whenever the timer interrupt fires, the handler routine for the current key-scanning state sets the interrupt vector address to the next state's handler routine.
org 0000h Main: call InitializeLCD move PD6, #010h ; For state 1 move PO6, #00Fh ; For all states move PD7, #000h ; For state 1 move PO7, #000h ; For all states move IV, #State1 call StartTimer move IC, #1 ; Enable global interrupts jump $ State1: push PSF push Acc move Acc, PI6 and #000Fh ; Grab lowest four bits only sla4 move A[13], Acc move PD6, #020h ; For state 2 move PD7, #000h move T2V0, #RELOAD ; Set reload value move T2CNB0.1, #0 ; Clear interrupt flags move T2CNB0.3, #0 move IV, #State2 pop Acc pop PSF retiThe handler routines for the other four states are similar, with a slight adjustment to OR in the previously collected switch bits in the A[13] holding register. There are three working accumulators used by the state routines.
A[13] holds the bit array of all the switch states read on the current pass through the keypad. After the State 4 read completes, this register contains the following bits, where a one bit represents an open (released) key switch and a zero bit represents a closed (depressed) key switch.
BIT 15 |
BIT 14 |
BIT 13 |
BIT 12 |
BIT 11 |
BIT 10 |
BIT 9 |
BIT 8 |
BIT 7 |
BIT 6 |
BIT 5 |
BIT 4 |
BIT 3 |
BIT 2 |
BIT 1 |
BIT 0 |
* | 7 | 4 | 1 | 2 | 5 | 8 | 0 | 3 | 6 | 9 | # | D | C | B | A |
Debouncing Switches
After State 4 is reached and all keys are scanned, a decision must be made whether to accept any keys that are pressed. A simple way to handle debouncing is to maintain a counter value for each of the 16 switches. Every time State 4 is reached and the key is pressed, the counter is incremented. If the key is not pressed, the counter is decremented. When the counter reaches a certain value, the keypress is registered. To prevent a held-down key from repeating (which typically is allowed on computer keyboards, but not on keypads), the counter must be allowed to decrement back to zero (by releasing the key) before that key may be registered again.As we have the state of all 16 keys in a single register, there is a simpler, less memory-intensive solution for debouncing. The application maintains a single counter value that is incremented each time the bit pattern matches the pattern read on the previous pass.
State4: push PSF push Acc move Acc, PI6 and #000Fh ; Grab low four bits only or A[13] cmp A[15] jump E, State4_End ; Ignore the last debounced pattern cmp A[14] jump E, State4_Match move LC[0], #DEBOUNCE move A[14], Acc ; Reset current bit array
上一页 [1] [2] [3] [4] [5] [6] 下一页
Tag:控制技术,计算机控制技术,工厂电气控制技术,控制技术
- 上一篇:利用MAXQ3210进行环境监视
《安全系统控制与MAXQ2000-Security Syste》相关文章
- › 安全系统控制与MAXQ2000-Security Syste
- › FPGA单芯片四核二乘二取二的安全系统
- 在百度中搜索相关文章:安全系统控制与MAXQ2000-Security Syste
- 在谷歌中搜索相关文章:安全系统控制与MAXQ2000-Security Syste
- 在soso中搜索相关文章:安全系统控制与MAXQ2000-Security Syste
- 在搜狗中搜索相关文章:安全系统控制与MAXQ2000-Security Syste
分类导航
最新更新