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

正文內(nèi)容

銀行叫號系統(tǒng)畢業(yè)設計-資料下載頁

2025-06-29 05:58本頁面
  

【正文】 發(fā)送接收正確應答幀回發(fā)送準備好應 答發(fā)送數(shù)據(jù)形成累加和發(fā)送完發(fā)送累加和接收主機命令幀SM2=1接收發(fā)送NYNNYNYYNYNY 通信子程序流程圖具體實現(xiàn)的部分代碼如下: include include unsigned usbp=0,usdi=0。//保護現(xiàn)場void interrupt pt(unsigned bp,unsigned di) { usbp=bp。 usdi=di。}//恢復現(xiàn)場void rept(unsigned bp,unsigned di) { bp=usbp。 di=usdi。}main(){ char j=0。 int ri=0。 j=(char*)getvect(0x1c)。//中斷入口 pt(bp,di)。//保護現(xiàn)場 ri=0。 get(amp。ri)。//取數(shù)據(jù)幀 int nacc=0,nlocalacc=0。 nacc=isacc(ri)。//是地址? if(nacc==1)//是地址 { nlocalacc=islocal(ri)。//是本機地址? if(nlocalacc==1) //是 { SM2=0。 answer()。//回呼叫應答 } }else//不是地址{ ncmd=0。 ncmd=isncmd(ri)。 if(ncmd==0) SM2=1。 else//是命令 { if(ncmd==2)//接收 { send(1)。//回接收準備好應答 int ncount=0,nchk=0。 do { char t=0。 t=getdata()。//接收數(shù)據(jù) ncount++。 }while(t!=0) nchk=chk()://檢驗正確?if(nchk==l)//正確send(3)。//發(fā)送接收正確應答elsesend(4)。//發(fā)送接收錯誤應答SM2==l。} elseif(ncmd==3)//發(fā)送{send(2)。//回發(fā)送準備好應答 int ncount=O,nchk=0。do{char t=0。t=senddata()。//發(fā)送數(shù)據(jù)ncount++。}while(t!=0):sendcount(ncount)。//發(fā)送累加和getmain()。//接收主戰(zhàn)機命令幀SM2=l。} } }rept(bp,di)://恢復現(xiàn)場setvect(0x1c,j)。//恢中斷返回 } 主顯示屏軟件設計 主程序主顯示屏作為從機(地址為00H)接收主機發(fā)來的數(shù)據(jù)進而顯示,主程序流程圖如下圖所示顯示子程序和通信子程序兩個子程序模塊。初始化完成定時器TI、串行口的初始化,使串行口工作于中斷方式,以便使主顯示屏有較多的時間與能力用于顯示數(shù)據(jù)。開始初始化顯示子程序結(jié)束 主顯示屏主程序流程圖 顯示子程序MAX7219與89C51芯片采用的是串行方式進行數(shù)據(jù)傳送,數(shù)據(jù)格為16位,發(fā)送到DIN端的串行數(shù)據(jù)在每個CLK的上升沿移入到內(nèi)部16位移位寄存器中,然后在LOAD的上升沿時數(shù)據(jù)被鎖存到數(shù)字或控制寄存器中。D州端的數(shù)據(jù)通過移位寄存器傳送,并向下一個MAX7219芯片送數(shù)。由于MAX7219內(nèi)部16位寄存器的位號與從DIN發(fā)送來的串行數(shù)據(jù)的位號剛好相反,即接收的第一位為D15,所以數(shù)據(jù)在發(fā)送以前必須進行顛倒,即D0變成D15,D1變成D14.…(1)初始化程序主要是對每片MAX7219的顯示模式、顯示亮度、顯示位數(shù)進行初始化。初始化時首先將所有MAX7219芯片的顯示關掉,即給每片MAX7219芯片的火CH單元送00H。第二,對每片MAX7219芯片的每一顯示位進行初始化,選擇相應的顯示方式(非譯碼方式或譯碼方式)給譯碼方式寄存器XCH單元送相應的數(shù)值。第三,對每片MAX7219芯片所驅(qū)動的數(shù)碼管的顯示電流進行初始化,選擇相應的顯示電流(占空比),即給亮度寄存器XAH單元送相應的數(shù)值。第四,對每片MAX7219芯片的驅(qū)動數(shù)碼管數(shù)量進行初始化,限制顯示掃描顯示位數(shù),即給掃描限制寄存器XBH單元送相應的數(shù)值。第五,將所有的顯示開啟,即給每片MAX7219芯片的xCH單元送01H。這樣就完成整個初始化過程 MAX7219寄存器初始化設置項目選擇顛倒后的數(shù)值譯碼模式非譯碼模式9F00H高度調(diào)節(jié)17/325F1FH掃描限制0—7位DFEFH關斷模式正常操作3F80H顯示測試正常操作FF00H(2)數(shù)據(jù)傳送子程序給MAX7219送數(shù)時,首先是使MAX7219的片選腳電平來低(變?yōu)榈碗娖?,接著給MAX7219傳送的數(shù)是該單元的單元值(一個字節(jié)),然后給MAX7219傳送要送到單元送數(shù)(一個字節(jié)),最后使MAX7219的片選腳電平拉高(變?yōu)楦唠娖?。這樣數(shù)據(jù)才被鎖存到相應的數(shù)據(jù)存儲器里。程序如下:(調(diào)用子程序前先把要傳送的數(shù)據(jù)賦給累加器A)DISP: CLR RS0 CLR RS1 MOV R1,08HDISP01: RLC A JC DISPO3 LJMP DISPO4DISPO2: DJNZ R1,DISP01 RET DISPO3: SETB SETB CLR CLR LJMP DISP02 DISPO4: CLR SETB CLR LJMP DISP02主顯示屏接收主機的數(shù)據(jù)進而顯示,除與主機通信外,其顯示工作也要花費大量時間,所以,使主顯示屏的串行口工作于中斷方式,只有主機呼叫時,才中斷當前工作,進入中斷子程序進行通信,平常處理顯示數(shù)據(jù)的工作。其通信子程序流程圖如下圖所示。中斷入口保護現(xiàn)場RI=0取數(shù)據(jù)幀地址本機地址SM2=0回呼叫應答R0=50HR0=40H恢復現(xiàn)場中斷返回接受命令回接收準備好應答接收數(shù)據(jù)形成累加和接收完檢驗正確發(fā)送接收錯誤應答 幀發(fā)送接收正確應答幀R0+05HSM2=1NYNYYYYNYNYN 通信子程序流程圖具體實現(xiàn)的部分代碼如下:include include unsigned usbp=0,usdi=0。//保護現(xiàn)場void interrupt pt(unsigned bp,unsigned di){ usbp=bp。 usdi=di。}//恢復現(xiàn)場void rept(unsigned bp,undigned di){ bp=usbp。 di=usdi。}main(){ char j=0。 int ri=0。 j=(char*)getvect(0x1c)。//中斷入口 pt(bp,di)://保護現(xiàn)場ri=0。get(amp。ri)。//取數(shù)據(jù)幀 int nacc=0,nlocalacc=0。nacc=isacc(ri)。//是地址?if(nacc==1)//是地址 { nlocalacc=islocal(ri)。//是本機地址? if(nloca1acc==1)//是{SM2=0。answer()。//回呼叫應答if(RO==0x50) RO=0x40: } }else//不是地址{ncmd=0。ncmd=iscmd(ri)。if(ncmd==2)//接收{(diào)send(1)。//回接收準備好應答 int ncount=0,nchk=0。do{char t=0。t=getdata()。//接收數(shù)據(jù)ncount++。 }while(t!=0)。nchk=chk()。//檢驗正確?if(nchk=1)//正確 send(3)。//發(fā)送接收正確應答else send(4)。//發(fā)送接收錯誤應答SM2=1。 } else SM2=1。 R0+=0x50。 } rept(bp,di)。//恢復現(xiàn)場 setvect(0x1c,j)。//恢復中斷返回} 窗口顯示屏軟件設計 窗口顯示屏作為從機接收主機發(fā)來的數(shù)據(jù)進而顯示,主程序流程圖如下圖所示,包括顯示子程序和通信子程序兩個子程序模塊。初始化完成定時器T串行口的設置。 開始初始化讀本機地址顯示子程序結(jié)束 窗口顯示屏主程序流程圖電路采用LED顯示,CPU從左到右(即從LED1到LED3)進行動態(tài)掃描,其顯示過程如下:首先CPU把LED1要顯示的字符段碼送入PO口,即使LED1的COM端為低電平。雖然段選碼通過驅(qū)動電路同時送到各位LED,但這時只有LED1的相應段被導通點亮,而其余LED并不亮。然后CPU把LED2要顯示的字符段碼送入P0口,……,如此依次分別掃描代碼,一一分別點亮各位LED。只要刷新時間不太長,就會給人以同時顯示的穩(wěn)定視覺效果。LED動態(tài)掃描流程圖如下圖所示。在編制程序時,需要將內(nèi)存中需要顯示的十六進制數(shù)一個個譯成段選碼送往P0口,同時相間送出位選碼到P2口的相應腳。指向顯示緩沖區(qū)首地址取顯示位指針取要顯示的數(shù)將數(shù)變?yōu)槎芜x碼送段選碼到P0口—延時是最右邊位嗎退出修改顯示緩沖區(qū)指針和位碼YN具體實現(xiàn)的部分代碼如下:include inc1ude void main(){int *p=0://指向顯示緩沖區(qū)首地址 int nr=0。p=fristram()。//取顯示位指針do{ int nnum=getshow()。//取要顯示的數(shù) int nhex=change(nnum)。//將數(shù)變?yōu)槎芜x碼send(nhex,P0)。//送段選碼到P0口send(nhex,P2_0)。//send(nhex,P2_1)。send(nhex,P2_2)。 de1ay(100)。//nr=isright(nhex)://是最右邊位? }while(nr!=1)。}窗口顯示與主機之間的通信主要通過RS485收發(fā)器實現(xiàn),屬從機地位。由于窗口顯示屏本身也有處理數(shù)據(jù)、顯示等工作要完成,所以采用了中斷通信方式進行通信,即未有中斷時,窗口顯示屏完成自己的顯示工作,當主機與其通信時(即與本機地址相符),才中斷進行通信。窗口顯示屏通信子程序流程圖如下圖所示。中斷入口保護現(xiàn)場RI=0取數(shù)據(jù)幀地址本機地址SM2=0回呼叫應答恢復現(xiàn)場中斷返回接受命令回接收準備好應答接收數(shù)據(jù)形成累加和
點擊復制文檔內(nèi)容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1