|
系統(tǒng)晶振是 11.0592 MHz ;本程序為基于51單片機的P1口低四位的數(shù)據(jù)采集 ;采用max232芯片與單片機結(jié)合,與上位機通信 ;程序在硬件上通過 ORG 0000H AJMP START ORG 0040H START: MOV SP,#60H MOV SCON,#50H ;串口 方式 1 MOV TMOD,#20H ;T1 模式2 MOV TL1,#0FDH ;波特率 9600 的常數(shù) MOV TH1,#0FDH SETB TR1 ;啟動定時器1 MOV r1,#0 WAIT: MOV p1, #0ffh lcall delay ;去抖動 MOV a , p1 cpl a ;讀數(shù)反 anl a , #0fh ;屏蔽高位 add a , #30h ;轉(zhuǎn)換成ASII碼 CJNE A,r1,st ;是否有鍵輸入,看數(shù)字有沒有變 sjmp wait ;沒有變就重新讀數(shù) st: MOV r1 , a ;保存鍵值 MOV SBUF,a ;串口輸出鍵盤輸入的值 NOP SS: JBC TI,WAIT ;是否發(fā)送完畢 SJMP SS DELAY: ;延時子程序 PUSH 0 ;保存現(xiàn)場 PUSH 1 MOV 0,#0H DELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1 POP 1 ;恢復(fù)現(xiàn)場 POP 0 RET END
|