freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)-資料下載頁(yè)

2025-06-19 12:57本頁(yè)面
  

【正文】 附錄二 軟件程序includeinclude define uchar unsigned chardefine uint unsigned intsbit lcden=P2^2。//這是LCD使能端sbit lcdrw=P2^1。//這是LCD讀寫選擇端sbit lcdrs=P2^0。//這是LCD數(shù)據(jù)命令選擇端uchar code table[]={39。039。,39。139。,39。239。,39。339。,39。439。,39。539。,39。639。,39。739。,39。839。,39。939。, 39。+39。,39。39。,39。*39。,39。/39。,39。=39。,39。.39。}。uchar key,flag1,js,k1,k2。uchar a[20],b[20]。float jieguo=0。void delay(uchar z)//延時(shí)函數(shù){ uchar x,y。 for(x=z。x0。x) for(y=110。y0。y)。}void write_cmd(uchar cmd)//LCD寫命令函數(shù){ lcdrs=0。//寫指令控制端為低 P0=cmd。 delay(5)。 lcden=1。//給個(gè)高脈沖結(jié)束 delay(4)。 lcden=0。}void write_data(uchar date)//寫數(shù)據(jù)函數(shù){ lcdrs=1。//寫數(shù)據(jù)控制端高電平 P0=date。 delay(5)。 lcden=1。//給個(gè)高脈沖結(jié)束 delay(5)。 lcden=0。 }void init()//液晶初始化函數(shù)。{lcdrw=0。 lcden=0。 write_cmd(0x38)。//設(shè)置16*2顯示,8位數(shù)據(jù)接口 write_cmd(0x0c)。//設(shè)置開(kāi)顯示,不顯示光標(biāo) (關(guān)顯示是0x08) write_cmd(0x06)。//寫一個(gè)字符后地址指針加1 write_cmd(0x01)。//清屏}void keyscan() //鍵盤掃描程序{ uchar temp,uu=0xf7。 uint i。 for(i=0。i4。i++) {uu=_crol_(uu,1)。 //_crol_為左移函數(shù) P3=uu。 temp=P3。 temp=tempamp。0x0f。 if(temp!=0x0f) { delay(10)。 temp=P3。 temp=tempamp。0x0f。 if(temp!=0x0f) { temp=P3。 switch(temp) { case 0xee: key=0。 break。 case 0xde: key=1。 break。 case 0xbe: key=2。 break。 case 0x7e: key=3。 break。 case 0xed: key=4。 break。 case 0xdd: key=5。 break。 case 0xbd: key=6。 break。 case 0x7d: key=7。 break。 case 0xeb: key=8。 break。 case 0xdb: key=9。 break。 case 0xbb: key=10。 break。 case 0x7b: key=11。 break。 case 0xe7: key=12。 break。 case 0xd7: key=13。 break。 case 0xb7: key=14。 break。 case 0x77: key=15。 break。 } while(temp!=0x0f) { temp=P3。 temp=tempamp。0x0f。 } flag1=1。 } } }} void jscl() //計(jì)算并顯示函數(shù){ uchar i,j,n。 float s,temp2。 long int s1,s2,a1,b1,c1,temp1。 a1=b1=1。 s1=s2=0。 s=0。 if(k2!=0) { for(j=0。jk1+1。j++) //存放第一操作數(shù) { for(i=0。ik1j。i++) a1=a1*10。 s1=s1+a[j]*a1。 a1=1。 } for(j=k1+1。jk2+1。j++) //存放第二操作數(shù) { for(i=0。ik2j。i++) b1=b1*10。 s2=s2+a[j]*b1。 b1=1。 } if(js==10) //判斷是什么運(yùn)算,并執(zhí)行運(yùn)算 { s=s1+s2。 } if(js==11) { s=s1s2。 } if(js==12) { s=s1*s2。 } if(js==13) { s=(s1*)/(s2*)。 } jieguo=s。 } else s=jieguo。 c1=(long int)(s*1000)%10。 if(c15 || c1==5) s=s+。 temp1=(long int)(s)。 //以下部分處理結(jié)果 temp2=stemp1。 n=0。 while(temp1) { b[n]=temp1%10。 temp1=temp1/10。 n++。 } b[n]=temp2*10。 b[n+1]=(uchar)(temp2*100)%10。 for(i=n。i0。i) //在液晶上顯示結(jié)果 { write_data(table[b[i1]])。 } write_data(table[15])。 write_data(table[b[n]])。 write_data(table[b[n+1]])。}void main(){ uchar i,j。 init()。 write_cmd(0x80)。 //將液晶指針定位在第一行第一個(gè)單元 key=15。 i=flag1=0。 while(1) { keyscan()。 if(flag1==1) {if(key==15) { write_cmd(0x01)。 i=0。 for(j=0。j20。j++) a[j]=b[j]=0。 k1=k2=0。 } else if(key10) { write_data(table[key])。 a[i]=key。 i++。 } else if(key14) { write_data(table[key])。 k1=i1。 js=key。 } else { write_data(table[key])。 if(i==0) k2=0。 else k2=i1。 write_cmd(0x80+0x40)。 //將液晶指針定位在第二行第一個(gè)單元 jscl()。 } flag1=0。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦

基于單片機(jī)的簡(jiǎn)易計(jì)算器(終稿2)-資料下載頁(yè)

【總結(jié)】電》