版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、中國地質(zhì)大學(武漢) 課 程: 電子工程實習報告 學 號: 班 級: 姓 名: 指導老師:陳分雄、葉敦范、羅大鵬、楊勇、王勇目 錄第一階段 軟件使用與仿真31.1 單片機系統(tǒng)原理圖繪制31.2 pcb制板31.3 編程訓練4第二階段 焊接電路板182.1單片機最小系統(tǒng)板焊接 18第三階段 電路調(diào)試與程序設計183.1 電路調(diào)試及功能測試183.2 蜂鳴器調(diào)試193.3 串口通信調(diào)試 193.4 液晶顯示調(diào)試193.5 數(shù)碼管及鍵盤控制調(diào)試203.6 系統(tǒng)綜合功能設計20附錄21實習小結38第一階段 軟件使用與仿真1.1單片機系統(tǒng)原理圖繪制(指導老師:羅大鵬)1.地點:信息樓5032.目的:熟練
2、掌握protel99的使用方法,繪制單片機最小系統(tǒng)原理圖,且保證erc校驗無誤,并生成網(wǎng)絡報表3.內(nèi)容:文件管理先新建設計數(shù)據(jù)庫,再在數(shù)據(jù)庫中新建各種文件,主要用到schematic document和pcb document。在使用中學會及時保存原理圖或pcb文件以及熟練文件的導入導出。protel的繪圖方法 通過學習掌握繪圖的一些方法。要對鍵盤上的快捷鍵熟練應用,比如:把原理圖的放大page up,縮小page down,追蹤鼠標視野home,刪除delete,空格鍵轉換元件以及撤銷選擇區(qū)域x-a等。元器件或區(qū)域的復制,粘貼,刪除等。熟悉界面中的工作條功能。繪制原理圖首先添加元件庫,包括自
3、制元件和下載的元件庫,加上protel自帶的元件庫。把需要用到的元件在自定義合適大小的圖紙上合理擺布,再用導線把各器件連接起來,注意各電源及接地符號,節(jié)點,總線等的設置方法,使用繪圖工具實現(xiàn)文字注釋或其他注釋。erc校驗待原理圖繪制完畢,然后進行電氣法則測試,即erc校驗,若產(chǎn)生錯誤,則根據(jù)錯誤提示對原電路圖進行修改,直至通過erc校驗,原理圖無誤。修改元器件封裝當erc校驗無錯時,然后對照元件清單及pcb元件庫,對每一個元器件封裝進行修改,產(chǎn)生元件清單。修改器件封裝,修改其屬性中的footprint即可。修改完以后,再進行一次erc校驗,若出現(xiàn)錯誤,則根據(jù)錯誤提示修改,直至能通過erc校驗無
4、錯誤產(chǎn)生。生成網(wǎng)絡報表待修改封裝之后,并再次通過erc校驗無錯誤產(chǎn)生,生成網(wǎng)絡報表。然后對照原電路圖把網(wǎng)絡報表仔細檢查一遍,檢查每一個器件與其他器件間的連接是否有誤,及是否有元器件的丟失,檢查vcc與gnd的連接,是否全部連上。若有遺漏或錯誤,則返回修改,在進行erc校驗,生成網(wǎng)絡報表,直至無遺漏和錯誤。此工作非常繁瑣,需耐心和仔細對待。 但由于前些工作比較仔細所以原理圖基本沒有太大錯誤。原理圖見附錄1。1.2pcb制板1.地點:信息樓5032.目的:熟練掌握protel99的使用方法,繪制單片機最小系統(tǒng)原理圖3.內(nèi)容:新建pcb文件,并添加老師要求的pcb元件庫。導入網(wǎng)絡報表導入上一階段產(chǎn)生
5、的網(wǎng)絡報表,在導入過程中會進行錯誤檢查,若產(chǎn)生錯誤,則需返回上一階段,根據(jù)錯誤提示,修改元器件的封裝等等,然后按步驟生成網(wǎng)絡報表,再次導入網(wǎng)絡報表,直至導入無錯誤。手工布局在pcb圖紙上keepoutlayer層放置線定義板寬,在導入網(wǎng)絡報表無錯誤之后,然后執(zhí)行,在將導入的各元器件進行布局擺放,其中鍵盤按照矩陣形式排列,我們所用的是16個鍵,按44矩陣進行排列,其中外部擴展及下載口及電源及串口等等器件應放置在pcb板邊緣,在元件布局應按原理圖的各個模塊的具體分布進行,把每一模塊的各器件盡量擺放在一起,并標注各個模塊,再逐步調(diào)整,使所用pcb板面積盡量小,利用效率最大。自動布線及手工改動首先設計
6、規(guī)則,主要是電線寬度,孔大小約束。待手工布局結束后,進行自動布線,自動布線結束后,仔細檢查布線效果,布線應遵循導線走鈍角,線盡量走近路,盡量保證toplayer層走橫線,bottomlayer層走豎線。然后去掉自動布線所產(chǎn)生的毛刺,修改走直角或銳角的連線,并使線程盡量短。此過程中應逐個局部仔細檢查修正。修正結束后,可以對pcb添加淚滴焊盤,進行覆銅或放置漢字,防止實際硬件電路靜電干擾。 pcb板見附錄2。設計規(guī)則檢查對已經(jīng)布局布線的pcb圖進行設計規(guī)則檢查,對pcb圖進行查錯,以保證其正確無誤。觀看3d圖 單pcb圖畫好后,可以觀看其3d效果圖,以驗證其布局布線合理,和提前知曉制成板后的效果。
7、 pcb3d效果圖見附錄3生成pcb報表最后可以生成pcb報表,包括電路板狀態(tài)信息報表,引腳信息報表,元件信息報表,網(wǎng)絡分析信息報表等,以對板子有個清晰的認識。1.3、編程訓練:(指導老師:楊勇)(一 )熟悉keil軟件的使用和仿真步驟keil集成開發(fā)軟件基本操作1、 新建一個項目文件2、 首先點擊 keil uvision2 ,進入uvision2界面。點擊工具欄project選項中的newproject,準備開始建立自己的項目3、 輸入工程文件名稱,并選擇保存工程文件的目錄。 4、 為項目文件選擇一個目標器件(如at89c51),如圖所示。 5、 用鼠標對項目工作區(qū)的目標1,點擊右鍵在彈出
8、的菜單中選擇“為目標目標1設置選項”如下圖所示。 6、 在“為目標目標1設置選項”中,點擊“調(diào)試”菜單,在此菜單中可選擇是使用硬件仿真,還是軟件仿真,連接實驗箱做實驗時選擇硬件仿真,點擊硬件仿真選項后面的設置選項,在此對對話框中選擇串口和波特率,串口根據(jù)所連電腦來決定。7、 點擊“文件/新建”創(chuàng)建源程序文件并輸入程序代碼。8、 在文本框中輸入原程序9、 點擊“文件/保存“對程序進行保存。 10、 用鼠標對項目工作區(qū)的目標1,點擊右鍵在彈出的菜單中選擇添加文件到原代碼組,如下圖所示: 11、 在彈出的添加文件框中,選擇需要添加到項目中的文件。 12、 點擊編譯連接的圖標,對項目文件進行編譯13、
9、 點擊“調(diào)試/啟動/停止調(diào)試”進入調(diào)試界面若要查看內(nèi)存中的數(shù)據(jù),點擊“視圖/存儲器窗口” (二)實訓100例部分led顯示#include sbit led=p32;void delay_ms(unsigned char x_ms)unsigned char i;while(x_ms-)for(i=124;i0;i-)void main(void)while(1)led=1;delay_ms(100);led=0;delay_ms(100);3.7 8只數(shù)碼管滾動顯示單個數(shù)字#include#include#define uchar unsigned char#define uint unsi
10、gned intuchar code dsy_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delayms(uint x)uchar i;while(x-) for(i=0;i120;i+);void main()uchar i,k=0x80;while(1)for(i=0;i8;i+)p2=0xff;k=_crol_(k,1);p0=dsy_codei;p2=k;delayms(300);3.8 8只數(shù)碼管顯示多個不同字符#include#include#define uchar unsigned char#defin
11、e uint unsigned intuchar code dsy_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delayms(uint x)uchar i;while(x-) for(i=0;i120;i+);void main()uchar k,m=0x80;p0=0xff;p2=0x00;while(1)for(k=0;k8;k+)m=_crol_(m,1);p2=m;p0=dsy_codek+1;delayms(2);3.35 定時器控制數(shù)碼管動態(tài)顯示#include#include#define uchar
12、unsigned char#define uint unsigned intuchar code dsy_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;uchar code table_of_digits8=0,9,10,1,2,10,2,5,2,1,10,5,7,10,3,9;uchar i=0,j=0;uint t=0;void main()p3=0x80;tmod=0x00;th0=(8192-4000)/32;tl0=(8192-4000)%32;ie=0x82;tr0=1;while(1);void dsy_s
13、how() interrupt 1th0=(8192-4000)/32;tl0=(8192-4000)%32;p3=_crol_(p3,1);p0=dsy_codetable_of_digitsij;j=(j+1)%8;if(+t!=350) return;t=0;i=(i+1)%2;3.42 報警器和旋轉燈#include#include#define uchar unsigned char#define uint unsigned intsbit spk=p37;uchar frq=0x00;void delayms(uint ms)uchar i;while(ms-) for(i=0;i
14、120;i+);void main()p2=0x00;tmod=0x11;th0=0x00;tl0=0xff;it0=0;ie=0x8b;ip=0x01;tr0=0;tr1=0;while(1)frq+;delayms(1);void ex0_int() interrupt 0tr0= !tr0;tr1= !tr1;if( p2=0x00)p2=0xe0;else p2=0x00;void t0_int() interrupt 1th0=0xfe;tl1=frq;spk=spk;void t1_int() interrupt 3th1=-45000/256;tl1=-45000%256;p2=
15、_crol_(p2,1);4.12 1602字符液晶滾動顯示程序#include reg51.h#include intrins.h /包含此頭文件可直接操作內(nèi)核的寄存器以及一些定義好的宏/ this file for mcu i/o port or the orthers hardware config/ for lcd display/ define for the port use by lcd driversbit lcd_ep=p27;sbit lcd_rw=p26;sbit lcd_rs=p25;#define lcd_data_bus_out p0#define lcd_data
16、_bus_in p0code unsigned char lcd_initialcode=0x30,0x30,0x30,0x38,0x01,0x06,0x0c;void lcd_datawrite(unsigned char data)unsigned int read_dat=0;lcd_ep = 0; /ep、rs端口為低,rw為高lcd_rs = 0;lcd_rw = 1;dolcd_data_bus_in = 0xff;lcd_ep = 1;read_dat = lcd_data_bus_in&0x80;lcd_ep = 0;while(read_dat!=0); /讀狀態(tài)字并判斷是否
17、可進行讀寫操作lcd_rw = 0; /ep rw to lowlcd_rs = 1; /rs hightlcd_data_bus_out = data;lcd_ep = 1; /ep to hightlcd_ep = 0; /ep to lowvoid lcd_regwrite(unsigned char command)unsigned int read_dat=0;lcd_ep = 0; /ep、rs置低,rw置高,表為讀狀態(tài)字lcd_rs = 0;lcd_rw = 1;dolcd_data_bus_in = 0xff;lcd_ep = 1;read_dat = lcd_data_bus
18、_in&0x80;lcd_ep = 0;while(read_dat!=0); /讀狀態(tài)字并判斷是否可進行讀寫操作lcd_rw = 0; /rw to low,表為寫指令lcd_data_bus_out = command;lcd_ep = 1; /ep to hightlcd_ep = 0;unsigned char lcd_dataread(void)unsigned char read_dat=0;lcd_ep = 0; /ep、rs置低,rw置高,表為讀狀態(tài)字lcd_rs = 0;lcd_rw = 1;dolcd_data_bus_in = 0xff;lcd_ep = 1;read_d
19、at = lcd_data_bus_in&0x80;lcd_ep = 0;while(read_dat!=0); /讀狀態(tài)字并判斷是否可進行讀寫操作lcd_rs = 1; /rs置高,表為讀數(shù)據(jù)lcd_ep = 1; /ep to hightread_dat = lcd_data_bus_in; /讀出數(shù)據(jù)lcd_ep = 0;return read_dat;unsigned char lcd_statusread(void)unsigned char read_dat=0;lcd_ep = 0; /ep、rs置低,rw置高,表為讀狀態(tài)字lcd_rs = 0;lcd_rw = 1;lcd_da
20、ta_bus_in = 0xff;lcd_ep = 1;read_dat = lcd_data_bus_in; /讀狀態(tài)字lcd_ep = 0;return read_dat;include #define lcdport p0#define h 1#define l 0sbit lcdrs = p20;sbit lcdrw = p21;sbit lcden = p22;void delay_ms(unsigned char xms)unsigned char i;while(xms-)for(i=125;i0;i-)void lcd_write_data(unsigned char dat)
21、lcdrs = h;lcdrw = l;lcden = l;lcdport = dat;lcden = h;delay_ms(2);lcden = l;void lcd_write_command(unsigned char com)void lcd_init(void)驗收:用1602實現(xiàn)兩行顯示并閃爍#include#define lcdport p0sbit lcdrs = p20;sbit lcdrw = p21;sbit lcden = p22;void delay_ms(unsigned int ms) int i; while(ms-) for(i=125;i0;i-) void
22、 write_data(unsigned char dat) lcdrs=1; lcdrw=0; lcden=0; lcdport=dat; lcden=1; delay_ms(2); lcden=0;void write_command(unsigned char c) lcdrs=0; lcdrw=0; lcden=0; lcdport=c; lcden=1; delay_ms(2); lcden=0;void lcd_busy() do lcdrs=0; lcdrw=1; lcden=0; lcden=1; delay_ms(1); while(lcdport&0x80); lcden=
23、0;void init_lcd1602() write_command(0x38); write_command(0x01); write_command(0x06); write_command(0x0c); void main() init_lcd1602(); while(1) lcd_busy(); write_command(0x80+0x06); write_data(w); delay_ms(10); write_command(0x80+0x07); write_data(e); delay_ms(10); write_command(0x80+0x09); write_dat
24、a(a); delay_ms(10); write_command(0x80+0x0a); write_data(r); delay_ms(10); write_command(0x80+0x0b); write_data(e); delay_ms(10); write_command(0x80+0x47); write_data(y); delay_ms(10); write_command(0x80+0x48); write_data(o); delay_ms(10); write_command(0x80+0x49); write_data(u); delay_ms(10); write
25、_command(0x80+0x4a); write_data(n); delay_ms(10); write_command(0x80+0x4b); write_data(g); delay_ms(10); write_command(0x0c); delay_ms(10); write_command(0x08); delay_ms(10);第二階段 焊接電路板(指導老師:王勇 葉敦范 )2.1單片機最小系統(tǒng)板焊接1.地點:信息樓4052.目的:完成電路板和jtag下載線的硬件焊接3.內(nèi)容:(1)首先對照元件清單和電路圖,檢查器件是否完整,型號規(guī)格安裝是否正確。(2)然后將各器件根據(jù)焊接規(guī)
26、則焊接到電路板上,其中對于器件的擺放方向和位置需十分注意。先焊發(fā)熱器件電阻和較低的電容,再焊較大的器件(3)而后,焊接jtag線,jtag線里面的芯片電阻,電阻電容均為貼片封裝,焊接時需小心謹慎,對于各條線引的焊接也需謹慎,按照其對應的順序進行焊接,焊接結束后,自行組裝。第三階段 電路調(diào)試與程序設計 (指導老師:陳分雄 王勇 葉敦范 )3.1電路調(diào)試及功能測試1.地點:信息樓5032.目的:檢查已經(jīng)焊好的電路板和jtag下載線是否無誤3.內(nèi)容:先用萬用表檢查電路板焊接是否都正確。當檢查沒有短路,斷路,虛焊,漏焊等錯誤后,給電路板供電,看二極管是否亮,是否有器件過熱,有可能二極管或三極管會在焊接
27、的過程中被燒壞,那樣的話就要重新焊器件。再用keil軟件給板子拷正確的程序,檢查是否能按功能正常工作。單片機系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開的,許多硬件錯誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。3.2蜂鳴器調(diào)試1.目的:主要是檢驗程序能否下載到芯片,蜂鳴器能正常工作,掌握程序的編譯下載到芯片的方法。2.內(nèi)容:在keil環(huán)境中用c語言編寫簡單是蜂鳴器程序或音樂播放程序。對keil軟件和程序下載軟件進行相關配置設置。將編譯產(chǎn)生的hex文件下載到芯片,檢測其工作是否正常,若工作不正常,則從軟件及硬件兩方面進行檢查。 有用的報警聲程序見附錄33.3串口通信調(diào)試1.地點:信息樓5032.目的:實現(xiàn)計算機與單片
28、機之間相互通訊功能3.內(nèi)容:將編寫的串口調(diào)試程序經(jīng)過編譯,下載到單片機。串口實現(xiàn)功能為在計算機上能顯示單片機的輸出。檢測串口是否能正常工作,此階段需用到串口軟件及串口線。若不能正常工作,則需從軟件和硬件兩方面進行檢查。正確功能為在電腦超級終端不停顯示輸出內(nèi)容,與預期相同,工作正常。串口調(diào)試程序見附錄43.4液晶顯示調(diào)試1.地點:信息樓5032.目的:保證液晶屏lcd能正常工作,輸出效果有所擴展。3.內(nèi)容:在編寫程序前,認真閱讀lcd液晶屏資料,掌握lcd1602及1602液晶模塊數(shù)據(jù)手冊(中文)中的液晶的使用和編程方法,了解其工作時序,及各個指令及初始化。對照電路圖中l(wèi)cd連接情況,編寫lcd
29、1602移動顯示程序,經(jīng)編譯下載至單片機,檢測輸出,若無輸出,則調(diào)整電位器,若仍無輸出則從軟件及硬件兩方面進行檢查,找出錯誤原因,直至液晶屏能正常工作。在程序編寫時應時刻注意各個指令間的延時控制。以保證液晶屏呈現(xiàn)效果移動循環(huán)顯示,液晶屏工作正常。之后也可用lcd做數(shù)字鐘,這將在綜合程序里被用到,液晶移屏顯示程序見附錄53.5數(shù)碼管及鍵盤控制調(diào)試1.地點:信息樓5032.目的:保證數(shù)碼管能正常顯示,以及按鍵能控制數(shù)碼管的顯示3.內(nèi)容:在編寫程序前,應認真閱讀led和zlg7289a資料,了解和掌握其工作時序,及各個指令及初始化,在程序編寫時應時刻注意各個指令間的延時控制。對照電路圖中zlg728
30、9模塊的連接情況,編寫程序,經(jīng)過編譯,然后下載到單片機,檢測展現(xiàn)效果,是否與程序預期相同。實現(xiàn)效果逐個閃爍,逐個消隱,鍵盤控制改變數(shù)據(jù)并移動,與預期相同,工作狀態(tài)正常。再利用單片機內(nèi)部時鐘中斷,編寫數(shù)碼管時鐘程序,使數(shù)碼管能夠?qū)崿F(xiàn)計時功能,鍵盤能夠控制時分秒。數(shù)碼管顯示及鍵盤控制程序見附錄63.6系統(tǒng)綜合功能設計1.地點:信息樓5032.目的:綜合單片機開發(fā)板上的各個功能模塊,以實現(xiàn)一個完整的系統(tǒng)功能3.內(nèi)容:根據(jù)前面對各模塊功能的理解和程序編寫,結合各個模塊實現(xiàn)一個整體系統(tǒng),把各模塊功能綜合起來。設計一綜合系統(tǒng)。系統(tǒng)設計程序見附錄7。驗收程序設計:仿手機按鍵 如圖功能概述:1,led:12個
31、按鍵仿手機按鍵(按“按鍵”一下led顯示對應的數(shù)字,按兩下顯示后面的字母,以此類推2,蜂鳴器:有按鍵按下則響一下3,數(shù)碼管部分:0,1位置顯示按下的按鍵的對應鍵值附錄附錄1:附錄2:附錄3:#include #define uchar unsigned charsbit buzz=p33;void delay()uchar i;for(i=0;i1000;i+)main()while(1)buzz=0;delay();buzz=1;delay();附錄4:#include #include #ifdef monitor51 char code reserve 3 _at_ 0x23;#endi
32、fvoid main (void) unsigned int i=100;#ifndef monitor51scon = 0x50;tmod |= 0x20; th1 = 0xe6; tr1 = 1; ti = 1; #endifwhile (i-) printf(%d,i); printf (hello everyonen); while(1);附錄5:#include unsigned char codedispcode1=happy birthdy!; /要顯示的字符串unsigned char codedispcode2=happy everyday!;unsigned char i,
33、j,k,l;sbit rs=p20; /io口定義sbit rw=p21;sbit e=p22;void delay() /延時函數(shù) for(l=0;l=100;l+);void lcd_cmd(unsigned char cmd)/寫指令函數(shù)p0=cmd;rs=0;rw=0;e=0;delay();e=1;void lcd_dat(unsigned char dat) /寫數(shù)據(jù)函數(shù) p0=dat;rs=1;rw=0;e=0;delay();e=1;void lcd_table(unsigned char table,int n) /寫字符串函數(shù)int i=0;for(i=0;in;i+)lc
34、d_dat(tablei);void initializtion() /初始化函數(shù)lcd_cmd(0x01); lcd_cmd(0x38); lcd_cmd(0x0f); lcd_cmd(0x06);void main() initializtion(); lcd_cmd(0x80); lcd_table(dispcode1 ,16); lcd_cmd(0xc0); lcd_table(dispcode2 ,16);附錄6: #includesbit cs=p10; /io定義sbit clk=p11;sbit dio=p12;sbit int=p32;void delay(unsigned
35、int n)while(n-); void write(char dat)int t=8;dodio= (bit)(dat & 0x80);dat=1; clk=1;delay(30);clk=0; delay(30);while(-t!=0) ;char read() char dat; int t=8; dio=1; do clk = 1;delay(50); dat 2 ) mod = 2;d1 = moddatmod;x &= 0x07;d1 |= x;d2 = dat & 0x7f;if ( dp ) d2 |= 0x80;cmd_dat(d1,d2); /下載數(shù)據(jù)并且按方式0 進行
36、譯碼char key() /讀按鍵值的函數(shù)char key;cs = 0;delay(200);write(0x15);delay(200);key = read();cs = 1;delay(100);return key;void keydisp() /數(shù)碼管顯示按鍵的函數(shù)char k,dat;char i=150;while(i)if ( int = 0 ) /有鍵按下k = key();switch(k)case 10:cmd_dat(0x88,0);break;/閃爍 case 11:cmd_dat(0x88,0xff);break;/ 去閃爍case 12:cmd(0xa1);br
37、eak;/ 右移case 13:cmd(0xa0);break;/ 左移case 14:cmd_dat(0x98,0xaa);break;/ 消影case 15:cmd_dat(0x98,0xff);break;/ 顯示default: cmd(0xa2); download(1,3,0,k); /顯示09 while ( !int ); i-=1; void init()/初始化函數(shù)unsigned char x;cs = 1;clk = 0;dio = 1;int = 1;for ( x=0; x8; x+ ) /點亮所有數(shù)碼管/download(1,x,1,8); void main()
38、init();cmd(0xa4);keydisp();/調(diào)用函數(shù)以在數(shù)碼管上顯示按鍵值while(1); 附錄7:#include#include#include #define uchar unsigned char#define uint unsigned int#define delaynop() _nop_();_nop_();_nop_();_nop_();sbit rs=p20;sbit rw=p21;sbit en=p22;sbit spk=p33;unsigned char x;unsigned char dat;unsigned char k;/定義i/o 接口sbit zl
39、g7289_pincs = p10; /片選信號,低電平有效sbit zlg7289_pinclk = p11; /時鐘信號,上升沿有效sbit zlg7289_pindio = p12; /數(shù)據(jù)信號,雙向sbit zlg7289_pinint = p32; /鍵盤中斷請求信號,低電平(負邊沿)有效/執(zhí)行zlg7289 純指令extern void zlg7289_cmd(char cmd);/執(zhí)行zlg7289 帶數(shù)據(jù)指令extern void zlg7289_cmd_dat(char cmd, char dat);/以下是zlg7289 的用戶指令集/復位(清除)指令#define zlg
40、7289_reset() zlg7289_cmd(0xa4)/測試指令#define zlg7289_test() zlg7289_cmd(0xbf)/左移指令#define zlg7289_shl() zlg7289_cmd(0xa0)/右移指令#define zlg7289_shr() zlg7289_cmd(0xa1)/循環(huán)左移指令#define zlg7289_rol() zlg7289_cmd(0xa2)/循環(huán)右移指令#define zlg7289_ror() zlg7289_cmd(0xa3)/下載數(shù)據(jù)extern void zlg7289_download(unsigned ch
41、ar mod, char x, bit dp, char dat);/閃爍控制/ x 的8 個位分別對應數(shù)碼管的8 個位,0閃爍,1不閃爍#define zlg7289_flash(x) zlg7289_cmd_dat(0x88,(x)/消隱控制/ x 的8 個位分別對應數(shù)碼管的8 個位,0消隱,1顯示#define zlg7289_hide(x) zlg7289_cmd_dat(0x98,(x)/段點亮指令/seg=063,8 只數(shù)碼管被看成64 只獨立的led/每只數(shù)碼管中各段的點亮順序按照“g,f,e,d,c,b,a,dp”進行#define zlg7289_segon(seg) zlg
42、7289_cmd_dat(0xe0,(seg)/段關閉指令/seg=063,8 只數(shù)碼管被看成64 只獨立的led/每只數(shù)碼管中各段的熄滅順序按照“g,f,e,d,c,b,a,dp”進行#define zlg7289_segoff(seg) zlg7289_cmd_dat(0xc0,(seg)/執(zhí)行zlg7289 鍵盤命令extern char zlg7289_key() reentrant;/zlg7289 初始化extern void zlg7289_init(unsigned char t);unsigned char zlg7289_delay_t;/*宏定義:zlg7289_shor
43、tdelay()功能:短延時說明:延時(zlg7289_delay_t*2+2)個機器周期*/#define zlg7289_shortdelay() unsigned char t = zlg7289_delay_t;while ( -t != 0 );/*宏定義:zlg7289_longdelay()功能:長延時說明:延時(zlg7289_delay_t*12+8)個機器周期*/#define zlg7289_longdelay() unsigned char t = zlg7289_delay_t * 6;while ( -t != 0 );/*函數(shù):zlg7289_spi_write()功能:向spi 總線寫入1 個字節(jié)的數(shù)據(jù)參數(shù):dat:要寫入的數(shù)據(jù)*/void zlg7289_spi_write(char dat) reentrantunsigned char t = 8;dozlg7289_pindio = (bit)(dat & 0x80);dat = 1;zlg7289_pinclk =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高中語文第二單元置身詩境緣景明情自主賞析夢游天姥吟留別學案新人教版選修中國古代詩歌散文欣賞
- 2024高考化學一輪復習第十一章有機化學基礎第三講烴的含氧衍生物規(guī)范演練含解析新人教版
- 2024高考地理一輪復習第七章區(qū)域產(chǎn)業(yè)活動第24講工業(yè)區(qū)位因素與工業(yè)地域聯(lián)系教案湘教版
- DB42-T 2341-2024 綜合管廊頂管工程技術規(guī)程
- 二零二五年版環(huán)保建材板材買賣合同范本3篇
- 2024年海南經(jīng)貿(mào)職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2024年海南體育職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 危險化學品典型案例課件
- 2024年河南對外經(jīng)濟貿(mào)易職業(yè)學院高職單招職業(yè)適應性測試歷年參考題庫含答案解析
- 二零二五年城市夜景照明設施改造與維護服務合同范本3篇
- 航空航天鍛鑄造行業(yè)深度報告
- ABB-XE系列電磁流量計操作手冊
- 付款通知確認單
- 汽機油管道安裝方案指導
- 2022年中國城市英文名稱
- 下肢皮牽引護理PPT課件(19頁PPT)
- 電 梯 工 程 預 算 書
- 參會嘉賓簽到表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
評論
0/150
提交評論