單片機(jī)串行口接收和發(fā)送數(shù)據(jù)的過(guò)程簡(jiǎn)述
串行口接收和發(fā)送數(shù)據(jù)的過(guò)程簡(jiǎn)述
答:在發(fā)送過(guò)程中,當(dāng)執(zhí)行一條將數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF(99H)的指令時(shí),串行口把SBUF中8位數(shù)據(jù)以fosc/l2的波特率從RXD(P3.0)端輸出,發(fā)送完畢置中斷標(biāo)志TI=1。寫(xiě)SBUF指令在S6P1處產(chǎn)生一個(gè)正脈沖,在下一個(gè)機(jī)器周期的S6P2處,數(shù)據(jù)的最低位輸出到RXD(P3.0)腳上;再在下一個(gè)機(jī)器周期的S3、S4和S5輸出移位時(shí)鐘為低電平時(shí),在S6及下一個(gè)機(jī)器周期的Sl和S2為高電平,就這樣將8位數(shù)據(jù)由低位至高位一位一位順序通過(guò)RXD線輸出。并在TXD腳上輸出fosc/12的移位時(shí)鐘。在“寫(xiě)SBUF”有效后的第10個(gè)機(jī)器周期的SlPl將發(fā)送中斷標(biāo)志TI置位。
接收時(shí),用軟件置REN=1(同時(shí),RI=0),即開(kāi)始接收。當(dāng)使SCON中的REN=1(RI=0)時(shí),產(chǎn)生一個(gè)正的脈沖,在下一個(gè)機(jī)器周期的S3P1~S5P2,從TXD(P3.1)腳上輸出低電平的移位時(shí)鐘,在此機(jī)器周期的S5P2對(duì)P3.0腳采樣.并在本機(jī)器周期的S6P2通過(guò)串行口內(nèi)的輸入移位寄存器將采樣值移位接收。在同一個(gè)機(jī)器周期的S6P1到下一個(gè)機(jī)器周期的S2P2,輸出移位時(shí)鐘為高電平。于是,將數(shù)據(jù)字節(jié)從低位至高位接收下來(lái)并裝入SBUF。在啟動(dòng)接收過(guò)程(即寫(xiě)SCON,清RI位),將SCON中的RI清0之后的第l0個(gè)機(jī)器周期的SlPl將RI置位。這一幀數(shù)據(jù)接收完畢,可進(jìn)行下一幀接收。
編輯:admin 最后修改時(shí)間:2018-05-19