//由於這原本是寫給c51用的c程式,所以沒有新增stdio等標準庫
//並且考慮到51ram有限,大部分變數用unsigned char以節省空間
char stack1[55], stack2[55];
int pt1=-1, pt2=-1;
void push(char ch, unsigned short i)
char pop(unsigned short i)
char top(unsigned short i)
void rpexpression(char exp)
pop(1);//彈出』(』
break;
case 『+』:
case 『-『:
push(』 『,2);
while(top(1)==』*』||top(1)==』/』||top(1)==』+』||top(1)==』-『)
push(ch,1);
break;
case 『*』:
case 『/』:
push(』 『,2);
while(top(1)==』*』||top(1)==』/』)
push(ch,1);
break;
default:
push(ch,2);
break;
} }
while(pt1>0) }
float getprexpvalue()
if(!(stack2[j]>='0'&&stack2[j]<='9'))
}if(right!=80)
else
stack3[++pt3]=num+fra;}}
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/')
stack3[++pt3]=num;
}}return stack3[pt3];void initialstack()
以下是標頭檔案
void initialstack();//初始化棧空間
void rpexpression(char exp);//轉化為逆波蘭表示式
float getprexpvalue();//獲取逆波蘭表示式的值
80C51常用標頭檔案
80c51常用標頭檔案 reg51.h math.h ctype.h stdio.h stdlib.h absacc.h intrins.h。1 reg51.h 定義51系列微控制器特殊功能暫存器和特殊位。2 absacc.h 訪問絕對位址標頭檔案。當用絕對位址訪問內部ram data 外部ram的...
80C51微控制器介紹
80c51微控制器屬於mcs 51系列微控制器,由intel公司開發,其結構是8048的延伸,改進了8048的缺點。增加了如乘 mul 除 div 減 subb 比較 cmp 16位資料指標 布林代數運算等指令,以及序列通訊能力和5個中斷源。採用40引腳雙列直插式dip dual in line p...
(筆記總結)80C51的中斷系統
80c51的中斷系統的結構 80c51的中斷系統有5個中斷源,2個中斷優先順序,可實現二級中斷巢狀。1.p3.2 可由it0 tcon.0 選擇其為低電平有效還是下降沿有效。當cpu檢測到p3.2引腳上有有效的中斷訊號時,中斷標誌ie0 tcon.1 置1,向cpu申請中斷。2.p3.3 可由it1...