日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]EM78系列單片機(jī)的數(shù)值轉(zhuǎn)換的子程序 一 二進(jìn)制數(shù)轉(zhuǎn)換為ASCⅡ碼 將一個字節(jié)的二進(jìn)制數(shù)轉(zhuǎn)換為兩位16進(jìn)制數(shù)的ASCⅡ碼 main: mov a,@0x9f ;二進(jìn)制數(shù)為0x9f mov 0x30,a ;二進(jìn)制數(shù)存入0x30 mov a,@0x02 mov 0x10,

EM78系列單片機(jī)的數(shù)值轉(zhuǎn)換的子程序

 一 二進(jìn)制數(shù)轉(zhuǎn)換為ASCⅡ碼
 將一個字節(jié)的二進(jìn)制數(shù)轉(zhuǎn)換為兩位16進(jìn)制數(shù)的ASCⅡ碼
 main: mov a,@0x9f ;二進(jìn)制數(shù)為0x9f
 mov 0x30,a ;二進(jìn)制數(shù)存入0x30
 mov a,@0x02
 mov 0x10,a ;0x10中存放轉(zhuǎn)換次數(shù)
 mov a,@0x31
 mov 0x04,a ;0x04中為轉(zhuǎn)換后數(shù)據(jù)存放地址
 mov a,0x30
 B1: and a,@0x0f ;取a低4位
 mov 0x00,a
 sub a,@0x09 ;低4位大于9跳往B2
 jbs 0x03,0
 jmp B2
 mov a,0x00 ;低4位不大于9則加0x30
 add a,@0x30
 mov 0x00,a ;將ASCⅡ碼存入0X04所指單元
 jmp B3
 B2: mov a,0x00 ;大于9則加0X37
 add a,@0x37
 mov 0x00,a
 B3: swapa 0x30 ;將0X30高4位換入A低4位
 inc 0x04 ;存儲地址加1
 djz 0x10 ;循環(huán)次數(shù)減1,為0則返回
 jmp B1 ;不為0繼續(xù)轉(zhuǎn)換
 self: jmp self
 eop

 二 多字節(jié)二進(jìn)制加法
 0X20,0X21中的二進(jìn)制無符號數(shù)與0X22,0X23中的二進(jìn)制無符號數(shù)相加,結(jié)果放在0X24,0X25,0X26中,低地址中放低字節(jié)數(shù)據(jù)。
 Main: mov a,@0x78 ;賦值
 mov 0x20,a
 mov a,@0xc6
 mov 0x21,a
 mov a,@0x86
 mov 0x22,a
 mov a,@0x9e
 mov 0x23,a
 mov a,@0x0 ;0x26單元清0
 mov 0x26,a
 mov a,0x21
 add a,0x23
 mov 0x25,a ;高字節(jié)相加,結(jié)果送0x25
 jbc 0x03,0
 inc 0x26 ; 有進(jìn)位則0x26加1
 mov a,0x20
 add a,0x22
 mov 0x24,a ;低字節(jié)相加,結(jié)果送0x24
 jbs 0x03,0
 jmp self ;無進(jìn)位跳self
 inc 0x25 ;有進(jìn)位0x25加1
 jbc 0x03,0
 inc 0x26 ; 有進(jìn)位0x26加1
 self: jmp self
 eop
 三 多字節(jié)二進(jìn)制減法
 0x20,0x21中的二進(jìn)制無符號數(shù)減0x22,0x23中的二進(jìn)制無符號數(shù),
 低地址中放低字節(jié)數(shù)據(jù)。假設(shè)被減數(shù)大于減數(shù)。
 注意:(1)sub指令減出結(jié)果為正時,c標(biāo)志置1。
 (2)sub指令減出結(jié)果為0時,c標(biāo)志也置1。
 即,sub指令執(zhí)行后,c標(biāo)志清0表示結(jié)果為負(fù)。
 main: mov a,@0x67 ;賦值
 mov 0x20,a
 mov a,@0xff
 mov 0x21,a
 mov a,@0xe8
 mov 0x22,a
 mov a,@0x44
 mov 0x23,a ; 高字節(jié)相減
 sub a,0x21
 mov 0x25,a ;結(jié)果存0x25
 mov a,0x22 ;低字節(jié)相減
 sub a,0x20
 mov 0x24,a
 jbs 0x03,0
 dec 0x25 ;有借位則0x25減1
 self: jmp self
 eop
 四 二進(jìn)制乘法運(yùn)算
 EM78單片機(jī)沒有乘法指令,所以乘法運(yùn)算需要轉(zhuǎn)化為加法運(yùn)算。0X20單元數(shù)據(jù)乘以0X21單元數(shù)據(jù),結(jié)果放在0X22,0X23中。
 main: mov a,@0x0 ;0x22,0x23單元清0
 mov 0x22,a
 mov 0x23,a
 mov a,@0x3f ;賦值
 mov 0x20,a
 mov a,@0x22
 mov 0x21,a
 mul1: mov a,0x20 ;0x20與0x22內(nèi)容相加
 add 0x22,a
 jbc 0x03,0
 inc 0x23 ;有進(jìn)位0x23加1
 djz 0x21 ;0x21中次數(shù)減到0則結(jié)束
 jmp mul1 ;沒減到0則繼續(xù)
 self: jmp self
 eop
 五 二進(jìn)制除法運(yùn)算
 多字節(jié)二進(jìn)制除法
 被除數(shù)為3個字節(jié),在0x20、0x21、0x22單元中,0x22.7為最高位,0x20.0為最低位。
 除數(shù)為2個字節(jié),在0x30、0x31中。
 算法:EM78單片機(jī)沒有除法指令,而且本例中除法為多字節(jié)除法,可采用如下算法。
 將被除數(shù)擴(kuò)充一個字節(jié)0X23,0X23清0。被除數(shù)左移1位,0X23、0X22中數(shù)據(jù)減去0X31、0X30中數(shù)據(jù),夠減則減且0X20.0置1,減出結(jié)果存入0X23、0X22;不夠減則0X23、0X22保持不變,0X20.0清0。然后被除數(shù)再左移1位,重復(fù)上述過程。共循環(huán)16次,最后0X23、0X22中得相減余數(shù),0X21、0X20中得商。注意,若被除數(shù)左移后C標(biāo)志為1,則不比較0X23、0X22與0X31、0X30數(shù)據(jù)大小關(guān)系而直接相減。
 main: mov a,@0x55 ;被除數(shù)賦值
 mov 0x20,a
 mov 0x21,a
 mov 0x22,a
 mov a,@0x0 ;被除數(shù)擴(kuò)充1字節(jié)并清0
 mov 0x23,a
 mov a,@0x12 ;除數(shù)賦值
 mov 0x30,a
 mov 0x31,a
 mov a,@0x10 ;循環(huán)次數(shù)為16
 mov 0x32,a
 again: call rt_sub ;調(diào)移位除法子程
 djz 0x32 ;16次循環(huán)完成則結(jié)束
 jmp again ;未完成則繼續(xù)
 self: jmp self
 rt_sub:
 bc 0x03,0 ;c標(biāo)志清0
 rlc 0x20 ;被除數(shù)左移1位
 rlc 0x21
 rlc 0x22
 rlc 0x23
 jbc 0x03,0
 jmp rt3 ;c標(biāo)志為1則直接相減
 mov a,0x23 ;c標(biāo)志為0則先比較大小
 mov 0x25,a
 mov a,0x22
 mov 0x24,a
 mov a,0x31 ;先比較高位
 sub 0x25,a
 jbc 0x03,2
 jmp rt1 ;高位相等跳rt1比較低位
 jmp rt2 ;高位不等跳rt2
 rt1: mov a,0x30 ;比較低位
 sub 0x24,a
 jbc 0x03,2
 jmp rt3 ;低位也相等則跳rt3,相減,上1
 rt2: jbs 0x03,0
 ret ;減數(shù)大則返回,減數(shù)小則相減,上1
 rt3: bs 0x20,0 ;上1
 call sub_2b ;調(diào)2字節(jié)減法子程
 ret
 sub_2b:
 mov a,0x31 ;高字節(jié)相減
 sub 0x23,a
 mov a,0x30 ;低字節(jié)相減
 sub 0x22,a
 jbc 0x03,2
 ret ;低字節(jié)相等,無借位,返回
 jbc 0x03,0
 ret ;無借位,返回
 dec 0x23 ;低字節(jié)相減有借位,高字節(jié)結(jié)果減1
 ret
 eop
 六 BCD數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
 兩字節(jié)壓縮BCD碼轉(zhuǎn)換為兩字節(jié)二進(jìn)制數(shù)。算法如下:
 BCD碼abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,將各位BCD碼分離出之后,即可根據(jù)此式轉(zhuǎn)換為二進(jìn)制數(shù)。涉及到乘法運(yùn)算和多字節(jié)加法運(yùn)算。
 0X20,0X21中為BCD碼,0X21高4位為最高位。轉(zhuǎn)換結(jié)果放在0X30,0X31中。
 main: mov a,@0x79
 mov 0x20,a
 mov a,@0x54
 mov 0x21,a ;賦值
 mov a,0x20
 and a,@0x0f
 mov 0x22,a
 swapa 0x20
 and a,@0x0f
 mov 0x23,a
 mov a,0x21
 and a,@0x0f
 mov 0x24,a
 swapa 0x21
 and a,@0x0f
 mov 0x25,a ;BCD碼展開后存于0X22,0X23,0X24,0X25
 mov a,0x25, ;0X25為最高位
 mov 0x30,a
 mov a,@0x0 ;多字節(jié)加法高位為0
 mov 0x31,a
 mov a,0x24
 mov 0x32,a
 call a_b ;調(diào)子程
 mov a,0x23
 mov 0x32,a
 call a_b
 mov a,0x22
 mov 0x32,a
 call a_b
 self: jmp self
 a_b:
 mov a,@0x0 ;0X34,0X35存儲中間結(jié)果
 mov 0x34,a
 mov 0x35,a
 mov a,@0x0a ;實(shí)現(xiàn)乘10
 mov 0x33,a
 a1: mov a,0x35 ;兩字節(jié)二進(jìn)制加法,在本例中高字節(jié)肯定無進(jìn)位
 add a,0x31
 mov 0x35,a
 mov a,0x34
 add a,0x30
 mov 0x34,a
 jbc 0x03,0
 inc 0x35
 djz 0x33
 jmp a1
 mov a,0x32
 add 0x34,a
 jbc 0x03,0
 inc 0x35
 mov a,0x34
 mov 0x30,a
 mov a,0x35
 mov 0x31,a
 ret
 eop
 七 二進(jìn)制數(shù)轉(zhuǎn)換為BCD碼
 本例為單字節(jié)二進(jìn)制數(shù)(0X20)轉(zhuǎn)換為非壓縮BCD碼,存在0X25,0X24,0X23中,0X25為百位,0X23為個位。
 main: mov a,@0xa4 ;賦值
 mov 0x20,a
 mov 0x21,a
 mov 0x22,a
 mov a,@0x0 ;0x23,0x24,0x25單元清0
 mov 0x23,a
 mov 0x24,a
 mov 0x25,a
 mov a,@0x64 ;對100的個數(shù)計數(shù)
 mov 0x26,a
 mov a,@0x25 ;百位存在0x25中
 mov 0x04,a
 call a0 ;調(diào)計數(shù)子程
 mov a,@0x0a ;對10的個數(shù)計數(shù)
 mov 0x26,a
 dec 0x04 ;個位存在0x24中
 call a0
 mov a,0x22 ;除去百位,十位,余下的即個位,存入0x23
 mov 0x23,a
 self: jmp self
 a0: ;計數(shù)子程
 mov a,0x26
 sub 0x22,a
 jbs 0x03,2
 jmp a1
 inc 0x00 ;無余數(shù)則對應(yīng)位加1
 mov a,@0x0 ;0x21與0x22在返回時應(yīng)保持相同
 mov 0x21,a
 ret
 a1: jbs 0x03,0 ;小于則跳a2
 jmp a2
 inc 0x00 ;大于則計數(shù)值加1
 mov a,0x22
 mov 0x21,a ;將0x22保存到0x21中
 jmp a0 ;跳回a0繼續(xù)計數(shù)
 a2: mov a,0x21 ;0x21中保存的減之前的數(shù)據(jù),此時恢復(fù)到0x22
 mov 0x22,a
 ret
 eop

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

特朗普集團(tuán)近日取消了其新推出的T1智能手機(jī)“將在美國制造”的宣傳標(biāo)語,此舉源于外界對這款手機(jī)能否以當(dāng)前定價在美國本土生產(chǎn)的質(zhì)疑。

關(guān)鍵字: 特朗普 蘋果 AI

美國總統(tǒng)特朗普在公開場合表示,他已要求蘋果公司CEO蒂姆·庫克停止在印度建廠,矛頭直指該公司生產(chǎn)多元化的計劃。

關(guān)鍵字: 特朗普 蘋果 AI

4月10日消息,據(jù)媒體報道,美國總統(tǒng)特朗普宣布,美國對部分貿(mào)易伙伴暫停90天執(zhí)行新關(guān)稅政策,同時對中國的關(guān)稅提高到125%,該消息公布后蘋果股價飆升了15%。這次反彈使蘋果市值增加了4000多億美元,目前蘋果市值接近3萬...

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

3月25日消息,據(jù)報道,當(dāng)?shù)貢r間3月20日,美國總統(tǒng)特朗普在社交媒體平臺“真實(shí)社交”上發(fā)文寫道:“那些被抓到破壞特斯拉的人,將有很大可能被判入獄長達(dá)20年,這包括資助(破壞特斯拉汽車)者,我們正在尋找你?!?/p> 關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

1月22日消息,剛剛,新任美國總統(tǒng)特朗普放出重磅消息,將全力支持美國AI發(fā)展。

關(guān)鍵字: 特朗普 AI 人工智能

特朗普先生有兩件事一定會載入史冊,一個是筑墻,一個是挖坑。在美墨邊境筑墻的口號確保邊境安全,降低因非法移民引起的犯罪率過高問題;在中美科技產(chǎn)業(yè)之間挖坑的口號也是安全,美國企業(yè)不得使用對美國國家安全構(gòu)成威脅的電信設(shè)備,總統(tǒng)...

關(guān)鍵字: 特朗普 孤立主義 科技產(chǎn)業(yè)

據(jù)路透社1月17日消息顯示,知情人士透露,特朗普已通知英特爾、鎧俠在內(nèi)的幾家華為供應(yīng)商,將要撤銷其對華為的出貨的部分許可證,同時將拒絕其他數(shù)十個向華為供貨的申請。據(jù)透露,共有4家公司的8份許可被撤銷。另外,相關(guān)公司收到撤...

關(guān)鍵字: 華為 芯片 特朗普

曾在2018年時被美國總統(tǒng)特朗普稱作“世界第八奇跡”的富士康集團(tuán)在美國威斯康星州投資建設(shè)的LCD顯示屏工廠項(xiàng)目,如今卻因?yàn)楦皇靠祵㈨?xiàng)目大幅縮水并拒絕簽訂新的合同而陷入了僵局。這也導(dǎo)致富士康無法從當(dāng)?shù)卣抢铽@得約40億美...

關(guān)鍵字: 特朗普 富士康

今年5月,因自己發(fā)布的推文被貼上“無確鑿依據(jù)”標(biāo)簽而與推特發(fā)生激烈爭執(zhí)后,美國總統(tǒng)特朗普簽署了一項(xiàng)行政令,下令要求重審《通信規(guī)范法》第230條。

關(guān)鍵字: 谷歌 facebook 特朗普

眾所周知,寄往白宮的所有郵件在到達(dá)白宮之前都會在他地進(jìn)行分類和篩選。9月19日,根據(jù)美國相關(guān)執(zhí)法官員的通報,本周早些時候,執(zhí)法人員截獲了一個寄給特朗普總統(tǒng)的包裹,該包裹內(nèi)包含蓖麻毒蛋白。

關(guān)鍵字: 美國 白宮 特朗普
關(guān)閉