用了很久的mc8051,一直以為mc8051的外擴接口有問題,只能寫出不能讀入。
嘗試了很多種方案,包括外部接口使能打一拍讀入都試了,都不行。
突然發現數據讀入一直都用的assign,換成always@*會是什么樣,居然TMD好使了。原始代碼
// assign xdata_o =ramx_en ? ramx_data:
// portA_en_d? portA_i_d: //portA_i不用打一拍,因為它是有外部提供的,如果接按鍵的話,持續值肯定超過一個總線時鍾
// portA_en ? portA_i:
// xdata_o;
換成
always@(*)
begin
if(ramx_en) xdata_o=ramx_data;
//if(portA_en)xdata_o=portA_i; //此處不起作用,刪掉
if(portA_en_d)xdata_o=portA_i;
end
注:portA_en_d為portA_en在總線時鍾上的打一拍
居然能正常運行了