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

正文內容

單片機c語言程序設計實訓100例基于proteus仿真(編輯修改稿)

2025-07-23 05:56 本頁面
 

【文章內容簡介】 164將串行輸入的1字節(jié)轉換為并行數據,并將轉換的數據通過8只LED顯示出來。本例串口工作模式0,即移位寄存器I/O模式。*/includeincludedefine uchar unsigned chardefine uint unsigned intsbit SPK=P3^7。uchar FRQ=0x00。//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//主程序void main(){ uchar c=0x80。 SCON=0x00。 //串口模式0,即移位寄存器輸入/輸出方式 TI=1。 while(1) { c=_crol_(c,1)。 SBUF=c。 while(TI==0)。 //等待發(fā)送結束 TI=0。 //TI軟件置位 DelayMS(400)。 }} 44 并行數據轉換為串行數據/* 名稱:并行數據轉換為串行數據 說明:切換連接到并串轉換芯片74LS165的撥碼開關,該芯片將并行數據以串行方式發(fā)送到8051的RXD引腳,移位脈沖由TXD提供,顯示在P0口。*/includeincludeincludedefine uchar unsigned chardefine uint unsigned intsbit SPL=P2^5。 //shift/load//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//主程序void main(){ SCON=0x10。 //串口模式0,允許串口接收 while(1) { SPL=0。 //置數(load),讀入并行輸入口的8位數據 SPL=1。 //移位(shift),并口輸入被封鎖,串行轉換開始 while(RI==0)。 //未接收1字節(jié)時等待 RI=0。 //RI軟件置位 P0=SBUF。 //接收到的數據顯示在P0口,顯示撥碼開關的值 DelayMS(20)。 }} 45 甲機通過串口控制乙機LED/* 名稱:甲機發(fā)送控制命令字符 說明:甲單片機負責向外發(fā)送控制命令字符“A”、“B”、“C”,或者停止發(fā)送,乙機根據所接收到的字符完成LED1閃爍、LED2閃爍、雙閃爍、或停止閃爍。*/includedefine uchar unsigned chardefine uint unsigned intsbit LED1=P0^0。 sbit LED2=P0^3。sbit K1=P1^0。//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//向串口發(fā)送字符void Putc_to_SerialPort(uchar c){ SBUF=c。 while(TI==0)。 TI=0。}//主程序void main(){ uchar Operation_No=0。 SCON=0x40。 //串口模式1 TMOD=0x20。 //T1工作模式2 PCON=0x00。 //波特率不倍增 TH1=0xfd。 TL1=0xfd。 TI=0。 TR1=1。 while(1) { if(K1==0) //按下K1時選擇操作代碼0,1,2,3 { while(K1==0)。 Operation_No=(Operation_No+1)%4。 } switch(Operation_No) //根據操作代碼發(fā)送A/B/C或停止發(fā)送 { case 0: LED1=LED2=1。 break。 case 1: Putc_to_SerialPort(39。A39。)。 LED1=~LED1。LED2=1。 break。 case 2: Putc_to_SerialPort(39。B39。)。 LED2=~LED2。LED1=1。 break。 case 3: Putc_to_SerialPort(39。C39。)。 LED1=~LED1。LED2=LED1。 break。 } DelayMS(100)。 }} /* 名稱:乙機程序接收甲機發(fā)送字符并完成相應動作 說明:乙機接收到甲機發(fā)送的信號后,根據相應信號控制LED完成不同閃爍動作。*/includedefine uchar unsigned chardefine uint unsigned intsbit LED1=P0^0。 sbit LED2=P0^3。//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//主程序void main(){ SCON=0x50。 //串口模式1,允許接收 TMOD=0x20。 //T1工作模式2 PCON=0x00。 //波特率不倍增 TH1=0xfd。 //波特率9600 TL1=0xfd。 RI=0。 TR1=1。 LED1=LED2=1。 while(1) { if(RI) //如收到則LED閃爍 { RI=0。 switch(SBUF) //根據所收到的不同命令字符完成不同動作 { case 39。A39。: LED1=~LED1。LED2=1。break。 //LED1閃爍 case 39。B39。: LED2=~LED2。LED1=1。break。 //LED2閃爍 case 39。C39。: LED1=~LED1。LED2=LED1。 //雙閃爍 } } else LED1=LED2=1。 //關閉LED DelayMS(100)。 }} 46 單片機之間雙向通信/* 名稱:甲機串口程序 說明:甲機向乙機發(fā)送控制命令字符,甲機同時接收乙機發(fā)送的數字,并顯示在數碼管上。*/includedefine uchar unsigned chardefine uint unsigned intsbit LED1=P1^0。 sbit LED2=P1^3。sbit K1=P1^7。uchar Operation_No=0。 //操作代碼//數碼管代碼uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//向串口發(fā)送字符void Putc_to_SerialPort(uchar c){ SBUF=c。 while(TI==0)。 TI=0。}//主程序void main(){ LED1=LED2=1。 P0=0x00。 SCON=0x50。 //串口模式1,允許接收 TMOD=0x20。 //T1工作模式2 PCON=0x00。 //波特率不倍增 TH1=0xfd。 TL1=0xfd。 TI=RI=0。 TR1=1。 IE=0x90。 //允許串口中斷 while(1) { DelayMS(100)。 if(K1==0) //按下K1時選擇操作代碼0,1,2,3 { while(K1==0)。 Operation_No=(Operation_No+1)%4。 switch(Operation_No) //根據操作代碼發(fā)送A/B/C或停止發(fā)送 { case 0: Putc_to_SerialPort(39。X39。)。 LED1=LED2=1。 break。 case 1: Putc_to_SerialPort(39。A39。)。 LED1=~LED1。LED2=1。 break。 case 2: Putc_to_SerialPort(39。B39。)。 LED2=~LED2。LED1=1。 break。 case 3: Putc_to_SerialPort(39。C39。)。 LED1=~LED1。LED2=LED1。 break。 } } }}//甲機串口接收中斷函數void Serial_INT() interrupt 4{ if(RI) { RI=0。 if(SBUF=0amp。amp。SBUF=9) P0=DSY_CODE[SBUF]。 else P0=0x00。 }} /* 名稱:乙機程序接收甲機發(fā)送字符并完成相應動作 說明:乙機接收到甲機發(fā)送的信號后,根據相應信號控制LED完成不同閃爍動作。*/includedefine uchar unsigned chardefine uint unsigned intsbit LED1=P1^0。 sbit LED2=P1^3。sbit K2=P1^7。uchar NumX=1。//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//主程序void main(){ LED1=LED2=1。 SCON=0x50。 //串口模式1,允許接收 TMOD=0x20。 //T1工作模式2 TH1=0xfd。 //波特率9600 TL1=0xfd。 PCON=0x00。 //波特率不倍增 RI=TI=0。 TR1=1。 IE=0x90。 while(1) { DelayMS(100)。 if(K2==0) { while(K2==0)。 NumX=++NumX%11。 //產生0~10范圍內的數字,其中10表示關閉 SBUF=NumX。 while(TI==0)。 TI=0。 } }}void Serial_INT() interrupt 4{ if(RI) //如收到則LED則動作 { RI=0。 switch(SBUF) //根據所收到的不同命令字符完成不同動作 { case 39。X39。: LED1=LED2=1。break。 //全滅 case 39。A39。: LED1=0。LED2=1。break。 //LED1亮 case 39。B39。: LED2=0。LED1=1。break。 //LED2亮 case 39。C39。: LED1=LED2=0。 //全亮 } }} 47 單片機向主機發(fā)送字符串/* 名稱:單片機向主機發(fā)送字符串 說明:單片機按一定的時間間隔向主機發(fā)送字符串,發(fā)送內容在虛擬終端顯示。*/includedefine uchar unsigned chardefine uint unsigned int//延時void DelayMS(uint ms){ uchar i。 while(ms) for(i=0。i120。i++)。}//向串口發(fā)送字符void Putc_to_SerialPort(uchar c){ SBUF=c。 while(TI==0)。 TI=0。}//向串口發(fā)送字符串void Puts_to_SerialPort(uchar *s){ while(*s!=39。\039。) { Putc_to_SerialPort(*s)。 s++。 DelayMS(5)。 }}//主程序void main(){ uchar c=0。 SCON=0x40。 //串口模式1 TMOD=0x20。 //T1工作模式2 TH1=0xfd。 //波特率9600 TL1=0xfd。 PCON=0x00。 //波特率不倍增 TI=0。 TR1=1。 DelayMS(200)。 //向主機發(fā)送數據 Puts_to_SerialPort(Receiving From 8051...\r\n)。 Puts_to_SerialPort(\r\n)。 DelayMS(50)。 while(1) { Putc_to_SerialPort(c+39。A39。)。 DelayMS(100)。 Putc_to_SerialPort(39。 39。)。 DelayMS(100)。 if(c==25) //每輸出一遍后加橫線 { Puts_to_SerialPort
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1