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

AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答)

這篇具有很好參考價(jià)值的文章主要介紹了AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答),單片機(jī),嵌入式硬件

?說(shuō)一下功能:客戶機(jī)發(fā)送0x01到服務(wù)機(jī)

2服務(wù)單片機(jī)應(yīng)答0xf2到客戶機(jī)

3客戶機(jī)接收到0xf2,發(fā)送信息153432這6個(gè)數(shù)字到服務(wù)機(jī)

4client發(fā)送完信息后發(fā)送0xaa結(jié)束通信

5server接收到0xaa后回復(fù)0xaa結(jié)束通信,從此老死不相往來(lái)

看代碼:

//發(fā)送端代碼

#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
long int sleep_i=0;
long int main_i=0;
int bufferc[6]={0};
uchar tag=0;
void test()
{
	P17=0;
}
void main()
{
	uchar sendx[6]={1,5,3,4,3,2};
	sleep(1000);
	TMOD=0x20;//采用初值自動(dòng)重載的方式
	TH1=0XF4;//根據(jù)波特率計(jì)算公式這里需要設(shè)置為這么多才能夠在串行數(shù)據(jù)傳輸模式1的狀況下實(shí)現(xiàn)波特率2400B/S
	TL1=0XF4;
	TR1=1;//啟動(dòng)定時(shí)器開(kāi)始計(jì)時(shí)
	SCON=0X40;
	REN=1;
	EA=1;
	ES=1;
	SBUF=0x01; //發(fā)送01
	while(TI==0);
//	test();
	for(;;)
	{
			if(tag==1)break;
	}
	if(tag==1)
		{
		EA=0;
		for(main_i=0;main_i<6;main_i++)
		{
			SBUF=sendx[main_i];
			while(TI==0);
			TI=0;
		}
		EA=1;
		tag=0;
	}
	SBUF=0XAA;
	while(1);
}

void int_4() interrupt 4
{
	EA=0;
	if(SBUF==0X01) 
	{
		;//while(RI==0);
	}
	else if(SBUF==0XF2)  
	{
		tag=1;
	}
	else if(SBUF==0Xaa)
	{
		
		if(TI==1)
		{
			;
		}
		else if(RI==1)  
		{
			REN=0;
		}
	}
	else
	{
		;
	}
	RI=0;TI=0;
	EA=1;
}


void sleep(long int a)
{
	for(sleep_i=0;sleep_i<a;sleep_i++)
	{
		;
	}
}

服務(wù)端代碼:

#include "reg51.h"
#include "myheader.h"
#define uchar unsigned char
int szc[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int bufferc[6]={0};
int sza[6]={0x01,0x02,0x04,0x08,0x10,0x20};
int t=0;
int i=0;
void display()   //顯示設(shè)備沒(méi)有問(wèn)題,因?yàn)榭梢灾覍?shí)的顯示出012345  如果是顯示異常比如是數(shù)據(jù)出問(wèn)題:bufferc[6]數(shù)據(jù)出了問(wèn)題
{									//設(shè)備全部顯示0,說(shuō)明bufferc[6]沒(méi)有被賦值  ,找到賦值bufferc語(yǔ)句
	uchar i=0;
	uchar num=0;
	for(i=0;i<6;i++)  //顯示異常,只能顯示一個(gè)數(shù)字P1角有問(wèn)題
	{
		num=bufferc[i];  //bufferc【】數(shù)據(jù)異常,0位置:3  1位:4  2位:5  3位置:6    4位置:后面都是0 也就是說(shuō)1,2都被另外那個(gè)東西給截住了
		P2=szc[num];
		P1=sza[i];
		sleep(1);
		P2=0xff;
	}
}

void test()
{
	P17=0;
}

void main()
{
	TMOD=0x20;
	TH1=0XF4;//根據(jù)波特率計(jì)算公式這里需要設(shè)置為這么多才能夠在串行數(shù)據(jù)傳輸模式1的狀況下實(shí)現(xiàn)波特率2400B/S
	TL1=0XF4;
	TR1=1;
	SCON=0x40;//串口工作與方式1,定義了傳送數(shù)據(jù)的格式
	EA=1;
	ES=1;   //串口中斷開(kāi)關(guān)打開(kāi)
	REN=1;
	while(1)
	{
		display();
	}
}

void int_4() interrupt 4
{
	static uchar first=0;
	EA=0;
	t=SBUF;
	if(t==0x01&&first==0)
	{
		first++;
		SBUF=0xF2;
		while(TI==0);
		TI=0;
	}
	else if(SBUF==0XF2)
	{
		first++;
	}
	else if(SBUF==0Xaa)
	{
		//需要判斷是接收的0XAA,還是發(fā)送的0xaa
		if(RI==1)//接收的0xaa
		{
			SBUF=0XAA;
			while(TI==0);
		}
		else if(TI==1)
		{
			REN=0;		
		}
	}
	else if(RI==1)
		{
			bufferc[i]=SBUF;
			i++;
	}
	if(RI==1&&TI==0)RI=0;
	if(TI==1&&RI==0)TI=0;
	EA=1;
}

void sleep(long int a)
{
	uchar i=0;
	for(i=0;i<a;i++)
	{
		;
	}
}

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-643975.html

?

到了這里,關(guān)于AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 單片機(jī)AT89C51六位數(shù)碼管秒表

    單片機(jī)AT89C51六位數(shù)碼管秒表

    詳細(xì)代碼討論加我QQ:1271370903 ??本設(shè)計(jì)的數(shù)字電子秒表系統(tǒng)采用AT89C51單片機(jī)為中心器件,利用其定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,結(jié)合顯示電路、LED數(shù)碼管以及外部中斷電路來(lái)設(shè)計(jì)計(jì)時(shí)器。將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠?qū)崿F(xiàn)LED顯示,顯示時(shí)間為0~9999.99秒,計(jì)時(shí)

    2024年02月03日
    瀏覽(513)
  • 基于AT89C51單片機(jī)的溫度檢測(cè)報(bào)警設(shè)計(jì)

    基于AT89C51單片機(jī)的溫度檢測(cè)報(bào)警設(shè)計(jì)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87777752?spm=1001.2014.3001.5503 源碼獲取 主要內(nèi)容: 基于51單片機(jī)設(shè)計(jì)一個(gè)溫度檢測(cè)報(bào)警器,至少具有以下功能:溫度的檢測(cè)和超過(guò)設(shè)定值時(shí)的報(bào)警功能 基本要求: 1、功能齊全,要配有功能說(shuō)明;

    2024年02月03日
    瀏覽(18)
  • 基于AT89C51單片機(jī)的交通燈設(shè)計(jì)

    基于AT89C51單片機(jī)的交通燈設(shè)計(jì)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87779238?spm=1001.2014.3001.5503 源碼獲取 主要內(nèi)容: 在日常生活中,交通燈是一項(xiàng)必不可少的公共設(shè)施,可 以維護(hù)道路的暢通和交通的秩序。如若交通燈發(fā)生故障,那 么后果可想而知。因此,交通燈

    2024年02月08日
    瀏覽(24)
  • 基于AT89C51單片機(jī)的電子萬(wàn)年歷系統(tǒng)

    基于AT89C51單片機(jī)的電子萬(wàn)年歷系統(tǒng)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87708258 源碼獲取 主要內(nèi)容: 電子萬(wàn)年歷系統(tǒng)以實(shí)時(shí)時(shí)鐘芯片DS1302和AT89C52單片機(jī)為主要研究對(duì)象,著重進(jìn)行51單片機(jī)控制系統(tǒng)的設(shè)計(jì)研究和如何讀取DS1302內(nèi)部時(shí)鐘信息的研究。以及運(yùn)用18B20進(jìn)行實(shí)

    2024年02月09日
    瀏覽(27)
  • 基于AT89C51單片機(jī)的電子時(shí)鐘設(shè)計(jì)與仿真

    基于AT89C51單片機(jī)的電子時(shí)鐘設(shè)計(jì)與仿真

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87779867?spm=1001.2014.3001.5503 源碼獲取 主要內(nèi)容: 使用DS1302芯片作為計(jì)時(shí)設(shè)備,用6個(gè)7段LED數(shù)碼管或者LCD162作為顯示設(shè)備,實(shí)現(xiàn)時(shí)鐘功能; 基本要求: (1)可以分別設(shè)定小時(shí)、分鐘和秒,復(fù)位后時(shí)

    2024年02月06日
    瀏覽(24)
  • 基于AT89C51單片機(jī)的倒數(shù)計(jì)時(shí)器設(shè)計(jì)

    基于AT89C51單片機(jī)的倒數(shù)計(jì)時(shí)器設(shè)計(jì)

    1.設(shè)計(jì)任務(wù) 利用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)簡(jiǎn)易的數(shù)字電壓表,設(shè)計(jì)的系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單,實(shí)現(xiàn)了智能化、數(shù)字化。 本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合 周邊 電路組成 LED 彩燈的 閃爍 控制系統(tǒng)器,用來(lái)控制 紅色 的LED 閃爍 發(fā)光,實(shí)現(xiàn) LED燈在倒計(jì)時(shí)結(jié)束后

    2024年02月03日
    瀏覽(30)
  • 畢業(yè)設(shè)計(jì) 單片機(jī)推箱子游戲(AT89C51)

    畢業(yè)設(shè)計(jì) 單片機(jī)推箱子游戲(AT89C51)

    一、電路設(shè)計(jì) 此電路由AT89C51最小系統(tǒng)、LCD12864顯示模塊、74LS08芯片和四個(gè)獨(dú)立按鍵組成。 LCD12864顯示模塊 帶中文字庫(kù)的128X64 是一種具有4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體 中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置

    2024年02月21日
    瀏覽(94)
  • 單片機(jī)設(shè)計(jì)_8路搶答器(AT89C51)

    單片機(jī)設(shè)計(jì)_8路搶答器(AT89C51)

    想要更多項(xiàng)目私wo!!! ? ? ? ? 此電路由AT89C51最小系統(tǒng)、四位數(shù)碼管、蜂鳴器電路和按鍵模塊組成。 運(yùn)行原理: ????????該搶答器電路可同時(shí)進(jìn)行八路優(yōu)先搶答。按鍵按下后,蜂鳴器發(fā)聲,同時(shí)數(shù)碼管 顯示優(yōu)先搶答者的號(hào)碼,搶答成功后,再按按鍵,顯示不會(huì)改變,除非

    2024年02月11日
    瀏覽(43)
  • 基于AT89C51單片機(jī)的簡(jiǎn)易計(jì)算機(jī)設(shè)計(jì)

    基于AT89C51單片機(jī)的簡(jiǎn)易計(jì)算機(jī)設(shè)計(jì)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87715642?spm=1001.2014.3001.5503 源碼獲取 主要內(nèi)容: 本設(shè)計(jì)是以單片機(jī)AT89C51為核心的簡(jiǎn)易計(jì)算器設(shè)計(jì),要通過(guò)芯片AT89C51實(shí)現(xiàn)計(jì)算器程序運(yùn)行來(lái)完成加、減、乘和除的簡(jiǎn)單計(jì)算功能。 基本要求: 1、采

    2024年02月08日
    瀏覽(26)
  • 基于AT89C51單片機(jī)的電子秒表設(shè)計(jì)與仿真

    基于AT89C51單片機(jī)的電子秒表設(shè)計(jì)與仿真

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87775018添加鏈接描述 源碼獲取 主要內(nèi)容: 設(shè)計(jì)一個(gè)電子秒表,至少具有以下功能:開(kāi)始/暫停、記錄、復(fù)位等。設(shè)計(jì)方案主要分為實(shí)驗(yàn)的系統(tǒng)分析,具體的設(shè)計(jì)方案,以及最終的測(cè)試,最終完成實(shí)

    2024年02月16日
    瀏覽(35)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包