单片机汇编一个将2位16进制数转换为ASCII子程序 一个十六进制数转换成ASCII码的单片机程序

\u5355\u7247\u673a\u4e2d\u628a16\u8fdb\u5236\u6570\u8f6c\u6362\u4e3aASCII\u7801\u7684\u5b50\u7a0b\u5e8f

HEX2ASC:
PUSH ACC
ANL A,#0FH
LCALL H2A
MOV R0,A
POP ACC
SWAP A
ANL A,#0FH
LCALL H2A
MOV R1,A
RET
H2A:
CJNE A,#10,HASC1
HASC1:
JC HASC2
MOV B,#41H
ADD A,B
RET
HASC2:
MOV B,#30H
ADD A,B
RET

HASC\uff1aMOV A\uff0cR0 \uff1b\u4eceR0\u4e2d\u53d6\u4e00\u4e2a16\u8fdb\u5236\uff08\u4e8c\u8fdb\u5236\uff09\u6570\uff080-F)
ANL A\uff0c#0FH \uff1b\u5c4f\u853d\u6389\u9ad84\u4f4d
PUSH ACC \uff1b4\u4f4d\u4e8c\u8fdb\u5236\u6570\u5165\u6808
CLR C \uff1b\u6e05\u8fdb\uff08\u501f\uff09\u4f4d\u4f4d
SUBB A\uff0c#0AH
POP ACC
JC LOOP
ADD A\uff0c#07H
LOOP\uff1aADD A\uff0c#30H
MOV R2\uff0cA
RET

\u5b9e\u9a8c\u7ed3\u679c\uff1aR0\u4e2d\u7684\u5341\u516d\u8fdb\u5236\u6570\uff08\u6bd4\u5982A),\u8f6c\u6362\u4e3aASCII\u7801\uff0841H)\u9001\u5165R2\u4e2d\u3002\u521a\u624d\u56de\u7b54\u4e86\uff0c\u6ca1\u6709\u4e86\u5417\uff1f

URNUM EQU #0F1H
;还是分两段吧, 有需要的话把main修改成子程序用RET返回
MAIN:
MOV A,URNUM
PUSH ACC
ACALL HEX2ASC
MOV R6,R2
POP ACC
SWAP A
ACALL HEX3AC
MOV R7,R2
SJMP $

ORG #0064H
HEX2ASC:
ANL A,#0FH   ;取低4位
CJNE A,#0AH,CONVT
CONVT: 
ADD A,#30H  ;小于10转成数字
JNC ISCHAR  ;大于等于10再加1转成字符
SJMP NEXT
ISCHAR:INC A
NEXT:
MOV R2,A   ;保存转换结果
RET


  • ...璇█鍜宑璇█缁鍗曠墖鏈鍐欑▼搴忔椂瑕鎶婃暟瀛鍐欏嚭16杩涘埗,浣嗘槸璁$畻鏈哄彧璇嗗埆2...
    绛旓細鏂逛究闃呰锛岃浆鎹篃寰堝鏄撱備竴涓16杩涘埗鏁拌〃绀4涓浜岃繘鍒浣嶏紝涓や釜16杩涘埗鏁琛ㄧず1涓瓧鑺傘備笉鍏夎灏戯紝涔熻杞崲瀹规槗銆
  • 51鍗曠墖鏈烘眹缂绋嬪簭浜岃繘鍒銆佸崄杩涘埗銆鍗佸叚杩涘埗鏁鎬庝箞琛ㄧず!
    绛旓細鍗佽繘鍒跺氨鏄0鍒9杩欐槸涓暟 姣斿 MOV A,#8 浜岃繘鍒灏辨槸01杩涓や釜鏁 鍗佸叚杩涘埗鏄粠0鍒9鍒癆 B C D E F 杩16涓暟.A琛ㄧず10 B琛ㄧず11 銆傘傘侳琛ㄧず15灏辫繖鏍枫16杩涘埗鍚庨潰鏈夊甫涓涓狧琛ㄧず16杩涘埗銆傛瘮濡 MOV A #0FFH
  • 姹鍗曠墖鏈烘眹缂璇█鎬庢牱缂栫▼鎵嶈兘瀹炵幇灏涓涓崄鍏繘鍒舵暟杞崲涓哄崄杩涘埗鏁
    绛旓細濡傛灉鏄墺2瀛楄妭,浠ヤ笂鐨勮繍绠楀垯鏄惧緱杩囦簬鍗犵敤绋嬪簭澶勭悊鏃堕棿,瑕佺敤鍒扮Щ浣嶈繍绠,璁剧疆鏁版嵁瀵勫瓨鍣ㄥ尯(2瀛楄妭鍗佸叚杩涘埗鏁鍒欓渶4涓瘎瀛樺櫒鍖哄拰涓涓惊鐜鏁板櫒),姣忓乏绉讳竴浣嶅悗杩涜鏁版嵁璋冭妭:(浠ヤ笅缁欏嚭涓涓牱渚嬬▼搴,PIC涓。鍗曠墖鏈鐨姹囩紪绋嬪簭);; 鍙屽瓧鑺16杩涘埗鏁版嵁杞崲涓5浣岯CD鐮佹暟鎹▼搴 ;; Performance :; Program Me...
  • 51鍗曠墖鏈鐢姹囩紪鎶16杩涘埗杞寲涓10杩涘埗,杩欎釜绋嬪簭涓嶆槸寰堟噦,甯屾湜楂樻墜鑳借缁...
    绛旓細杩欎釜绋嬪簭鏄纭殑銆傜▼搴忓惊鐜簡16娆°傛妸 M_byte,L_byte锛屽乏绉讳簡16娆★紝鏈楂樹綅锛屼緷娆$Щ杩涗簡Cy锛涚敤 ADDC 鎸囦护锛屾妸 RW1,RW2锛屽乏绉讳簡16娆★紝骞舵妸Cy锛屽姞鍏ュ埌浜嗘渶浣庝綅銆侫DDC 鎸囦护鍚庨潰锛屾槸鍗杩涘埗璋冩暣鎸囦护锛屾墍浠ワ紝RW1,RW2 涓殑鍐呭灏辨槸BCD鐮併
  • 51鍗曠墖鏈瀹氭椂鍣1鏂瑰紡2鎬庝箞璁剧疆涓轰粈涔圱MOD=0x20(鏄庝箞鎹㈢畻寰) 瀹氭椂...
    绛旓細1銆侀鍏堢涓姝ユ槸瀹氭椂鍣2鏄柊澧炶祫婧愶紝涔熸槸51鍗曠墖鏈瀹氭椂鍣ㄩ噷闈㈠姛鑳芥渶寮哄ぇ鐨勪竴涓畾鏃跺櫒銆傛敞鎰忕殑鏄帉鎻″ソ瀹氭椂鍣2杩樻槸闈炲父鏈夊繀瑕佺殑銆2銆佺劧鍚庡氨鏄畾鏃跺櫒2鏄涓涓16浣嶅畾鏃跺櫒/璁℃暟鍣紝娉ㄦ剰鐨勬槸閫氳繃璁剧疆鐗规畩鍔熻兘瀵勫瓨鍣═2CON涓殑C/T2浣嶅彲灏嗗叾璁剧疆涓哄畾鏃跺櫒鎴栨槸璁℃暟鍣ㄣ3銆佹帴鐫灏辨槸閫氳繃璁剧疆T2CON涓殑宸ヤ綔妯″紡...
  • ...鍣ㄧ敤浣滆鏁版ā寮忔椂,璁鏁板鎬庢牱璇诲嚭?鏄浜杩涘埗鏁拌繕鏄鍗佸叚杩涘埗鏁...
    绛旓細璇诲嚭鐨勫兼槸浜岃繘鍒舵暟锛屽叾瀹炰簩杩涘埗鏁颁笌16杩涘埗鏁版槸涓鍥炰簨锛屽苟鏃犲尯鍒紝鍗曠墖鏈鍐呴儴涓轰簩杩涘埗鏁帮紝璇诲嚭鏉ュ氨鏄簩杩涘埗鏁帮紝浣嗘槸锛屼汉浠張涓嶇啛鎮夋垨涓嶆効鎰忕湅浜岃繘鍒舵暟锛屽氨鐢涓や綅16杩涘埗鏁琛ㄧず8浣嶄簩杩涘埗鏁般傚ソ浜嗭紝鍥炲埌姝i锛岃鍑鸿鏁板兼洿瀹规槗锛屼緥濡傦紝鐢═0璁℃暟 姹囩紪绋嬪簭 MOV R7锛孴H0; 楂8浣 MOV R6锛孴L0; ...
  • 鍗曠墖鏈瀛樺偍鍣ㄧ▼搴忓瓨鍌ㄥ櫒
    绛旓細绋嬪簭瀛樺偍鍣ㄦ槸鍗曠墖鏈涓敤浜庡瓨鏀炬寚浠や唬鐮佺殑鍏抽敭缁勪欢锛岃繖浜涗唬鐮佹槸鎺у埗鑺墖杩愯鐨勪竴绯诲垪鍛戒护銆傚崟鐗囨満鍙兘鐞嗚В鐢浜岃繘鍒鐨勨0鈥濆拰鈥1鈥濇瀯鎴愮殑鏈哄櫒鎸囦护銆備緥濡傦紝鐢ㄥ姪璁扮琛ㄧず鐨勫懡浠"MOV A, #20H"锛屽湪鏈哄櫒灞傞潰浼氳浆鍖栦负浜岃繘鍒朵唬鐮74H鍜20H锛堝嵆01110100B鍜00100000B锛夈傚湪澶勭悊闂鍓嶏紝蹇呴』灏嗙紪鍐欑殑绋嬪簭銆佸父鏁板拰...
  • 鍒濆鍗曠墖鏈烘眹缂璇█,璇疯В閲婁竴涓嬭繖涓狿PT鍓嶉潰鍦板潃鐨7405H涓哄暐琚垎鎴愪袱...
    绛旓細7405H涓嶆槸鍦板潃锛屾槸璇ユ寚浠ょ殑鏈哄櫒鐮侊紝鏈哄櫒鐮佽兘鍦51鍗曠墖鏈鎸囦护琛ㄤ腑鏌ュ埌 MOV A锛岋純data鐨勬搷浣滅爜鏄74H,鍔犱笂瀹冭涓涓搷浣滄暟05H,鎵浠ヨ鍙ョ殑鏈哄櫒鐮佸氨鏄7405H 涓嬮潰鐨勩ADD A锛岋純data 鐨勬搷浣滅爜鏄24H,瀹冧篃 瑕佷竴涓搷浣滄暟0AH 鎵浠ヨ鍙ョ殑鏈哄櫒鐮佸氨鏄240AH 鐢辨柤杩欎簺閮芥槸鍙屽瓧鑺傛寚浠わ紝鎵浠ョ▼搴忓瓨鍌ㄥ櫒鐨勫湴鍧...
  • 鍗曠墖鏈涓,濡備綍灏涓涓16杩涘埗鏁杞负2杩涘埗鐨勫舰寮忚緭鍑 姣斿a=0x9C,浣嗘渶 ...
    绛旓細鍛靛懙 杩欎篃澶畝鍗曚簡鍚 淇烘潵鍛婅瘔浣犳柟娉曪細1 灏嗚鏁版嵁鍏堥佸叆瀵勫瓨鍣≧4涓紝濡傦紙R4)=0x9C=10011100,2 R4鐨勫唴瀹归佺粰锛圓)3浣跨敤甯﹁繘浣嶇殑宸﹀惊鐜寚浠 灏嗭紙A)涓唴瀹瑰乏绉讳竴浣嶉佺粰杩涗綅浣岰锛(A)鍐呭閫佺粰锛圧4)淇濆瓨 4 30H閫佺粰锛圓) 浣跨敤 ADDC A,#0 鎸囦护 姹傚嚭瑕佸彂閫佺殑浜岃繘鍒舵暟鐨勭涓浣嶆暟...
  • 鎬庝箞鐢鍗曠墖鏈缂栧啓涓娈电▼搴忓皢鑻ュ共鍗佸叚杩涘埗鏁杞崲涓篈SCII鐮?
    绛旓細BufferOut[i*2] = GetASCII(BufferIn[i]/0x10);BufferOut[i*2+1] = GetASCII(BufferIn[i]%0x10);} while(1);} 姹囩紪鐨勶細;璇存槑: LOOP1寰幆涓洪璁10涓16杩涘埗鏁鍐呭鐨勫垵濮嬪寲绋嬪簭锛屼綔涓虹ず渚 ORG 0000H LJMP START ORG 0100H START: MOV R2, #10 ;棰勭疆10涓16杩涘埗鏁...
  • 扩展阅读:汇编延时1ms的延时子程序 ... 16进制对照表0x ... 16进制码对照表 ... 二进制对照表大全 ... 十六进制在线转换器 ... 十进制怎么换16进制 ... 单片机16进制转换表 ... 数码管对应字母16进制 ... 中文转16进制在线工具 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网