999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單片機多字節數值最小組篩選的匯編語言算法

2020-04-22 04:07:50范興文
遼寧高職學報 2020年2期
關鍵詞:單片機

范興文,張 姝

(阜新高等專科學校,遼寧 阜新 123000)

一、問題描述

單片機應用時會遇到判別一組數值中的最小數值所在組的問題,例如制作搶答器時單片機收到并儲存各組所用的搶答反應時間,將其中用時最短的組篩選出來,以便顯示搶到答題權的組及更改該組得分。受限于單片機存儲單元的位數,當搶答反應時間較長時每組搶答反應時間需要存儲于多個單元。例如單片機頻率為12 MHz時,采用定時器T0工作在方式2時,TH0和TL0能夠存儲的最大時間約為0.065s[1],即搶答反應時間不能超過0.065 s,否則時間無法記錄。若采用一個存儲單元記錄搶答反應時間,TH0溢出中斷時使時間存儲器加一,則能夠記錄的最長時間為16.8s,某些情況下不夠用。若采用兩個存儲單元記錄高位時間和低位時間,TH0溢出中斷時使低位時間存儲器加一,低位時間存儲器溢出時使高位時間存儲器加一,這樣允許的最長搶答反應時間為為4 295 s≈71.6 min[2];若比較高位時間存儲器、低位時間存儲器和TH0三個單元的數值,時間分辨精度能達到0.000256 s。晶振的頻率誤差該精度已足夠。接下來的問題是找出各組中用時最短的那組,相當于每組提供一個3字節數值,篩選出數組最小的組別。

二、算法思路

規劃好數值存儲單元,用存儲地址代表組別,利用單片機指令篩選出數值最小組的存儲地址。

數值存儲單元設計如下:將各組的高位時間數值順序存放,各組低位時間數值順序存放,各組TH0時間數值順序存放,且使“同組的高位時間數值存儲地址+10=低位時間數值存儲地址”、“低位時間數值存儲地址+10=TH0時間數值存儲地址”。例如,共有6組,將各組高位時間數值順序存放于51H~56H單元中,各組高位時間數值順序存放于5BH~60H單元中,各組 TH0數值順序存放于65H~6AH單元中。這樣第一組的時間數值從高位至低位存儲于51H、5BH、65H中。

將較大數的低一級數值設置為最大,確保低一級數值比較時高一級數值的較小者有效。

記錄最小數值的相等次數和相等數值的最小地址,只有相等次數不為零時才進行下一級比較,且從相等數值的最小地址所在組開始比較。

單片機指令采用CJNE指令,利用CY的數值鑒別兩數值的大小關系[3]。利用Rn的相對尋址功能實現循環算法,優化程序結構。

三、程序流程圖

(一)最高位數值比較程序流程圖

最高位數值比較程序流程見圖1。

(二)數值比較子程序流程圖

數值比較子程序流程圖見圖2。

(三)低位數值比較程序流程圖

低位數值比較程序流程圖見圖3。

圖1 最高位數值比較程序流程圖

圖2 數值比較子程序流程圖

四、部分程序

(一)比較子程序

bijiao:

d0:mov a,@r0

cjne a,31h,d1[4]

inc r0[5]

inc 70h ;記錄相等次數

ljmp d11

d1:jb cy,d2

mov a,r0

add a,#10

mov r1,a[6]

mov@r1,#0ffh;該組下級數值設為最大

inc r0

ljmp d11

d2:

clr cy[7]

mov 70h,#0 ;相等次數歸零

mov a,32h

add a,#10

mov r1,a

mov@r1,#0ffh;該組下級數值設為最大

mov 31h,@r0 ;最小數存31H

mov 32h,r0;32H內記錄最小數開始地址,也是相等開始地址

inc r0[8]

ljmp d11

d11:ret

(二)低位數值比較程序

ji2:

mov a,32h

mov r7,32h

add a,#10

mov 32h,a

mov r0,a[9]

mov 31h,@r0

inc r0

mov 70h,#0

xh2:lcall bijiao

inc r7【10】

cjne r7,#56h,xh2

mov a,32h

subb a,#10

mov 32h,a

mov a,70h

cjne a,#0,ji3

ljmp$

五、以雙字節數值為例的運算結果示例(一)高字節數值有3組相同且最小

運算數組見表1。

表 1 運算示例1數組

從數組數值可以看出,第二組、第三組和第五組的高位數值最小且相同,這三組的低位數值第二組小,因此數值最小的組是第二組,該組高位數值存儲地址為52H。

程序運行結果數組賦值如圖4所示、運算結果如圖5所示。

表4 數組賦值

圖5 運算結果

從程序運行結果看最小組高位數值存儲地址存放單元32H存放的數值是52H,程序成功地篩選出了最小組。

(二)高字節數值有多個相同情況

數組見表2。

表2 運算示例2數組

從數組數值可以看出,第一組和第二組的高位數值相同為19H,第四組和第六組的高位數值相同為12H,最小組應為第四組和第六組,二者低位數值是第四組25H和第六組20H,因此最小數值應為第六組,其高位字節存儲地址為56H。

程序運行結果,數組賦值如圖6所示,運算結果如圖7所示。

圖6 數組賦值

圖7 運算結果

從程序運行結果看,最小組高位數值存儲地址存放單元32H存放的數值是56H,程序成功地篩選出了最小組。

四、結語

本文采用合理的編程思路提出了篩選多字節數值最小組別的算法,經過實際運行驗證了該算法在雙字節數組的最小組別篩選應用的可行性。按照本文提出的算法規律,可以方便地將該算法推廣應用到多組、多字節數值的最小組別篩選工作中去,也可以利用本文的方法解決16位單片機的同類問題。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 中文字幕欧美成人免费| 波多野结衣AV无码久久一区| 高清码无在线看| 亚洲国产精品成人久久综合影院| 欧洲日本亚洲中文字幕| 人妻精品全国免费视频| 亚洲日韩Av中文字幕无码| 人人妻人人澡人人爽欧美一区 | 国产午夜在线观看视频| 中文字幕一区二区视频| 日本三区视频| 亚洲第一极品精品无码| 色AV色 综合网站| 奇米影视狠狠精品7777| 国产成熟女人性满足视频| 亚洲 欧美 中文 AⅤ在线视频| 国产精品午夜电影| 手机精品福利在线观看| 久久国产av麻豆| 亚洲一区第一页| 国产主播在线观看| 亚洲综合天堂网| 在线国产你懂的| 91亚瑟视频| 亚洲成aⅴ人在线观看| 狠狠色婷婷丁香综合久久韩国| 一区二区三区国产| 直接黄91麻豆网站| 高清国产va日韩亚洲免费午夜电影| 免费欧美一级| 欧美在线视频不卡| 欧美黑人欧美精品刺激| 成人福利在线视频| 久久亚洲国产视频| 国产主播福利在线观看| 国产视频入口| 日本人妻丰满熟妇区| 无码网站免费观看| www.日韩三级| 丰满人妻中出白浆| 国产美女在线观看| 青青草原国产一区二区| 午夜一区二区三区| 在线观看无码av免费不卡网站| 欧美成在线视频| 99福利视频导航| 国产欧美日韩18| 日韩性网站| 国产欧美专区在线观看| 免费黄色国产视频| 男女性色大片免费网站| 亚洲91精品视频| 国产91视频观看| 午夜精品久久久久久久99热下载| 色老二精品视频在线观看| 综合人妻久久一区二区精品| 亚洲精品视频在线观看视频| 超碰精品无码一区二区| 六月婷婷激情综合| 一级爆乳无码av| 久青草国产高清在线视频| 亚洲中文字幕在线观看| 伊人色在线视频| 亚洲欧美另类专区| 99热这里只有精品2| 国产伦片中文免费观看| 国产欧美日韩综合一区在线播放| 久久综合五月婷婷| 日本一区高清| 日韩 欧美 小说 综合网 另类| 亚洲欧美精品一中文字幕| 极品性荡少妇一区二区色欲| 在线观看91香蕉国产免费| 99这里只有精品免费视频| 亚洲成A人V欧美综合| 日本人妻丰满熟妇区| 69免费在线视频| 免费三A级毛片视频| 国产一区二区三区在线无码| 精品偷拍一区二区| 日韩AV手机在线观看蜜芽| 毛片视频网|