• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的擴(kuò)展接線【2764,6264,8255,0832,0809】(仿真)

01/15 09:36
1120
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

有需要資料的可了解一下.docx

共1個(gè)文件

功能要求:

鍵盤、顯示界面(已有,保持不變)。

擴(kuò)展A/D接口,芯片ADC0809 ,

擴(kuò)展D/A接口,芯片為DAC0832,設(shè)計(jì)為一 級緩存。

擴(kuò)展一片8255,作系統(tǒng)的I/O接口,A口作 輸人,其一路為光耦隔離輸入。B口作輸出, 其中一路為光耦隔離輸出帶12V單刀繼電器

用普通三端穩(wěn)壓器芯片,設(shè)汁上述各接口 電路所需的各種電源,用多次級線包繞組 的一只變壓器供電。

簡單說明主要設(shè)計(jì)指標(biāo),如A/D為多少位,轉(zhuǎn)換時(shí)間等。

每個(gè)接口必須標(biāo)明地址,所有擴(kuò)展需譯碼 地址時(shí)只能用系統(tǒng)138芯片提供的地址空間, 不準(zhǔn)用線選譯碼。

define	PA1 XBYTE[0X9FFC]//8255
#define	PB1 XBYTE[0X9FFD]
#define	PC1 XBYTE[0X9FFE]
#define	PD1 XBYTE[0X9FFF]
#define	PA2 XBYTE[0X7FFC]//8255
#define	PB2 XBYTE[0X7FFD]
#define	PC2 XBYTE[0X7FFE]
#define	PD2 XBYTE[0X7FFF]
#define	ADC0 XBYTE[0X3FF8]//adc
#define	ADC1 XBYTE[0X3FF9]
#define	ADC2 XBYTE[0X3FFA]
#define	ADC3 XBYTE[0X3FFB]
#define	ADC4 XBYTE[0X3FFC]
#define	ADC5 XBYTE[0X3FFD]
#define	ADC6 XBYTE[0X3FFE]
#define	ADC7 XBYTE[0X3FFF]
sbit led1=P1^4;//LED
sbit led2=P1^5;
sbit led3=P1^6;
sbit led4=P1^7;

//數(shù)碼管編碼
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar time=0,mode=0;//系統(tǒng)變量

//延時(shí)
void delay(uint i)
{
	while(i--);
}
//按鍵檢測
void key_scan()
{
	uchar i=0,j=0,k=0;
	PD1=0x81;
	delay(100);
	PC1=0;
	i=PC1;
	if((i & 0x0f)<0x0f) //按鍵按下
	{	
		switch(i & 0x0f)
		{
			case 0x0e:j=0;break;
			case 0x0d:j=1;break;
			case 0x0b:j=2;break;
			case 0x07:j=3;break;
		}
		PD1=0x88;
		delay(100);
		PC1=0;
		i=PC1;
		switch(i & 0xf0)
		{
			case 0xe0:k=1;break;
			case 0xd0:k=5;break;
			case 0xb0:k=9;break;
			case 0x70:k=13;break;
		}
		if(j+k>0)
		{	
			if(j+k<11)
				PA1=smgduan[j+k-1];
			if(j+k==13)
				led1=!led1;
			if(j+k==14)
				led2=!led2;
			if(j+k==15)
				led3=!led3;
			if(j+k==16)
				led4=!led4;
		}
		while((PC1 & 0xf0)<0xf0);
	}
}
void main()	//主函數(shù)
{
	PD1=0x80;
	PD2=0x90;
	PA1=smgduan[0];
	TMOD|=0X01;
	TH0=(65536-50000)/256;//50ms
	TL0=(65536-50000)%256;	
	ET0=1;//打開定時(shí)器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時(shí)器
	while(1)
	{
		DAC=ADC0;//把AD值輸出到DA
		PB2=PA2;//光耦控制
		delay(50000);
		key_scan();//按鍵檢測
	}
}

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!