ASM 板


LINE

看板 ASM  RSS
板上的高手們能幫小弟我看一下寫的東西 小弟我剛接觸8051,所以概念可能不太好,希望能不吝於指教 內容:利用指撥開關 四個單鍵與文字形LCD來設計簡單的計算機,其中乘法以連加表示,除 法已連減表示 指撥開關輸入a值與b值 模式鍵:乘除法轉換 出題鍵:在LCD上顯示出乘法或除法算式 ex:a*b或a/b 解答鍵:每計算一次顯示一次 清除鍵:全部清除 問題:跑的出東西但只能控制a值跟部分的單鍵功能 我想可能是我有邏輯的錯誤 但自己寫的東西不容易找出來,希望高手能給我一些指點 如果問題很大的話,那我在砍掉重練 感謝你們 板大如果這篇不允許的話,我在自D吧! 以下為程式碼 ;模式鍵P1.3 出題鍵P1.4 解答鍵P1.5 清除鍵P1.6 指撥開關P2 E REG P1.2 RS REG P1.0 RW REG P1.1 ;**********************************主程式******************************** ;初始設定 SETTING: MOV R0,#0 ;被乘數 被除數 MOV R1,#0 ;乘數 除數 MOV R2,#0 ; MOV R3,#0 ; MOV R4,#0 ; MOV A,#0 ; ;出題鍵P1.4 START: JB P1.4,$ ;判斷出題鍵是否按下 ;指撥題目顯示於LCD SHOWQUESTION: MOV DPTR,#DATA MOV A,P2 CPL A ;取A的補數=1 ANL A,#0F0H SWAP A ;高低四位元互換 MOV R0,A ANL A,#0OFH MOV R1,A ACALL LCDFIRST ;顯示於LCD第一行 MOV A,R0 ;顯示被乘數 被除數 ACALL LOOP ACALL DIVMODE ;顯示乘 除 ACALL LOOP MOV A,R1 ;顯示乘數 除數 ACALL LOOP MOV A,#18 ;顯示 = ACALL LOOP MOV A,#19 ;顯示 ? ACALL LOOP ACALL LCDSECOND ;換至LCD第二行 ACALL ANSWER ;解答鍵P1.5 ANSWER: JB P1.5,$ MOV A,R0 MOV B,R1 DIV AB MOV R4,A INC R4 JNB P1.3,DIV0 MUL0: CLR A ACALL LOOP ACALL SDATA MUL1: MOV A,R0 JZ CLEAR MOV A,R1 JZ CLEAR MUL2: ACALL LCDSECOND MOV A,R3 ADD A,R0 MOV R3,A ANL A,#11110000B SWAP A ACALL LOOP MOV A,R3 ANL A,#00001111B ACALL LOOP DJNZ R1,MUL2 ACALL DELAY5MS AJMP CLEAR DIV0: MOV A,R1 JZ ERROR DIV1: MOV A,R3 ACALL LOOP ACALL DOT MOV A,R0 ACALL LOOP MOV A,R0 SUBB A,R1 MOV R0,A ACALL LCDSECOND INC R3 DJNZ R4,DIV1 ACALL DELAY5MS AJMP CLEAR ERROR: ACALL LCDSECOND MOV A,#14 ACALL LOOP MOV A,#22 ACALL LOOP MOV A,#22 ACALL LOOP MOV A,#21 ACALL LOOP MOV A,#22 ACALL LOOP AJMP CLEAR ;清除鍵P1.6 CLEAR: JB P1.6,$ ;判斷是否有按 MOV A,#1 ;清除全螢幕 ACALL COMMAND AJMP SETTING END ;***********************************以下為副程式****************************** ;模式鍵P1.3 DIVMODE: JB P1.3,MULMODE MOV A,#16 ;除號 RET MULMODE: MOV A,#17 ;乘號 RET DOT: MOV A,#20 MOVC A,@A+DPTR ACALL SDATA ACALL SDATA ACALL SDATA RET ;顯示LCD第一行 LCDFIRST: MOV A,#10000000B ACALL COMMAND RET ;顯示LCD第二行 LCDSECOND: MOV A,#11000000B ACALL COMMAND RET ;從DATA讀取後寫入 LOOP: MOVC A,@A+DPTR ACALL SDATA RET ;LCD顯示重複寫入 COMMAND: MOV P0,A SETB E CLR RW CLR RS CLR E ACALL DELAY2MS RET ;LCD顯示不重複寫入 SDATA: MOV P0,A SETB E CLR RW SETB RS CLR E RET ;延遲副程式 DELAY5MS: ACALL DELAY1MS ACALL DELAY2MS ACALL DELAY2MS RET DELAY2MS: ACALL DELAY1MS ACALL DELAY1MS RET include delay.inc DATA: DB "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F" DB "/","*","=","?",".","O","R" --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.64.76







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP