proteus單片機教學講解課件_第1頁
proteus單片機教學講解課件_第2頁
proteus單片機教學講解課件_第3頁
proteus單片機教學講解課件_第4頁
proteus單片機教學講解課件_第5頁
已閱讀5頁,還剩637頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章基于PROTEUSISIS的

單片機電路仿真7.1單片機最小系統(tǒng)實訓7.2模擬汽車轉向燈控制實訓7.3基于LED數(shù)碼管的簡易秒表設計實訓7.4電子廣告牌實訓

7.5數(shù)碼管動態(tài)顯示實訓7.6中斷掃描方式的矩陣式鍵盤設計實訓

第7章基于PROTEUSISIS的

7.7模擬交通燈控制實訓

7.8液晶顯示控制實訓

7.9A/D轉換接口技術實訓

7.10D/A轉換接口技術實訓

7.11雙機通信技術實訓

7.12單片機課程設計

7.7模擬交通燈控制實訓

7.8液晶顯示控制7.1單片機最小系統(tǒng)實訓

本實訓通過51單片機控制一個簡單的LED燈,實現(xiàn)閃爍功能,并將程序編譯下載到單片機中,從而使單片機工作起來。單片機最小系統(tǒng)實訓圖如圖7.1.1所示,所用元件清單如表7.1.1所示。7.1單片機最小系統(tǒng)實訓

本實訓通過51單片機圖7.1.1單片機最小系統(tǒng)實訓圖圖7.1.1單片機最小系統(tǒng)實訓圖proteus單片機教學講解課件程序代碼為:

#include<reg51.h>

sbitP1_0=P1^0;

voiddelay(unsignedchari);

voidmain()

{while(1)

{P1_0=0;

delay(255);

P1_0=1;程序代碼為:

#include<reg51.h>

delay(255);

}

}

voiddelay(unsignedchari)

{unsignedcharj,k;

for(k=0;k<i;k++)

for(j=0;j<255;j++);

}delay(255);

}

}

v在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-1-1.hex,雙擊AT89C51,將彈出如圖7.1.2所示的對話框。在圖7.1.2中添加十六進制文件7-1-1.hex,點擊“OK”即可。最后進行仿真,可發(fā)現(xiàn)LED燈按要求實現(xiàn)了閃爍功能。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.1.2添加十六進制文件圖7.1.2添加十六進制文件7.2模擬汽車轉向燈控制實訓

安裝在汽車不同位置的信號燈是汽車駕駛員之間及駕駛員向行人傳遞汽車行駛狀況的工具,一般包括轉向燈、剎車燈、倒車燈等。其中轉向燈包括左轉燈和右轉燈,其狀態(tài)表示的意義如表7.2.1所示。7.2模擬汽車轉向燈控制實訓

安裝在proteus單片機教學講解課件本實訓利用PROTEUS模擬汽車轉向燈控制,其中開關S0、S1模擬駕駛員發(fā)出命令,若開關狀態(tài)為0,則表示開關斷開,反之閉合。其實訓圖如圖7.2.1所示,所用元件清單如表7.2.2所示。本實訓利用PROTEUS模擬汽車轉向燈控制,其中開關S0圖7.2.1模擬汽車轉向燈控制實訓圖圖7.2.1模擬汽車轉向燈控制實訓圖proteus單片機教學講解課件在上述電路圖中,開關S0、S1模擬駕駛員命令,發(fā)光二極管D1、D2模擬左轉燈和右轉燈,兩者之間的關系如表7.2.1所示。利用開關S0、S1的狀態(tài)即可控制D1和D2的狀態(tài)。程序代碼為:在上述電路圖中,開關S0、S1模擬駕駛員命令,發(fā)光二極管#include<reg51.h>

sbitP1_0=P1^0;

sbitP1_1=P1^1;

sbitP3_0=P3^0;

sbitP3_1=P3^1;

voiddelay(unsignedchari);

voidmain()#include<reg51.h>

sbitP1{

bitleft,right;

while(1)

{

P3_0=1;

P3_1=1;

left=P3_0;

right=P3_1;

switch(P3){

bitleft,right;

{

case0xfc:P1_0=1,P1_1=1;break;

case0xfd:P1_0=0,P1_1=1;break;

case0xfe:P1_0=1,P1_1=0;break;

case0xff:P1_0=0,P1_1=0;break;

}

delay(255);

P1_0=1;

P1_1=1;

delay(255);{

case0xfc:}

}

voiddelay(unsignedchari)

{

unsignedcharj,k;

for(k=0;k<i;k++)

for(j=0;j<255;j++);

}}

}

voiddelay(unsigne在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-2-1.hex,雙擊AT89C51,將彈出如圖7.2.2所示的對話框。在圖7.2.2中添加十六進制文件7-2-1.hex,點擊“OK”即可。最后進行仿真,可實現(xiàn)表7.2.1的所有功能。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.2.2添加十六進制文件圖7.2.2添加十六進制文件7.3基于LED數(shù)碼管的簡易秒表設計實訓

利用51單片機控制1個LED數(shù)碼管,依次循環(huán)顯示0~9,顯示間隔時間為1s,即可實現(xiàn)一位數(shù)的簡易秒表?;贚ED數(shù)碼管的簡易秒表設計實訓圖如圖7.3.1所示,所用元件清單如表7.3.1所示。7.3基于LED數(shù)碼管的簡易秒表設計實訓

利用圖7.3.1基于LED數(shù)碼管的簡易秒表設計實訓圖7.3.1基于LED數(shù)碼管的簡易秒表設計實訓proteus單片機教學講解課件在上述電路圖中,利用單片機的P2口控制一個共陽極LED數(shù)碼管,向P2口輸出相應字型碼即可顯示數(shù)字0~9。對于共陽極數(shù)碼管,當連接段控制端的I/O引腳輸出低電平時,相應段的發(fā)光管點亮。程序代碼為:在上述電路圖中,利用單片機的P2口控制一個共陽極LED數(shù)#include<reg51.h>

unsignedchar

led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//定義數(shù)組led存放數(shù)字0~9的字型碼

voiddelay1s(?)//采用定時器1實現(xiàn)1s的延時

{

unsignedchari;

for(i=0;i<20;i++)//設置循環(huán)次數(shù)為20#include<reg51.h>

unsigned{

TH1=0x3c;//設置定時器初值為3CBOH

TL1=0xb0;

TR1=1;//啟動定時器T1

while(!TF1);//查詢計數(shù)是否溢出,即50ms時間到

則TF1=1

TF1=0;//將溢出標志位TF1清零

}

}{

voidmain(?)//主函數(shù)

{

unsignedchari;

TMOD=0x10;//設置定時器1在工作方式1

while(1)voidmain(?)//主函數(shù)

{

{

for(i=0;i<10;i++)

{

P2=led[i]; //字型碼送段控制口P1

delay1s(?); //延時1s

}

}

}{

for(i=0;i<10;i++)

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-3-1.hex,雙擊AT89C51,將彈出如圖7.3.2所示的對話框。在圖7.3.2中添加十六進制文件7-3-1.hex,點擊“OK”即可。最后進行仿真,可實現(xiàn)每隔1s依次循環(huán)顯示數(shù)字0~9。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.3.2添加十六進制文件圖7.3.2添加十六進制文件7.4電子廣告牌實訓

利用51單片機控制1個8?×?8LED點陣顯示模塊,依次循環(huán)顯示0~9,顯示間隔時間為1s,實現(xiàn)一位數(shù)的簡易秒表。電子廣告牌實訓圖如圖7.4.1所示,所用元件清單如表7.4.1所示。7.4電子廣告牌實訓

利圖7.4.1電子廣告牌實訓圖圖7.4.1電子廣告牌實訓圖proteus單片機教學講解課件LED點陣顯示是把很多LED按矩陣方式排列在一起,通過對各LED發(fā)光與不發(fā)光的控制來完成各種字符或圖形的顯示。8×8LED點陣分別由8行和8列來控制。在圖7.3.1中,用單片機的P1口控制點陣屏的8行,用P0口控制點陣屏的

8列。LED點陣顯示是把很多LED按矩陣方式排列在一起,通過對實際應用中,P0口用于控制列線,需串聯(lián)一個300左右的限流電阻。同時,為了提高單片機端口帶負載的能力,通常在端口和外接負載之間增加一個緩沖驅動器。圖7.4.1中P1口通過74LS245與點陣連接,既保證了點陣的亮度,又能保護單片機的引腳。其程序代碼為:實際應用中,P0口用于控制列線,需串聯(lián)一個300左右#include<reg51.h>

voiddelay(unsignedchari)

{unsignedchark,j;

for(k=0;k<i;k++)

for(j=0;j<255;j++);

}#include<reg51.h>

voiddelvoiddelay1ms(?)//軟件實現(xiàn)延時1ms

{unsignedchari;

for(i=0;i<0x10;i++);

}

voidmain(?)voiddelay1ms(?)//軟件實現(xiàn)延時{unsignedcharcodeled[]={0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00,//0

0x08,0x18,0x28,0x08,0x08,0x08,0x3e,0x00,//1

0x00,0x18,0x24,0x24,0x08,0x10,0x3c,0x00,//2

0x00,0x18,0x24,0x04,0x18,0x04,0x24,0x18,//3

0x00,0x08,0x10,0x28,0x48,0x3e,0x08,0x00,//4

0x00,0x2c,0x20,0x28,0x04,0x24,0x18,0x00,//5

0x08,0x10,0x20,0x38,0x24,0x24,0x18,0x00,//6{unsignedcharcodeled[]={0x00,0x3c,0x04,0x08,0x10,0x10,0x10,0x00,//7

0x00,0x18,0x24,0x24,0x18,0x24,0x24,0x18,//8

0x00,0x18,0x24,0x24,0x1c,0x04,0x24,0x18};//9

unsignedcharw;

unsignedintj,k,l,m;

while(1)0x00,0x3c,0x04,0x08,0x{for(j=0;j<10;j++) //字符個數(shù)控制變量

{for(k=0;k<1000;k++) //每個字符掃描1000次,控制每

個字符的顯示時間

{w=0x01; //行變量指向第一行

l=j*8;

for(m=0;m<8;m++){for(j=0;j<10;j++) //字符個數(shù){P1=0x00; //關閉行,防止出現(xiàn)顯示殘留

P0=~led[l]; //列數(shù)據(jù)取反后值送至P0口

P1=w; //打開行

delay1ms(?);

w<<=1; //逐行掃描{P1=0x00; //關閉行,防止出現(xiàn)顯示l++; //指向數(shù)組中下一個顯示碼

}

}

}

}

}l++; //指向數(shù)組中下一個顯示碼

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-4-1.hex,雙擊AT89C51,將彈出如圖7.4.2所示的對話框。在圖7.4.2中添加十六進制文件7-4-1.hex,點擊“OK”即可。最后進行仿真,可實現(xiàn)每隔1s依次循環(huán)顯示0~9。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.4.2添加十六進制文件圖7.4.2添加十六進制文件如果要在8×8點陣上顯示的圖形如圖7.4.3所示,程序該如何修改?請讀者自行實現(xiàn)此功能。圖7.4.3顯示漢字字符如果要在8×8點陣上顯示的圖形如圖7.4.3所示,程序該7.5數(shù)碼管動態(tài)顯示實訓

本節(jié)利用數(shù)碼管動態(tài)顯示自己的生日(修定生日為1980年7月8日),實訓圖如圖7.5.1所示,所用元件清單如表7.5.1所示。7.5數(shù)碼管動態(tài)顯示實訓

本節(jié)proteus單片機教學講解課件圖7.5.1數(shù)碼管動態(tài)顯示實訓圖7.5.1數(shù)碼管動態(tài)顯示實訓在上述電路圖中,六位數(shù)碼管的位選端由P2.0~P2.5控制,段選端由P1口控制,P1口通過74LS245與數(shù)碼管的段選端連接,既能保證數(shù)碼管的亮度,又能保護單片機引腳。其程序代碼為:在上述電路圖中,六位數(shù)碼管的位選端由P2.0~P2.5#include<reg51.h>

void delay1ms(?)

{

unsignedchari;

TMOD=0x20;

TH1=6;

TL1=6;

TR1=1;

for(i=0;i<4;i++)#include<reg51.h>

void del{

while(!TF1);

TF1=0;

}

}

voiddisp(?)

{

unsignedcharled[]={0x80,0xc0,0xc0,0xf8,0xc0,0x80};

unsignedchari,w;{

while(!TF1);

w=0x01;

for(i=0;i<6;i++)

{

P2=w;

w<<=1;

P1=led[i];

delay1ms(?);

}w=0x01;

for(i=0;i<6;i++}

void main(?)

{

while(1)

{

disp(?);

}

}}

void main(?)

{

wh在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-5-1.hex,雙擊AT89C51,將彈出如圖7.5.2所示的對話框。在圖7.5.2中添加十六進制文件7-5-1.hex,點擊“OK”即可。最后進行仿真,可顯示如圖7.5.3所示的生日。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.5.2添加十六進制文件圖7.5.2添加十六進制文件圖7.5.3顯示生日圖圖7.5.3顯示生日圖7.6中斷掃描方式的矩陣式鍵盤設計實訓

采用中斷掃描方式設計4×4矩陣鍵盤,當某個鍵被按下時,LED數(shù)碼管顯示相應按鍵的鍵值。中斷掃描方式的矩陣式鍵盤實訓圖如圖7.6.1所示,所用元件清單如表7.6.1所示。7.6中斷掃描方式的矩陣式鍵盤設計實訓

采用中斷掃圖7.6.1中斷掃描方式的矩陣式鍵盤實訓圖圖7.6.1中斷掃描方式的矩陣式鍵盤實訓圖proteus單片機教學講解課件4×4矩陣式鍵盤的4根行線連接到P0口的低四位,4根列線連接到P0口的高四位。按照矩陣式鍵盤的掃描方法可知,P0.0~P0.3為掃描輸入線,P0.4~P0.7為鍵輸出線。圖7.6.1中的與門用于產生按鍵中斷,其輸入端與各行線相連,再通過上拉電阻接至+5V電源,輸出端接至外部中斷0的輸入端P3.2。LED數(shù)碼管由單片機的P1口控制。4×4矩陣式鍵盤的4根行線連接到P0口的低四位,4根列線具體工作過程如下:當鍵盤沒有鍵按下時,與門各輸入端均為高電平,與門輸出端也保持高電平;當有鍵被按下時,與門輸入端有低電平,相應地與門輸出端變?yōu)榈碗娖剑瑥亩刂芇3.2向CPU申請中斷,若CPU開放外部中斷,則會響應中斷請求,轉去執(zhí)行鍵盤掃描程序并獲得對應鍵值,最終通過LED數(shù)碼管顯示。具體工作過程如下:當鍵盤沒有鍵按下時,與門各輸入端均為高其程序代碼為:

#include<reg51.h>

#defineucharunsignedchar

voiddisplay(ucharnum);

voiddelay10ms();

ucharcodeled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};其程序代碼為:

#include<reg51.h>

voidmain(?)

{

P1=0xff;

TMOD=0x10;//T1在工作方式1

IE=0x87; //開中斷總允許位和外部中斷0允許位

IT0=1; //設置外部0中斷下降沿觸發(fā)

while(1)voidmain(?)

{

P1=0xff; {

P0=0xef;

P0=0xdf;

P0=0xbf;

P0=0x7f;

}

}

voiddisplay(ucharnum)

{

P1=led[num]; {

P0=0xef;

P0=0xdf;

P0=}

void delay10ms(?)

{

TH1=0xd8;

TL1=0xf0;

TR1=1;

while(!TF1);

TF1=0;

}}

void delay10ms(?)

{

void inth()interrupt0//外部中斷0

{

uchartemp,key;

P0=0xef; //掃描第一行

temp=P0; //P0狀態(tài)送給變量temp

temp=temp&0x0f; //與操作屏蔽低四位

if(temp!=0x0f) //P0高四位有低電位進入void inth()interrupt0//外部 {

delay10ms(?); //延時10ms

temp=P0; //P0狀態(tài)送給變量temp

temp=temp&0x0f; //與操作屏蔽低四位

if(temp!=0x0f)

{

temp=P0;//判斷后的P0狀態(tài)送給變量temp

switch(temp) {

delay10ms(?); //延時10ms

{

case0xee:key=0;break; //鍵值為0的按鍵按下

case0xed:key=4;break; //鍵值為1的按鍵按下

case0xeb:key=8;break; //鍵值為2的按鍵按下

case0xe7:key=12;break; //鍵值為3的按鍵按下

}

while(temp!=0x0f)//等待按鍵釋放,即P0高四位恢復

高電位,結束循環(huán) {

case0xee:key=0;break; {

temp=P0;

temp=temp&0x0f;

}

display(key); //顯示鍵值

}

} {

temp=P0;

temp=tem P0=0xdf; //掃描第一行

temp=P0; //P0狀態(tài)送給變量temp

temp=temp&0x0f; //與操作屏蔽低四位

if(temp!=0x0f) //P0高四位有低電位進入

{

delay10ms(?);

temp=P0;

temp=temp&0x0f;

if(temp!=0x0f) P0=0xdf; //掃描第一行

temp=P0; {

temp=P0;

switch(temp)

{

case0xde:key=1;break;

case0xdd:key=5;break;

case0xdb:key=9;break;

case0xd7:key=13;break;

} {

temp=P0;

switch(temp while(temp!=0x0f) //等待按鍵釋放

{

temp=P0;

temp=temp&0x0f;

}

display(key); //顯示鍵值

}

} while(temp!=0x0f) //等待按鍵釋放

P0=0xbf; //掃描第一行

temp=P0; //P0狀態(tài)送給變量temp

temp=temp&0x0f; //與操作屏蔽低四位

if(temp!=0x0f) //P0高四位有低電位進入

{

delay10ms(?);

temp=P0; P0=0xbf; //掃描第一行

temp=P0; temp=temp&0x0f;

if(temp!=0x0f)

{

temp=P0;

switch(temp)

{

case0xbe:key=2;break;

case0xbd:key=6;break;

case0xbb:key=10;break;

case0xb7:key=14;break;

} temp=temp&0x0f;

if(temp!=0 while(temp!=0x0f) //等待按鍵釋放

{

temp=P0;

temp=temp&0x0f;

}

display(key); //顯示鍵值

}

} while(temp!=0x0f) //等待按鍵釋放

P0=0x7f; //掃描第一行

temp=P0; //P0狀態(tài)送給變量temp

temp=temp&0x0f; //與操作屏蔽低四位

if(temp!=0x0f) //P0高四位有低電位進入

{

delay10ms(?);

temp=P0;

temp=temp&0x0f;

if(temp!=0x0f) P0=0x7f; //掃描第一行

temp=P0; temp=P0;

switch(temp)

{

case0x7e:key=3;break;

case0x7d:key=7;break;

case0x7b:key=11;break;

case0x77:key=15;break;

} temp=P0;

switch(temp)

while(temp!=0x0f) //等待按鍵釋放

{

temp=P0;

temp=temp&0x0f;

}

display(key); //顯示鍵值

}

}

} while(temp!=0x0f) //等待按鍵釋放

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-6-1.hex,雙擊AT89C51,將彈出如圖7.6.2所示的對話框。在圖7.6.2中添加十六進制文件7-6-1.hex,點擊“OK”即可。最后進行仿真,若按鍵S0按下,數(shù)碼管顯示的數(shù)字為“0”;若按鍵S1按下,數(shù)碼管顯示的數(shù)字為“1”;若按鍵S2按下,數(shù)碼管顯示的數(shù)字為“2”,以此類推,若按鍵S15按下,數(shù)碼管顯示的數(shù)字為“F”。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.6.2添加十六進制文件圖7.6.2添加十六進制文件7.7模擬交通燈控制實訓

(1)正常情況下雙方向輪流點亮信號燈。信號燈的狀態(tài)如表7.7.1所示。

(2)有緊急車輛通過時,A、B方向均亮紅燈。

本實訓主要是定時控制東南西北四個方向上的12盞交通信號燈,并且出現(xiàn)緊急情況時,能及時調整交通燈指示狀態(tài)。7.7模擬交通燈控制實proteus單片機教學講解課件觀察表7.7.1不難發(fā)現(xiàn),在不考慮左轉彎行駛車輛的情況下,東、西兩個方向的信號燈的顯示狀態(tài)是一樣的,所以對應兩個方向上的6個發(fā)光二極管只用P1口的3根I/O口線控制即可。同理,南、北方向上的6個發(fā)光二極管可用P1口的另外3根I/O口線控制。當I/O口線輸出高電平時,對應的交通燈滅;反之,當I/O口線輸出低電平時,對應的交通燈亮。各控制口線的分配以及控制狀態(tài)如表7.7.2所示。觀察表7.7.1不難發(fā)現(xiàn),在不考慮左轉彎行駛車輛的情況下proteus單片機教學講解課件根據(jù)上述分析,模擬交通燈控制實訓圖如圖7.7.1所示,所用元件清單如表7.7.3所示。表7.7.3模擬交通燈控制實訓元件清單根據(jù)上述分析,模擬交通燈控制實訓圖如圖7.7.1所示,所圖7.7.1模擬交通燈控制實訓圖圖7.7.1模擬交通燈控制實訓圖按鍵S1模擬緊急情況發(fā)生,當S1為高電平(不按按鍵)時表示正常情況,S1為低電平(按下按鍵)時表示緊急情況。S1按鍵接至(P3.2)腳可實現(xiàn)外部中斷0中斷申請,實現(xiàn)A、B方向雙向紅燈顯示。按鍵S1模擬緊急情況發(fā)生,當S1為高電平(不按按鍵)時表其程序代碼為:

#include<REG51.H>

unsignedchart0,t1;

voiddelay0_5s(?)

{

for(t0=0;t0<10;t0++)

{

TH1=0x3c;

TL1=0xb0;

TR1=1;

while(!TF1);

TF1=0;

}

}其程序代碼為:

#include<REG51.H>

voiddelay_t1(unsignedchart)

{

for(t1=0;t1<t;t1++)

delay0_5s(?);

}

voidint_0()interrupt0voiddelay_t1(unsignedchar{

unsignedchari,j,k,l,m;

i=P1;

j=t0;

k=t1;

l=TH1;

m=TH0;

P1=0xdb;

delay_t1(20);{

unsignedchari,j,k,P1=i;

t0=j;

t1=k;

TH1=1;

TH0=m;

}

voidmain(?)P1=i;

t0=j;

t{

unsignedchark;

TMOD=0x10;

EA=1;

EX0=1;

IT0=1;

while(1)

{

P1=0xf3;

delay_t1(10);

for(k=0;k<3;k++){

unsignedchark;

{

P1=0xf3;

delay0_5s(?);

P1=0xfb;

delay0_5s(?);

}

P1=0xeb;

delay_t1(4);

P1=0xde;

delay_t1(10);

for(k=0;k<3;k++){

P1=0xf3;

{

P1=0xde;

delay0_5s(?);

P1=0xdf;

delay0_5s(?);

}

P1=0xdd;

delay_t1(4);

}

}{

P1=0xde;

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-7-1.hex,雙擊AT89C51,將彈出如圖7.7.2所示的對話框。在圖7.7.2中添加十六進制文件7-7-1.hex,點擊“OK”即可。最后進行仿真,可實現(xiàn)表7.7.1的所有功能,且當緊急情況發(fā)生(按鍵S1按下)時,A、B兩方向雙向紅色顯示。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.7.2添加十六進制文件圖7.7.2添加十六進制文件7.8液晶顯示控制實訓

在實際生活中,經常可以看到八段LED數(shù)碼管構成的廣告牌顯示屏,但數(shù)碼管構成的顯示屏顯示的字符有限,不能靈活顯示更多的字符和文字。對于顯示多個字符的應用場合,就需要使用液晶顯示器。液晶顯示控制實訓圖如圖7.8.1所示,所用元件清單如表7.8.1所示。7.8液晶顯示控制實訓

圖7.8.1液晶顯示控制實訓圖7.8.1液晶顯示控制實訓proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件proteus單片機教學講解課件其程序代碼為:

#include<reg51.h>

typedefunsignedcharuint8;

typedefunsignedintuint16;

sbitRS=P2^0;

sbitRW=P2^1;

sbitEN=P2^5;

sbitBUSY=P0^7;

unsignedcharcodeword1[]={“WelcometoShenz”};

//定義顯示的字符

unsignedcharcodeword2[]={“henPolytechnic”};

//定義顯示的字符其程序代碼為:

#include<reg51.h>

voiddelay()

{uint16i,j;

for(i=0;i<200;i++)

for(j=0;j<200;j++);

}

voidwait(?)//等待繁忙標志

{

P0=0xff;

dovoiddelay()

{uint16i,j{

RS=0;

RW=1;

EN=0;

EN=1;

}

while(BUSY==1);

EN=0;

}{

RS=0;

voidw_dat(uint8dat)//寫數(shù)據(jù)

{

wait(?);

EN=0;

P0=dat;

RS=1;

RW=0;

EN=1;

EN=0;

}voidw_dat(uint8dat)//寫數(shù)據(jù)voidw_cmd(uint8cmd)//寫命令

{

wait(?);

EN=0;

P0=cmd;

RS=0;

RW=0;

EN=1;

EN=0;

}voidw_cmd(uint8cmd)//寫命令

voidInit_LCD1602(?)

//初始化

{

w_cmd(0x38);

w_cmd(0x0f);

w_cmd(0x06);

w_cmd(0x01);

}

voidw_string(uint8addr_start,uint8*p) //顯示字符voidInit_LCD1602(?) //初始{

w_cmd(addr_start);

while(*p!=‘\0’)

{

w_dat(*p++);

delay(?);

}

}

main(?){

w_cmd(addr_start);

{

Init_LCD1602();

w_string(0x80,word1);

w_string(0xc0,word2);

w_cmd(0x0c);

while(1);

}{

Init_LCD1602();

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-8-1.hex,雙擊AT89C51,將彈出如圖7.8.2所示的對話框。在圖7.8.2中添加十六進制文件7-8-1.hex,點擊“OK”即可。最后進行仿真,從仿真結果來看,液晶上顯示的字符為“WelcometoShenzhenPolytechnic”。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.8.2添加十六進制文件圖7.8.2添加十六進制文件7.9A/D轉換接口技術實訓

采用TI公司生產的A/D轉換芯片TLC2543采集0~5V連續(xù)可變的模擬電壓信號,并將其轉變?yōu)?2位數(shù)字信號,送至51單片機進行處理,在四位數(shù)碼管上顯示出對應的數(shù)字信號。0~5V的模擬電壓信號可通過調節(jié)電位器獲得。A/D轉換接口技術實訓圖如圖7.9.1所示,所用元件清單如表7.9.1所示。7.9A/D轉換接口技術實圖7.9.1A/D轉換接口技術實訓圖圖7.9.1A/D轉換接口技術實訓圖proteus單片機教學講解課件在上述電路圖中,0~5V模擬電壓信號可通過調節(jié)電位器獲得,并被送至A/D芯片TLC2543的AIN0通道。數(shù)據(jù)輸出端SDO、串行數(shù)據(jù)輸入端SDI、片選端和輸入/輸出時鐘CLK分別與51單片機的P1.0~P1.3相連。四位數(shù)碼管選用共陽極數(shù)碼管,位選端由單片機的P3.0~P3.3控制,段碼端由單片機的P2.0~P2.7控制,采用動態(tài)掃描法顯示。在上述電路圖中,0~5V模擬電壓信號可通過調節(jié)電位器獲其程序代碼為:

#include<reg51.h>

#include<intrins.h>

#include<string.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitAD_CLOCK=P1^3;//TLC2543控制位的宏定義

sbitAD_IN=P1^1;

sbitAD_OUT=P1^0;其程序代碼為:

#include<reg51.h>

sbitAD_CS=P1^2;

uchartable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90};//共陽極數(shù)碼管段碼

staticconstucharad_channel_select[]=

{0x08,0x18,0x28,0x38,0x48,0x58,0x68,0x78,0x88,0x98,0xa8};

//通道0~10均為12位數(shù)據(jù),MSB在前,無符號

uintad2543(ucharchunnel_select)

//二進制,A/D轉換子程序,讀出上一次AD值(12位精

//度),并開始下一次轉換sbitAD_CS=P1^2;

uchartab{?uintdin,j;

uchardout,i;

din=0;

dout=ad_channel_select[chunnel_select];

for(j=0;j<100;j++); //延時大于1us

AD_CLOCK=0;

AD_CS=0;

for(i=0;i<12;i++){?uintdin,j;

uchardou{

if(dout&0x80)AD_IN=1;

elseAD_IN=0;

AD_CLOCK=1;

dout<<=1;

din<<=1;

if(AD_OUT==1)din|=0x0001;

AD_CLOCK=0;

}{

if(dout&0x80)AD_CS=1;

for(j=0;j<100;j++);//延時大于1us

return(din);

}

voiddisplay(uintnum) //AD輸出12位數(shù)字信號,

數(shù)碼管顯示程序AD_CS=1;

for(j=0;j<100{

uinta;

P3=0x08;

P2=table[num/1000];

for(a=0;a<1000;a++);

P3=0x04;

P2=table[(num%1000)/100];

for(a=0;a<1000;a++);

P3=0x02;{

uinta;

P3=0x0P2=table[((num%1000)%100)/10];

for(a=0;a<1000;a++);

P3=0x01;

P2=table[((num%1000)%100)%10];

for(a=0;a<1000;a++);

}

voidmain(void)P2=table[((num%1000)%100)/1{

uintad;

while(1)

{ad=ad2543(0);

display(ad);

}

}{

uintad;

whil在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-9-1.hex,雙擊AT89C51,將彈出如圖7.9.2所示的對話框。在圖7.9.2中添加十六進制文件7-9-1.hex,點擊“OK”即可。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.9.2添加十六進制文件圖7.9.2添加十六進制文件最后進行仿真,調節(jié)電位器的滑動旋鈕,發(fā)現(xiàn)在四位數(shù)碼管上可正確顯示A/D轉換后的12位數(shù)據(jù):若模擬電壓為5V(最大值),其數(shù)碼管上顯示111111111111(FFFH),即十進制為4095;若模擬電壓為0V(最小值),其數(shù)碼管上顯示000000000000(000H),即十進制為0000;若模擬電壓為2.5V(中間值),其數(shù)碼管上顯示100000000000(800H),即十進制為2048。最后進行仿真,調節(jié)電位器的滑動旋鈕,發(fā)現(xiàn)在四位數(shù)碼管上可7.10D/A轉換接口技術實訓

采用TI公司生產的D/A轉換芯片TLC5615及51單片機組成波形發(fā)生器,編制程序產生鋸齒波信號,通過程序控制鋸齒波信號的幅值及周期。D/A轉換接口技術實訓如圖7.10.1所示,所用元件清單如表7.10.1所示。7.10D/A轉換接口技術實訓

采用TI公司圖7.10.1D/A轉換接口技術實訓圖圖7.10.1D/A轉換接口技術實訓圖proteus單片機教學講解課件在上述電路圖中,TLC5615與單片機的連接只需3根線,即串行時鐘輸入端SCLK、片選端和串行輸入端DIN分別與單片機的P3.0~P3.2相連;參考電壓端REFIN通過穩(wěn)壓管與電阻相連,以實現(xiàn)各種不同的輸入?yún)⒖茧妷?;輸出端OUT與示波器相連,以觀察鋸齒波波形幅值及周期。在上述電路圖中,TLC5615與單片機的連接只需3根線,其程序代碼為:

#include<reg51.h>

sbitSCK=P3^0; //TLC5615控制位的宏定義

sbitCS=P3^1;

sbitDIN=P3^2;

voidTLC5615(unsignedintx) //TLC5615轉換子程序其程序代碼為:

#include<reg51.h>{

unsignedchary;

CS=1;

SCK=0;

DIN=0;

CS=0;

x<<=6;//舍棄前6位,16位數(shù)據(jù)的低10位變?yōu)楦?0位

for(y=0;y<12;y++) //高位到低位發(fā)送{

unsignedchary;

{

DIN=x&0x8000;

SCK=1;

x<<=1;

SCK=0;

}

CS=1;

}

voidmain(){

DIN=x&0x8000;

{

unsignedintV_dat=0;

unsignedchari;

while(1)

{

if(V_dat<700)V_dat+=10;

//V_dat的取值決定了鋸齒波的幅值及頻率

//其值越大,信號幅值及周期就越大{

unsignedintV_dat=elseV_dat=0;

TLC5615(V_dat); //進行數(shù)/模轉換

i=10;

while(i--);

}

}elseV_dat=0;

在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-10-1.hex,雙擊AT89C51,將彈出如圖7.10.2所示的對話框。在圖7.10.2中添加十六進制文件7-10-1.hex,點擊“OK”即可。最后進行仿真,可從示波器上觀察到鋸齒波波形,如圖7.10.3所示。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.10.2添加十六進制文件圖7.10.2添加十六進制文件圖7.10.3鋸齒波波形小提示圖7.10.3鋸齒波波形小提示7.11雙機通信技術實訓

本實訓通過51單片機建立一套簡單的單片機串行口雙機通信測試系統(tǒng),發(fā)射和接收各用一套AT89C51單片機電路,分別稱為甲機和乙機,將單片機甲機中存放的數(shù)據(jù)(例如617528)發(fā)送給乙機,并在乙機的6個數(shù)碼管上顯示出來。雙機通信技術實訓圖如圖7.11.1所示,所用元件清單如表7.11.1所示。7.11雙機通信技術實訓

本實訓通過51單片圖7.11.1雙機通信技術實訓圖圖7.11.1雙機通信技術實訓圖proteus單片機教學講解課件在上述電路圖中,乙機的六個數(shù)碼管采用動態(tài)連接方式,各位共陽極數(shù)碼管相應的段選控制端并聯(lián)在一起,由P1口控制,由同相三態(tài)緩沖器/線驅動器74LS245驅動,各位數(shù)碼管的位選端由P2口控制。甲機作為發(fā)送端,乙機作為接收端,將甲機的TXD(P3.1,串行數(shù)據(jù)發(fā)送端)引腳接乙機的RXD(P3.0,串行數(shù)據(jù)接收端)引腳,將甲機的RXD引腳接乙機的TXD引腳。值得注意的是,兩個系統(tǒng)必須共地。在上述電路圖中,乙機的六個數(shù)碼管采用動態(tài)連接方式,各位共其程序代碼如下。

(1)甲機發(fā)送數(shù)據(jù)的程序代碼:

#include<reg51.h>

voidmain(?)//主函數(shù)

{unsignedchari;

unsignedcharsend[]={6,1,7,5,2,8};

//定義要發(fā)送的數(shù)據(jù)其程序代碼如下。

(1)甲機發(fā)送數(shù)據(jù)的程序代碼:

TMOD=0x20; //定時器1工作于方式2

TL1=0xf4; //波特率為2400b/s

TH1=0xf4;

TR1=1;

SCON=0x40; //定義串行口工作于方式1

for(i=0;i<6;i++)TMOD=0x20; //定時器1工作于方{

SBUF=send[i]; //發(fā)送第i個數(shù)據(jù)

while(TI==0); //查詢等待發(fā)送是否完成

TI=0; //發(fā)送完成,TI由軟件清0

}

while(1);

}{

SBUF=send[i]; (2)乙機接收數(shù)據(jù)的程序代碼:

#include<reg51.h>

codeunsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定義0~9顯示字型碼

unsignedcharbuffer[]={0x00,0x00,0x00,0x00,0x00,0x00};

//定義接收數(shù)據(jù)緩沖區(qū)

voiddisp(void); //顯示函數(shù)聲明

voidmain() //主函數(shù)(2)乙機接收數(shù)據(jù)的程序代碼:

#include{

unsignedchari;

TMOD=0x20; //定時器1工作于方式2

TL1=0xf4; //波特率定義

TH1=0xf4;

TR1=1;

SCON=0x40;//定義串行口工作于方式1

for(i=0;i<6;i++){

unsignedchari;

{

REN=1;//接收允許

while(RI==0);

//查詢等待接收標志為1,表示接收到數(shù)據(jù)

buffer[i]=SBUF; //接收數(shù)據(jù)

RI=0; //RI由軟件清0

}

for(;;)

disp(); //顯示接收數(shù)據(jù){

REN=1;/}

voiddisp()

{unsignedcharw,i,j;

w=0x01; //位碼賦初值

for(i=0;i<6;i++)}

voiddisp()

{unsigne{

P2=w;

w<<=1;

P1=tab[buffer[i]];

//送顯示字型段碼,buffer[i]作為數(shù)組分量的下標

for(j=100;j>5;j--);//顯示延時

}

}{

P2=w;

w<<=1;

在KEIL軟件中輸入上述發(fā)送和接收代碼,編譯后產生十六進制文件7-11-1.hex和7-11-2.hex,分別雙擊甲機的AT89C51和乙機的AT89C51,將彈出如圖7.11.2所示的對話框。在圖7.11.2中分別添加十六進制文件7-11-1.hex和7-11-2.hex,點擊“OK”即可。最后進行仿真,可觀察到乙機的6位數(shù)碼管上顯示的正是甲機發(fā)送過來的數(shù)據(jù)“617528”,如圖7.11.3所示。在KEIL軟件中輸入上述發(fā)送和接收代碼,編譯后產生十六進圖7.11.2添加十六進制文件圖7.11.2添加十六進制文件圖7.11.3仿真后乙機顯示的數(shù)據(jù)圖7.11.3仿真后乙機顯示的數(shù)據(jù)7.12單片機課程設計

7.12.1數(shù)字頻率計

1.設計題目

利用51單片機設計一個簡易頻率計,要求如下:

(1)測量范圍為1Hz~9999Hz,誤差在20Hz以內。

(2)用四位數(shù)碼管顯示測量值。

(3)可測量方波、三角波及正弦波等多種波形。7.12單片機課程設計

7.12.1數(shù)2.設計過程

本數(shù)字頻率計采用單片機的定時器T0,工作于計數(shù)狀態(tài),P2口控制四位數(shù)碼管段碼顯示,P0口控制四位數(shù)碼管位碼,其實訓圖如圖7.12.1所示,所用元件清單如表7.12.1

所示。2.設計過程

本數(shù)字頻率計采用單片機的定時器T0,圖7.12.1數(shù)字頻率計課程設計實訓圖圖7.12.1數(shù)字頻率計課程設計實訓圖proteus單片機教學講解課件在上述電路圖中,單刀三擲開關可選擇正弦波、矩形波、三角波外部輸入信號,74HC14為帶施密特整形功能的非門,可將正弦波、三角波信號整形為矩形波信號,輸入到AT89C51的P3.4作為計數(shù)脈沖輸入端,P2.0~P2.7控制四位數(shù)碼管段碼A~DP,P0.0~P0.3控制四位數(shù)碼管位碼。在上述電路圖中,單刀三擲開關可選擇正弦波、矩形波、三角波其程序代碼為:

#include<reg51.h> //頭文件

#include<intrins.h> //頭文件

#defineucharunsignedchar //宏定義

#defineuintunsignedint //宏定義

sfr16DPTR=0x82; //定義DPTR

bitstatus_F=1; //狀態(tài)標志位

uintaa,qian,bai,shi,ge,bb,wan,shiwan;//定義變量

ucharcout;其程序代碼為:

#include<reg51.h> unsignedlongtemp; //定義長整型變量

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};

voiddelay(uintz); //子函數(shù)聲明

voidinit(?);

voiddisplay(uintqian,uintbai,uintshi,uintge);

voidxtimer0(?);

voidxtimer1(?);

voidxint0(?);unsignedlongtemp; //定義長整型voidmain(?) //主函數(shù)

{

P0=0xFF; //初始化P0口

init(?); //調用定時器,計數(shù)器初始化

while(1)

{

if(aa==19) //定時20*50ms=1svoidmain(?) //主函數(shù)

{

{

aa=0; //定時完成一次后清0

status_F=1; //完成計數(shù)

TR1=0; //關閉T1定時器,定時1s完成

delay(46); //延時校正誤差

TR0=0; //關閉T0

DPL=TL0; //計數(shù)量的低8位

DPH=TH0; //計數(shù)量的高8位

temp=DPTR+cout*65535;//計數(shù)值放入變量{

aa=0; //定時完成一次后清0

stqian=temp%10000/1000; //顯示千位

bai=temp%1000/100; //顯示百位

shi=temp%100/10; //顯示十位

ge=temp%10; //顯示個位

}

display(qian,bai,shi,ge); //調用顯示函數(shù)

}qian=temp%10000/1000; //顯示}

voidinit(?) //定時器,計數(shù)器初始化

{

temp=0; //變量賦初值

aa=0;

cout=0;

IE=0X8A; //開中斷,T0,T1中斷

TMOD=0x15;

//T0為定時器工作于方式1,T1為計數(shù)器工作于方式1

TH1=0x3c; //定時器賦高8初值,12MHz晶振}

voidinit(?) //定時器,計數(shù)TL1=0xb0; //定時器賦低8初值,12MHz晶振

TR1=1; //開定時器1

TH0=0; //計數(shù)器賦高8初值

TL0=0; //計數(shù)器賦低8初值

TR0=1; //開計數(shù)器0

}

voiddisplay(uintqian,uintbai,uintshi,uintge)

//顯示子函數(shù)TL1=0xb0; //定時器賦低8初值,12MH{

P0=0xf7; //P0口是位選端

P2=table[qian]; //顯示千位

delay(3);

P0=0xfb; //P0口是位選端

P2=table[bai]; //顯示百位

delay(3);

P0=0xfd; //P0口是位選端

P2=table[shi]; //顯示十位{

P0=0xf7; //P0口是位選端

delay(3);

P0=0xfe; //P0口是位選端

P2=table[ge]; //顯示個位

delay(3);

}

voidxtimer1(?)interrupt3 //定時中斷子函數(shù)delay(3);

P0=0xfe; //{

TH1=0x3c; //定時器賦高8初值

TL1=0xb0; //定時器賦低8初值

aa++;

}

voidxtimer0(?)interrupt1 //計數(shù)器中斷子函數(shù){

TH1=0x3c; //定時器賦高8初值

{

cout++;

}

voiddelay(uintz)//延時子函數(shù),延時1ms

{

uinti,j;

for(i=0;i<z;i++)

for(j=0;j<110;j++);

}{

cout++;

}

voidde在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-12-1.hex,雙擊AT89C51,將彈出如圖7.12.2所示的對話框。在圖7.12.2中添加十六進制文件7-12-1.hex,點擊“OK”即可。在KEIL軟件中輸入上述代碼,編譯后產生十六進制文件7-圖7.12.2添加十六進制文件圖7.12.2添加十六進制文件雙擊正弦波信號源CP1,在彈出的對話框中設置其幅值為4V,頻率為1kHz。開始仿真,數(shù)碼管上顯示的頻率值為998Hz,如圖7.12.3所示。同理,設置矩形波和三角波的頻率分別為1234Hz及1Hz,撥動單刀三擲開關,四位數(shù)碼管顯示的頻率分別為1231Hz及1Hz,如圖7.12.4和圖7.12.5所示,均符合課程設計題目要求。雙擊正弦波信號源CP1,在彈出的對話框中設置其幅值為4圖7.12.3顯示正弦波信號頻率值圖7.12.3顯示正弦波信號頻率值圖7.12.4顯示方波信號頻率值圖7.12.4顯示方波信號頻率值圖7.12.5顯示三角波信號頻率值圖7.12.5顯示三角波信號頻率值7.12.2波形發(fā)生器

1.設計題目

利用51單片機設計一個簡易波形發(fā)生器,要求如下:

(1)可輸出鋸齒波、三角波、方波和正弦波四種波形;

(2)上述四種波形分別由開關S0~S3進行切換;

(3)可由程序控制各種波形的頻率及幅值。7.12.2波形發(fā)生器

1.設計題目

利用512.設計過程

本波形發(fā)生器采用AT89C51單片機實現(xiàn),采用程序設計方法編程實現(xiàn)鋸齒波、三角波、方波和正弦波四種波形,再通過D/A轉化器DAC0832將數(shù)字信號轉換成模擬信號,最后經過運算放大器放大,由示波器顯示所需要的波形,各種波形頻率及幅值可由程序控制。其實訓圖如圖7.12.6所示,所用元件清單如表7.12.2所示。2.設計過程

本波形發(fā)生器采用AT89C51單片機圖7.12.6波形發(fā)生器課程設計實訓圖圖7.12.6波形發(fā)生器課程設計實訓圖proteus單片機教學講解課件在上述電路圖中,開關S0~S3分別為四種波形的控制鍵,利用單片機P0口將8位數(shù)字量與數(shù)/模轉換芯片DAC0832連接,數(shù)/模轉換后經運算放大器OPAMP進行放大,最后在示波器的A通道顯示所需要的波形。圖中各器件的連接多采用網絡標號連接。在上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論