![]() |
發布時間: 2023-12-21 20:07
正文摘要:具體要求:基于8086芯片實現。按鍵要求能夠實現對二極管的點亮與熄滅的控制,用S1~S4組成的鍵盤分別控制4個發光二極管的點亮,S5按鍵來熄滅各二極管。按鍵具有防抖動功能,例如:S1點亮1號燈,按S5可以將其熄滅。S2 ... |
雖然我也是玩匯編的,沒耐心看,但是看到8000h很驚訝,就一個點燈程序用這么大的地址干嘛 就一個點燈能上天? |
lyonkon 發表于 2023-12-23 21:01 ![]() |
子程序跳轉到其他子程序,再跳轉到另外一個程序,然后再跳,這樣寫的人不多。在追求錦上添花的地方可以這樣寫。 因為程序多了容易亂。而且邏輯分析太麻煩。 我建議:1,邏輯功能的子程序功能盡量單一,小程序,只開機調用一次的除外。便于分析 檢查 2,子程序需要其他程序功能的,以調用為主。跳轉為輔。大腦能理解數十個嵌套跳轉的人除外。 例1: led1_ON..............作為子程序1帶返回 led2_ON..............作為子程序2帶返回 led3_ON..............作為子程序3帶返回 delay1..................作為子程序4帶返回 先將上面子程序寫好 start: //主程序 如果按鍵1按下 跳轉到start1 如果按鍵2按下 跳轉到start2 start1: 調用延時 按鍵1沒有按下 跳轉到 start1_end 否則下一條 調用 led1_ON start1_end: 跳轉到start3 start2: start3:end 以上的例子你可以先試試看。 |
lyonkon 發表于 2023-12-22 11:40 改了一下,大哥再看看,我已經基本實現了功能,看看有沒有其他問題 |
wangxiangtan 發表于 2023-12-22 15:12 你這是c,我這是匯編大哥 |
Hephaestus 發表于 2023-12-22 13:25 第一次發帖求助,沒經驗,不小心加錯文件了,大哥再看看 |
while(1) { uchar a=按鍵檢測(); if(a==S1) { 點亮LED1; } …… if(a == S5) { 熄滅LED1; 熄滅LED2; …… sleep(10); } } |
你貼的圖是proteus的,給出來的文件是multisim的,完全是驢唇對不上馬嘴,只能證明你根本就沒有看過,隨便從網上搜來的東西,一點兒都不理解,也不打算理解,就發出來讓大家算命。 |
要增加程序存儲器ROM,數據存儲器RAM。最起碼8086有地方取指令吧 |