国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

甲、乙機(jī)之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機(jī)的 k1 按鍵可通過串行口控制乙機(jī)的 LEDI 點(diǎn)亮、LED2 滅,甲機(jī)的 k2 按鍵控制 乙機(jī)的 LED1

這篇具有很好參考價值的文章主要介紹了甲、乙機(jī)之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機(jī)的 k1 按鍵可通過串行口控制乙機(jī)的 LEDI 點(diǎn)亮、LED2 滅,甲機(jī)的 k2 按鍵控制 乙機(jī)的 LED1。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(原創(chuàng))Proteus 虛擬仿真。甲、乙機(jī)之間采用方式 1 雙向串行通信,具體要求如下:

(1)甲機(jī)的 k1 按鍵可通過串行口控制乙機(jī)的 LEDI 點(diǎn)亮、LED2 滅,甲機(jī)的 k2 按鍵控制乙機(jī)的 LED1 滅、LED2 點(diǎn)亮,甲機(jī)的 k3 按鍵控制乙機(jī)的 LED1和 LED2 全亮。

(2)乙機(jī)的 K4 按鍵可控制串行口向甲機(jī)發(fā)送 k4按鍵接下的次數(shù),并顯示在甲機(jī) P0 口的數(shù)碼管上。

【附上本實(shí)驗(yàn)的全部資源鏈接(代碼+仿真文件)

點(diǎn)擊前往下載】

仿真圖

甲、乙機(jī)之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機(jī)的 k1 按鍵可通過串行口控制乙機(jī)的 LEDI 點(diǎn)亮、LED2 滅,甲機(jī)的 k2 按鍵控制 乙機(jī)的 LED1

以下是實(shí)驗(yàn)代碼(分甲乙兩機(jī)程序 不會編寫請移步資源下載 里邊是全部代碼和仿真文件)

//甲機(jī)
#include<reg51.h>
unsigned char j=10;
char sign=1;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
void delay(unsigned char k){
	unsigned char i,j,h;
	for(h=0;h<k;h++){
		for(i=0;i<25;i++){
			for(j=0;j<20;j++);
		}
	}
}
void twoDigitDisplay(unsigned char num,unsigned char time,unsigned char portNumber){
	unsigned char box[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xf82,0xf8,0x80,0x90};
	unsigned char k;
	if(portNumber==0){
		if(num<0||num>99||time<0){
			for(k=0;k<40;k++){
				P2=0x00;
			}	
		}else{		
			for(k=0;k<time;k++){
				unsigned char numR = num%10;
				unsigned char numL = num/10;
				P2=0x11;
				P0=box[numL];
				delay(12);
				P2=0x22;
				P0=box[numR];
				delay(12);
			}
		}
	}	
}
void main(){
	unsigned char sum=0;
	TR0=1;
	EA=1;
	ET0=1;
	TMOD=0x21;
	TH0=0xee;
	TL0=0x00;
	
	while(1){
		if(sign==1){
			//執(zhí)行數(shù)據(jù)發(fā)送
			TR1=1;
			TMOD=0x20;
			TL1=0xfd;
			TH1=0xfd;
			SCON=0x40;
			PCON=0x00;
		}
		while(sign==1){
			//發(fā)送數(shù)據(jù)SBUF
			if(P10==0){SBUF=0xfe;while(TI==0);TI=0;continue;}				
			if(P11==0){SBUF=0xfd;while(TI==0);TI=0;continue;}				
			if(P12==0){SBUF=0xfc;while(TI==0);TI=0;continue;}				
			SBUF=0xff;
		}
		if(sign==-1){
			//執(zhí)行數(shù)據(jù)接收
			TR1=1;
			TL1=0xfd;
			TH1=0xfd;
			SCON=0x50;
			PCON=0x00;
		}
		while(sign==-1){
			//接收數(shù)據(jù)SBUF
			if(SBUF==0xf0){
				sum++;
				twoDigitDisplay(sum,5,0);
			}
			if(SBUF==0x0f){
				twoDigitDisplay(sum,5,0);
			}
		}
	}
}
void int0() interrupt 1 {
	j--;
	if(j==0){
		TF0=0;
		TH0=0xee;
		TL0=0x00;
		sign=sign*(-1);			
		j=10;					
	}	
}
//乙機(jī)
#include<reg51.h>
unsigned char j=10;
char sign=1;
sbit P10=P1^0;
void main(){
	unsigned char increment=0;
	TR0=1;
	EA=1;
	ET0=1;
	TMOD=0x21;
	TH0=0xee;
	TL0=0x00;
	if(sign==1){
		//執(zhí)行數(shù)據(jù)接收
		TR1=1;
		TL1=0xfd;
		TH1=0xfd;
		TMOD=0x20;
		SCON=0x50;
		PCON=0x00;
	}
	while(sign==1){
		//接收數(shù)據(jù)SBUF
		P2=SBUF;
	}
	if(sign==-1){
		//執(zhí)行數(shù)據(jù)發(fā)送
		TR1=1;
		TL1=0xfd;
		TH1=0xfd;
		SCON=0x40;
		PCON=0x00;
	}
	while(sign==-1){
		//發(fā)送數(shù)據(jù)SBUF
		if(P10==0){
			SBUF=0xf0;
			while(TI==0);TI=0;
		}else{
			SBUF=0x0f;
			while(TI==0);TI=0;
		}
	}
}
void int0() interrupt 1 {
	j--;
	if(j==0){
		TF0=0;
		TH0=0xee;
		TL0=0x00;
		sign=sign*(-1);			
		j=10;					
	}	
}

實(shí)驗(yàn)心得

1.程序的核心思想

本程序采用定時中斷it0 定時,每隔50ms兩機(jī)轉(zhuǎn)換一次接收和發(fā)送狀態(tài)。甲機(jī)開始默認(rèn)執(zhí)行發(fā)送,乙機(jī)默認(rèn)接收。雙機(jī)定時一致,到了時間后甲機(jī)由發(fā)送轉(zhuǎn)為接收。乙機(jī)由接收轉(zhuǎn)為發(fā)送。這樣可保證雙機(jī)步調(diào)完全相反。但推測:采用這樣的方法,機(jī)器長時間運(yùn)行,雙機(jī)步調(diào)將逐漸不協(xié)調(diào)。達(dá)不到長期使用的目的。

① 甲機(jī)發(fā)送數(shù)據(jù):甲機(jī)發(fā)送的數(shù)據(jù)SBUF由P1端口的三個開關(guān)的狀態(tài)控制,交由乙機(jī)接收。
② 乙機(jī)接收數(shù)據(jù):乙機(jī)接收甲機(jī)傳送的SBUF,對其進(jìn)行選擇判斷,從而讓甲機(jī)P0端口的LED燈展示不同的效果。
③ 乙機(jī)發(fā)送數(shù)據(jù):乙機(jī)在每次執(zhí)行發(fā)送任務(wù)時,都會向甲機(jī)發(fā)送一個0xf0或者0x0f,默認(rèn)為0xf0但當(dāng)乙機(jī)的p10端口按鈕按下時,乙機(jī)就會發(fā)送另外一個數(shù)據(jù)0x0f,交付甲機(jī)。
④ 甲機(jī)接收數(shù)據(jù):甲機(jī)根據(jù)乙機(jī)穿來的數(shù)據(jù)SBUF的值作出判斷。如果是0x0f, sum變量自增一然后用twoDigitDisplay(sum,5,0) 函數(shù)進(jìn)行顯示。如果是0xf0 ,sum變量值不增,直接交給twoDigitDisplay(sum,5,0) 函數(shù)顯示。

2.實(shí)驗(yàn)中遇到的問題

由于編程較為匆忙,實(shí)驗(yàn)未將switch替換成button,導(dǎo)致開關(guān)k1到k3按下時必須手動斷開才能進(jìn)行下次狀態(tài)的切換。而且數(shù)碼管顯數(shù)會有微小的閃爍,推測延時函數(shù)delay參數(shù)設(shè)置存在問題。
感興趣的朋友可以繼續(xù)改進(jìn),歡迎與我交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-482990.html

本文完全原創(chuàng) 請尊重勞動果實(shí) 歡迎轉(zhuǎn)發(fā) 點(diǎn)贊 不定時更新更多單片機(jī)實(shí)驗(yàn)內(nèi)容。

最后附上本實(shí)驗(yàn)的全部資源鏈接(代碼+仿真文件)

點(diǎn)擊前往下載

到了這里,關(guān)于甲、乙機(jī)之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機(jī)的 k1 按鍵可通過串行口控制乙機(jī)的 LEDI 點(diǎn)亮、LED2 滅,甲機(jī)的 k2 按鍵控制 乙機(jī)的 LED1的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ENSP:三個路由器兩臺主機(jī),要求兩臺主機(jī)之間可以通信

    ENSP:三個路由器兩臺主機(jī),要求兩臺主機(jī)之間可以通信

    首先配置兩臺主機(jī)的IP PC1 PC2 重命名三臺路由設(shè)備并配置端口IP: R1 R2 R3 下面進(jìn)行配置關(guān)鍵步驟,路由之間的連通 ps:設(shè)置路由之間的聯(lián)通命令是 ip route-static 目標(biāo)網(wǎng)段 子網(wǎng)掩碼 下一跳IP 在此處需要注意的是主機(jī)與自己的路由之間是不用管的,默認(rèn)設(shè)置好網(wǎng)關(guān)后就是通的,而不

    2024年02月12日
    瀏覽(16)
  • python模塊websockets,瀏覽器與服務(wù)器之間的雙向通信

    一、簡介 WebSocket是一種在Web瀏覽器和服務(wù)器之間進(jìn)行實(shí)時雙向通信的協(xié)議。它通過建立一條持久的連接,允許服務(wù)器主動向客戶端推送數(shù)據(jù),實(shí)現(xiàn)實(shí)時性和雙向通信的能力。 與傳統(tǒng)的HTTP請求-響應(yīng)模式不同,WebSocket提供了一個長時間運(yùn)行的連接,可以在客戶端和服務(wù)器之間進(jìn)

    2024年02月21日
    瀏覽(19)
  • Linux系統(tǒng)編程:采用管道的方式實(shí)現(xiàn)進(jìn)程間通信

    Linux系統(tǒng)編程:采用管道的方式實(shí)現(xiàn)進(jìn)程間通信

    目錄 一.?進(jìn)程間通信概述 二.?管道的概念? 三.?通過管道實(shí)現(xiàn)進(jìn)程間通信 3.1?實(shí)現(xiàn)原理 3.2?匿名管道創(chuàng)建系統(tǒng)接口pipe 3.3?管道通信的模擬實(shí)現(xiàn) 3.4?管道通信的訪問控制規(guī)則 3.5?管道通信的特點(diǎn) 四.?通過匿名管道實(shí)現(xiàn)進(jìn)程池 4.1?進(jìn)程池的概念 4.2?進(jìn)程池的模擬實(shí)現(xiàn) 五.?命名

    2024年02月12日
    瀏覽(24)
  • vue組件之間通信方式

    一、全局事件總線 范圍 :任意組件間 步驟 :1、創(chuàng)建事件總線 第一種方式:通過自定義事件總線方式 局部引用 第二種方式:通過原型綁定 main.js 局部引用 解綁事件 二、props和$emit 范圍 :父子組件間 父組件 子組件 三、Vuex(狀態(tài)管理) 范圍 :多個組件之間共享狀態(tài),可以

    2024年03月10日
    瀏覽(20)
  • 微服務(wù)之間的通信方式

    目錄 微服務(wù)之間的通信方式 根據(jù)場景選擇對應(yīng)的通信方式 異步通信區(qū)別與選擇 .Net示例 java示例 微服務(wù)之間的通信方式常見的有以下幾種: 同步通信:微服務(wù)之間通過請求-響應(yīng)的方式進(jìn)行通信,例如RESTful API和RPC。通信過程中,請求方需要等待響應(yīng)方的返回結(jié)果,因此可靠

    2024年02月05日
    瀏覽(19)
  • Java線程之間通信方式

    Java線程之間通信方式

    在實(shí)際開發(fā)時,一個進(jìn)程中往往有很多個線程,大多數(shù)線程之間往往不是絕對獨(dú)立的,比如說我們需要將A和B 兩個線程的執(zhí)行結(jié)果收集在一起然后顯示在界面上,又或者比較典型的消費(fèi)者-生產(chǎn)者模式,在這些場景下,線程間通信成了我們必須使用的手段,那么線程之間怎么通

    2024年02月09日
    瀏覽(20)
  • vue 組件之間通信的方式

    1.父向子版? 父組件設(shè)置自定義屬性 子組件props接收 2.子向父版 父組件設(shè)置自定義方法并綁定接收的方法 子組件觸發(fā)方法 ?3.全局事件總線?? 4.Vuex 用這個的話首先要裝包或者創(chuàng)建工程的時候選擇這個選項(xiàng)手腳架會給你裝好 5.路由 抽象一點(diǎn)說路由也算通信方式的一種吧 這種

    2024年01月18日
    瀏覽(22)
  • 【Docker】docker中容器之間通信方式

    【Docker】docker中容器之間通信方式

    點(diǎn)擊跳轉(zhuǎn):Docker安裝MySQL、Redis、RabbitMQ、Elasticsearch、Nacos等常見服務(wù)全套(質(zhì)量有保證,內(nèi)容詳情) 容器重啟后,ip會發(fā)生變化。通過容器ip訪問不是一個好的方案。 通過宿主機(jī)的 ip:port 訪問,只能依靠監(jiān)聽在暴露出的端口的進(jìn)程來進(jìn)行有限的通信。 容器之間通信不能用 l

    2024年02月15日
    瀏覽(19)
  • AI生成--Vue組件之間通信方式有哪些

    Vue組件之間通信方式有以下幾種: 父子組件通信:父組件可以通過props傳遞數(shù)據(jù)給子組件,子組件通過$emit觸發(fā)事件通知父組件。 兄弟組件通信:可以通過共同的父組件作為中介,兄弟組件通過 e m i t 和 emit和 e mi t 和 on觸發(fā)和監(jiān)聽事件實(shí)現(xiàn)通信。 跨級組件通信:可以使用p

    2024年02月08日
    瀏覽(16)
  • 07-Vue技術(shù)棧之(組件之間的通信方式)

    07-Vue技術(shù)棧之(組件之間的通信方式)

    前言: 組件之間通信的方式有很多種,比如 props 、 自定義事件 、 全局事件總線 、 消息訂閱與發(fā)布 、 父鏈與子組件索引 、 插槽 、 Vuex 等都可以實(shí)現(xiàn)組件之間的通信。在這里我將介紹以下三種通信方式。 它是一種組件間通信的方式,適用于: 子組件 === 父組件 使用場景

    2024年02月07日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包