|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:在单片机应用中常碰到比较多字节数值、确定最小数值所在组的问题。利用最高位数值存储单) T$ `1 s+ ^$ ~5 c
元地址作为组别标志,提出了筛选多字节数值最小组别的汇编语言算法,计算结束后将最小组
: J1 n) [4 y' A! F2 n别标志存储于固定单元中。在该算法的基础上,通过设置后一级数值比较的起始地址及循环控% o0 Z9 ^1 g+ c+ S; g* b
制起始数值,可完成无限字节数值最小组别筛选,也可修改关键程序完成最大组别筛选。
& g8 y: k: c' w关键词:单片机;多字节数值;最小组别筛选;汇编语言
3 ?: y7 Y; `% b& a; f/ H/ j3 E一、问题描述
5 K9 I6 p0 {. u F) t# z9 K单片机应用时会遇到判别一组数值中的最小数
. R8 p" U% n" j/ i$ t2 T! x值所在组的问题,例如制作抢答器时单片机收到并
- T. T2 j ]) Q0 J: U. p; G储存各组所用的抢答反应时间,将其中用时最短的
- s* ?; l& @7 v; F9 u组筛选出来,以便显示抢到答题权的组及更改该组' P: L; ?9 ~& p8 ?
得分。受限于单片机存储单元的位数,当抢答反应 \6 t# W' D$ o6 c: M- ^9 J
时间较长时每组抢答反应时间需要存储于多个单元。$ D2 u2 F, z I5 p( ]/ K6 d
例如单片机频率为12MHz时,采用定时器TO工作% G; L! E. E1 C2 D: l2 ^
在方式2时,THO和TLO能够存储的最大时间约为0 L ^* }! e1 Z* a/ c( S
/ |9 t6 e4 j, \( V. a) {
0.065 s"I,即抢答反应时间不能超过0.065 s,否则时% Y+ Y( J* k) g
间无法记录。若采用一个存储单元记录抢答反应时
3 {3 I7 K0 s* M! C9 y1 c间,THO溢出中断时使时间存储器加一,则能够记
& I, E! k* H- E/ n- i7 u* y7 \8 m录的最长时间为16.8s,某些情况下不够用。若采用! ~& ^6 \ y" |
两个存储单元记录高位时间和低位时间,THO溢出
3 ^/ m8 ^3 T0 N. l- y7 a: a- A中断时使低位时间存储器加一,低位时间存储器溢" R# Y+ M& |+ ]& [
出时使高位时间存储器加一, 1 l9 C M# z7 Y; `' F. V4 O6 b
b5 L& t1 {) Z% r+ i m% d4 ?. {9 O# B+ o% u5 @
附件下载:6 _& {, X' [4 T+ H
4 f7 m( q+ F3 R- P. V- w7 D |
|