針對模擬型頻率/電流變送器在低頻段存在精度差、響應(yīng)速度慢的問題,提出了一種基于AT89S52單片機(jī)的頻率/電流變送器設(shè)計(jì)方案,并完成了系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)主要由M/T法測頻電路、D/A轉(zhuǎn)換器、V/I轉(zhuǎn)換電路、RS232通訊接口組成,能夠?qū)︻l率進(jìn)行高精度測量,并將其轉(zhuǎn)換成4-20 mA標(biāo)準(zhǔn)信號。實(shí)驗(yàn)證明,所設(shè)計(jì)的系統(tǒng)運(yùn)行穩(wěn)定,人機(jī)對話方便,在整個(gè)測量頻段,系統(tǒng)響應(yīng)快、精度高、無紋波,達(dá)到了設(shè)計(jì)要求。
上傳時(shí)間: 2013-10-13
上傳用戶:432234
帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示8×4行16×16點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。 基本特性: 低電源電壓(VDD:+3.0--+5.5V) 顯示分辨率:128×64點(diǎn) 內(nèi)置漢字字庫,提供8192個(gè)16×16點(diǎn)陣漢字(簡繁體可選) 內(nèi)置 128個(gè)16×8點(diǎn)陣字符 2MHZ時(shí)鐘頻率 顯示方式:STN、半透、正顯 驅(qū)動方式:1/32DUTY,1/5BIAS 視角方向:6點(diǎn) 背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5—1/10 通訊方式:串行、并口可選 內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負(fù)壓 無需片選信號,簡化軟件設(shè)計(jì) 工作溫度: 0℃ - +55℃ ,存儲溫度: -20℃ - +60℃ 12864(帶字庫漢字顯示演示程序) ;*************************************************************************** ;* sxj1974@163.com (51c51 test web) www.8951.com * ;* Create by :石學(xué)軍 www.51c51.com 更多例程請登陸網(wǎng)站 * ;*************************************************************************** RS EQU P2.0 RW EQU P2.1 E EQU P2.2 PSB EQU P2.3 RST EQU P2.5 ;----------------------------------------------- LCD_X EQU 30H LCD_Y EQU 31H COUNT EQU 32H COUNT1 EQU 33H COUNT2 EQU 34H COUNT3 EQU 35H ;----------------------------------------------- LCD_DATA EQU 36H LCD_DATA1 EQU 37H LCD_DATA2 EQU 38H STORE EQU 39H ;----------------------------------------------- ORG 0000H LJMP MAIN ORG 0100H ;----------------------------------------------- MAIN: MOV SP,#5FH CLR RST ;復(fù)位 LCALL DELAY4 SETB RST NOP SETB PSB ;通訊方式為8位數(shù)據(jù)并口 ;********************初始化********************** LGS0: MOV A,#34H ;34H--擴(kuò)充指令操作 LCALL SEND_I MOV A,#30H ;30H--基本指令操作 LCALL SEND_I MOV A,#01H ;清除顯示 LCALL SEND_I MOV A,#06H ;指定在資料寫入或讀取時(shí),光標(biāo)的移動方向 LCALL SEND_I ;DDRAM 的地址計(jì)數(shù)器(AC)加1 MOV A,#0CH ;開顯示,關(guān)光標(biāo),不閃爍 LCALL SEND_I ;=============================================== TU_PLAY1: MOV DPTR,#TU_TAB1 ;顯示圖形 LCALL PHO_DISP LCALL DELAY3 ;================================================= ;;顯示漢字和字符 ;加入80ms的延時(shí),使你能夠看清楚顯示的過程 ;根據(jù)漢字顯示坐標(biāo)分段寫入(順序?qū)懭耄? ;================================================= HAN_WR2: LCALL CLEAR_P HAN_WR2A: MOV DPTR,#TAB1A ;顯示漢字和字符 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#80H ;第一行起始地址 LCALL SEND_I LCALL QUSHU HAN_WR2B: MOV DPTR,#TAB1B ;顯示漢字和字符 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#90H ;第二行起始地址 LCALL SEND_I LCALL QUSHU HAN_WR2C: MOV DPTR,#TAB1C ;顯示漢字和字符 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#88H ;第三行起始地址 LCALL SEND_I LCALL QUSHU HAN_WR2D: MOV DPTR,#TAB1D ;顯示漢字和字符 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#98H ;第四行起始地址 LCALL SEND_I LCALL QUSHU LCALL DELAY3 LCALL FLASH LCALL CLEAR_P JMP TU_PLAY2 ;---------------------------------------------- ;TU_PLAY1: MOV DPTR,#TU_TAB1 ;顯示圖形 LCALL PHO_DISP LCALL DELAY3 ;---------------------------------------------- TU_PLAY2: MOV DPTR,#TU_TAB2 ;顯示圖形 LCALL PHO_DISP LCALL DELAY3 ;---------------------------------------------- TU_PLAY3: MOV DPTR,#TU_TAB4 ;顯示圖形 LCALL PHO_DISP LCALL DELAY3 ;----------------------------------------------- ;顯示點(diǎn)陣 ;----------------------------------------------- LATPLAY1: MOV A,#01H ;清屏 LCALL SEND_I MOV LCD_DATA1,#0CCH ;顯示點(diǎn)陣 MOV LCD_DATA2,#0CCH LCALL LAT_DISP LCALL DELAY3 LCALL CLEAR_P KU_PLAY2: LJMP TU_PLAY1 ;=============================================== ;全屏顯示圖形子程序 ;=============================================== PHO_DISP: MOV COUNT3,#02H MOV LCD_X,#80H PHO_DISP1: MOV LCD_Y,#80H MOV COUNT2,#20H PHO_DISP2: MOV COUNT1,#10H LCALL WR_ZB PHO_DISP3: CLR A MOVC A,@A+DPTR LCALL SEND_D INC DPTR DJNZ COUNT1,PHO_DISP3 INC LCD_Y DJNZ COUNT2,PHO_DISP2 MOV LCD_X,#88H DJNZ COUNT3,PHO_DISP1 MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;---------------------------------------------- CLRRAM: MOV LCD_DATA1,#00H ;GDRAM寫0子程序 MOV LCD_DATA2,#00H LCALL LAT_DISP RET ;============================================== ;顯示點(diǎn)陣子程序 ;============================================== LAT_DISP: MOV COUNT3,#02H MOV LCD_X,#80H LAT_DISP1: MOV LCD_Y,#80H CLR F0 MOV COUNT2,#20H LAT_DISP2: MOV COUNT1,#10H LCALL WR_ZB LAT_DISP3: JB F0,LAT_DISP32 MOV LCD_DATA,LCD_DATA1 AJMP LAT_DISP31 LAT_DISP32: MOV LCD_DATA,LCD_DATA2 LAT_DISP31: MOV A,LCD_DATA LCALL SEND_D DJNZ COUNT1,LAT_DISP31 INC LCD_Y CPL F0 DJNZ COUNT2,LAT_DISP2 MOV LCD_X,#88H DJNZ COUNT3,LAT_DISP1 MOV A,#36H LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;--------------------------------------------- WR_ZB: MOV A,#34H LCALL SEND_I MOV A,LCD_Y LCALL SEND_I MOV A,LCD_X LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;=============================================== FLASH: MOV A,#08H ;關(guān)閉顯示 LCALL SEND_I LCALL DELAY5 MOV A,#0CH ;開顯示,關(guān)光標(biāo),不閃爍 LCALL SEND_I LCALL DELAY5 MOV A,#08H ;關(guān)閉顯示 LCALL SEND_I LCALL DELAY5 MOV A,#0CH ;開顯示,關(guān)光標(biāo),不閃爍 LCALL SEND_I LCALL DELAY5 MOV A,#08H ;關(guān)閉顯示 LCALL SEND_I LCALL DELAY5 RET ;================================================== ;清屏 ;================================================== CLEAR_P: MOV A,#01H ;清屏 LCALL SEND_I MOV A,#34H LCALL SEND_I MOV A,#30H LCALL SEND_I RET ;================================================== ;查表取數(shù)據(jù)送顯示 ;================================================== QUSHU: CLR A MOVC A,@A+DPTR ;查表取數(shù)據(jù) LCALL SEND_D ;送顯示 INC DPTR LCALL DELAY4 ;延時(shí)80ms, DJNZ COUNT,QUSHU RET ;=============================================== ;寫數(shù)據(jù)子程序 ;RS=1,RW=0,E=高脈沖,D0-D7=數(shù)據(jù) ;=============================================== SEND_D: LCALL CHK_BUSY ;寫數(shù)據(jù)子程序 SETB RS CLR RW MOV P0,A SETB E NOP NOP CLR E RET ;=============================================== ;寫指令子程序 ;RS=0,RW=0,E=高脈沖,D0-D7=指令碼 ;=============================================== SEND_I: LCALL CHK_BUSY CLR RS CLR RW MOV P0,A SETB E NOP NOP CLR E RET ;================================================ ;讀數(shù)據(jù)子程序 ;RS=1,RW=1,E=H,D0-D7=數(shù)據(jù) ;================================================ READ_D: LCALL CHK_BUSY ;讀數(shù)據(jù)子程序 SETB RS SETB RW SETB E NOP MOV A,P0 CLR E MOV STORE,A RET ;================================================ ;;測忙碌子程序 ;RS=0,RW=1,E=H,D0-D7=狀態(tài)字 ;================================================ CHK_BUSY: MOV P0,#0FFH ;測忙碌子程序 CLR RS SETB RW SETB E JB P0.7,$ CLR E RET ;================================================ ;延時(shí)子程序 DELAY3: MOV R5,#16H DEL31: MOV R6,#100 DEL32: MOV R7,#0FFH DEL33: DJNZ R7,DEL33 DJNZ R6,DEL32 DJNZ R5,DEL31 RET DELAY2: MOV R6,#0CH DEL21: MOV R7,#18H DEL22: DJNZ R7,DEL22 DJNZ R6,DEL21 RET DELAY1: MOV R6,#06H DEL11: MOV R7,#08H DEL12: DJNZ R7,DEL12 DJNZ R6,DEL11 RET DELAY4: MOV R6,#100 DEL41: MOV R7,#200 DEL42: DJNZ R7,DEL42 DJNZ R6,DEL41 RET DELAY5: MOV R5,#05H DEL51: MOV R6,#100 DEL52: MOV R7,#0FFH DEL53: DJNZ R7,DEL53 DJNZ R6,DEL52 DJNZ R5,DEL51 RET ;*********************************************** TAB1: TAB1A: DB ' 51單片機(jī)學(xué)習(xí)網(wǎng)(深圳學(xué)林電子有限公司) ' ;顯示在第一行 TAB1C: DB '自學(xué)單片機(jī)第一站' ;顯示在第三行 TAB1B: DB ' WWW.8951.COM ' ;顯示在第二行 TAB1D: DB 'TEL 755-89956892' ;顯示在第四行 ;*-------------------------------------------------------------------- * ;* Bitmap點(diǎn)陣數(shù)據(jù)表 * ;* 圖片: E:\圖形8.bmp,橫向取模左高位,數(shù)據(jù)排列:從左到右從上到下 * ;* 圖片尺寸: 128 * 64 * ;*-------------------------------------------------------------------- * TU_TAB1: ; 數(shù)據(jù)表 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 3Ch, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 7Fh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h,0FFh,0C0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 01h,0BFh,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 01h,0FFh,0DCh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 01h, 1Fh,0FEh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 01h,0DFh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h,0FFh,0FFh, 19h, 8Ch, 03h, 06h, 00h, 18h, 00h,0FFh,0E1h db 80h, 00h, 00h, 00h, 00h, 3Fh,0FFh, 0Ch,0CCh, 03h, 06h, 00h, 18h, 00h,0FFh,0E1h db 80h, 00h, 00h, 00h, 00h, 7Fh,0FFh, 04h, 58h, 03h, 06h, 01h,0FFh,0C0h, 00h,0C1h db 80h, 00h, 00h, 00h, 00h, 7Fh,0DAh, 3Fh,0FEh, 0Fh,0DFh,0C1h,0FFh,0C0h, 01h, 81h db 80h, 00h, 00h, 00h, 00h, 7Fh, 8Ch, 3Fh,0FEh, 0Fh,0DFh,0C1h, 98h,0C0h, 07h, 01h db 80h, 00h, 00h, 00h, 00h, 7Fh,0B8h, 30h, 06h, 03h, 06h, 01h, 98h,0C0h, 06h, 01h db 80h, 00h, 00h, 00h, 00h,0FEh,0C0h, 0Fh,0F8h, 03h, 8Eh, 01h,0FFh,0C3h,0FFh,0F9h db 80h, 00h, 00h, 00h, 00h, 7Eh, 00h, 0Fh,0F8h, 07h,0CFh, 01h, 98h,0C3h,0FFh,0F9h db 80h, 00h, 00h, 00h, 00h, 7Fh, 00h, 00h, 60h, 07h, 5Fh, 81h, 98h,0C0h, 06h, 01h db 80h, 00h, 00h, 00h, 00h, 7Fh, 80h, 3Fh,0FEh, 0Fh, 36h,0C1h,0FFh,0C0h, 06h, 01h db 80h, 00h, 00h, 00h, 00h, 1Fh, 80h,0BFh,0FEh, 0Bh, 36h, 61h,0FFh,0C0h, 06h, 01h db 80h, 00h, 00h, 00h, 00h, 1Fh,0C7h, 00h,0C0h, 03h, 66h, 21h, 98h, 30h, 06h, 01h db 80h, 00h, 00h, 00h, 15h, 5Fh,0C7h, 00h,0C0h, 03h, 06h, 00h, 18h, 30h, 06h, 01h db 80h, 00h, 02h,0E0h, 06h, 7Fh,0CEh, 03h,0C0h, 03h, 06h, 00h, 1Fh,0F0h, 1Eh, 01h db 80h, 00h, 04h, 54h, 4Fh,0FFh,0FCh, 01h, 80h, 03h, 06h, 00h, 0Fh,0E0h, 0Ch, 01h db 80h, 00h, 03h,0FDh, 3Fh,0FFh,0D9h,0C0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 1Dh,0FFh,0FFh,0FFh, 87h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 2Bh,0FFh,0F8h, 7Fh, 06h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 3Fh,0BFh,0F8h, 09h, 0Fh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 1Fh, 9Fh,0F0h, 00h,0BCh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 9Dh,0FEh, 1Fh, 8Fh,0F0h, 00h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 9Fh,0FCh, 17h, 8Fh,0F0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 81h,0FFh,0CFh, 9Fh,0E0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 82h,0FFh,0FFh, 9Ch, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 81h, 7Fh,0FFh,0FCh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 6Fh,0FEh, 30h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 03h,0FCh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 34h, 14h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 0Eh, 18h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 02h, 30h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 01h,0E0h, 00h, 00h, 7Fh, 04h, 00h, 3Fh, 82h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 7Fh, 0Ch, 00h, 3Fh, 86h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 7Fh, 1Ch, 00h, 3Fh, 8Eh, 00h, 00h, 00h, 00h, 01h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 70h, 7Ch, 38h, 38h, 3Eh, 00h,0E0h, 38h, 3Bh, 31h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 70h, 7Ch, 3Ch, 38h, 3Eh, 00h,0F0h, 7Ch, 3Fh,0F9h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 76h, 1Ch, 7Eh, 3Bh, 0Eh, 01h,0F8h,0FEh, 3Fh,0F9h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 7Fh, 1Ch, 76h, 3Fh, 8Eh, 01h,0D8h,0EEh, 3Bh,0B9h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 7Fh, 1Ch, 76h, 3Fh, 8Eh, 01h,0D8h,0EEh, 3Bh,0B9h db 83h,0BBh, 9Dh,0DCh,0EEh,0E0h, 77h, 1Ch, 76h, 3Bh, 8Eh, 01h,0D8h,0EEh, 3Bh,0B9h db 81h,0BBh, 0Dh,0D8h, 6Eh,0C0h, 07h, 1Ch, 70h, 03h, 8Eh, 01h,0C0h,0EEh, 3Bh,0B9h db 81h,0ABh, 0Dh, 58h, 6Ah,0C0h, 07h, 1Ch, 70h, 03h, 8Eh, 01h,0C0h,0EEh, 3Bh,0B9h db 81h,0ABh, 0Dh, 58h, 6Ah,0C0h, 77h, 1Ch, 70h, 3Bh, 8Eh, 01h,0C0h,0EEh, 3Bh,0B9h db 81h,0ABh, 0Dh, 58h, 6Ah,0C0h, 77h, 1Ch, 76h, 3Bh, 8Eh, 01h,0D8h,0EEh, 3Bh,0B9h db 81h,0EFh, 0Fh, 78h, 7Bh,0C0h, 77h, 1Ch, 76h, 3Bh, 8Eh, 01h,0D8h,0EEh, 3Bh,0B9h db 81h,0EFh, 0Fh, 78h, 7Bh,0DCh, 77h, 1Ch, 76h, 3Bh, 8Eh, 39h,0D8h,0EEh, 3Bh,0B9h db 81h,0EFh, 0Fh, 78h, 7Bh,0DCh, 7Fh, 1Ch, 7Eh, 3Fh, 8Eh, 39h,0F8h,0FEh, 3Bh,0B9h db 81h,0EFh, 0Fh, 78h, 7Bh,0DCh, 3Eh, 1Ch, 3Ch, 1Fh, 0Eh, 38h,0F0h, 7Ch, 3Bh,0B9h db 81h,0EFh, 0Fh, 78h, 7Bh,0DCh, 1Ch, 1Ch, 3Ch, 0Eh, 0Eh, 38h,0F0h, 78h, 3Bh,0B9h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ;*-------------------------------------------------------------------- * ;* Bitmap點(diǎn)陣數(shù)據(jù)表 * ;* 圖片: E:\圖形12.bmp,橫向取模左高位,數(shù)據(jù)排列:從左到右從上到下 * ;* 圖片尺寸: 128 * 64 * ;*-------------------------------------------------------------------- * TU_TAB2: ; 數(shù)據(jù)表 db 40h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 03h, 65h,0E8h, 80h, 00h, 01h db 9Ah,0D6h,0B4h, 42h, 00h, 00h, 00h, 00h, 00h, 00h, 34h,0DAh,0D0h, 00h, 00h, 01h db0A4h, 00h, 02h, 10h, 6Bh, 30h, 00h, 00h, 00h, 00h, 8Bh,0FFh, 30h, 00h, 00h, 01h db 42h,0D6h,0B0h, 42h, 80h, 00h, 00h, 00h, 00h, 16h, 77h,0FEh,0C0h, 00h, 00h, 01h db 42h,0D6h,0B0h, 42h, 80h, 00h, 00h, 00h, 00h, 16h, 77h,0FEh,0C0h, 00h, 00h, 01h db0B9h, 20h, 04h, 00h, 00h, 02h, 10h, 00h, 00h, 00h,0BCh,0BCh, 00h, 00h, 00h, 01h db 46h,0D6h,0B1h,0ACh, 6Bh, 30h, 00h, 00h, 02h, 29h,0CBh, 40h, 00h, 00h, 00h, 01h db0FFh,0F9h, 04h, 01h, 00h, 00h, 00h, 00h, 01h, 16h,0B4h,0A0h, 00h, 00h, 00h, 01h db0FFh,0FFh,0F2h, 50h, 00h, 40h, 00h, 00h, 00h, 29h, 4Bh, 00h, 00h, 00h, 00h, 01h db0FFh,0FFh,0F2h, 50h, 00h, 40h, 00h, 00h, 00h, 29h, 4Bh, 00h, 00h, 00h, 00h, 01h db0FFh,0FFh,0BDh, 82h, 94h, 00h, 40h, 00h, 00h,0C9h, 30h, 02h, 00h, 00h, 00h, 01h db0FFh,0FFh,0FBh,0B0h, 00h, 08h, 00h, 00h, 05h, 16h, 44h, 40h, 00h, 00h, 00h, 01h db0FFh,0FFh,0FFh,0EFh, 90h, 40h, 00h, 00h, 00h, 21h, 00h, 04h,0C8h, 30h, 00h, 01h db0A5h,0FFh,0FFh,0FDh, 6Bh, 00h, 00h, 00h, 00h,0C8h, 00h, 99h, 16h,0FAh, 40h, 01h db0A5h,0FFh,0FFh,0FDh, 6Bh, 00h, 00h, 00h, 00h,0C8h, 00h, 99h, 16h,0FAh, 40h, 01h db 82h, 2Fh,0FFh,0FFh,0E8h, 84h, 00h, 00h, 00h, 00h, 08h, 00h,0DFh,0FFh,0ECh, 01h db 24h,0C1h, 7Fh,0FFh,0F4h, 30h, 00h, 00h, 00h, 00h, 00h,0A7h,0FFh,0FFh,0FCh, 01h db 42h, 28h, 05h,0BFh,0FBh, 80h, 00h, 00h, 00h, 00h, 04h, 1Bh,0FFh,0FFh,0FFh, 81h db 98h,0C1h, 4Ah, 53h,0ECh, 48h, 00h, 00h, 00h, 00h, 40h, 7Fh,0FFh,0FFh,0FFh,0E1h db 98h,0C1h, 4Ah, 53h,0ECh, 48h, 00h, 00h, 00h, 00h, 40h, 7Fh,0FFh,0FFh,0FFh,0E1h db 42h, 28h, 00h, 0Ch, 77h, 82h, 00h, 00h, 00h, 00h, 33h,0BFh,0FFh,0FFh,0FFh, 89h db 18h,0C1h, 4Ah, 51h, 9Bh, 74h, 00h, 00h, 00h, 00h, 04h,0FFh, 3Fh,0FFh,0DFh,0F1h db0C2h, 28h, 00h, 0Ch, 04h, 80h, 00h, 00h, 00h, 00h, 40h,0FEh, 1Fh,0F9h,0C3h,0F9h db 1Ah,0D6h,0B5h,0A1h, 6Bh, 75h, 80h, 00h, 00h, 00h, 8Fh,0FCh, 3Fh,0F2h, 0Fh, 1Fh db 1Ah,0D6h,0B5h,0A1h, 6Bh, 75h, 80h, 00h, 00h, 00h, 8Fh,0FCh, 3Fh,0F2h, 0Fh, 1Fh db0C5h, 29h, 79h, 8Ch, 00h, 88h, 00h, 00h, 00h, 00h, 03h,0F8h, 1Fh,0C8h, 52h, 81h db 22h,0FFh,0FFh,0F2h, 6Bh, 35h, 80h, 00h, 00h, 00h, 37h,0C2h, 3Fh,0FBh,0FCh, 09h db 9Ah,0FFh,0FFh,0FFh, 00h, 48h, 00h, 00h, 00h, 00h, 07h,0D8h, 1Fh,0FFh,0E3h, 81h db 9Ah,0FFh,0FFh,0FFh, 00h, 48h, 00h, 00h, 00h, 00h, 07h,0D8h, 1Fh,0FFh,0E3h, 81h db 47h,0FFh,0FFh,0FFh,0F3h, 35h, 80h, 00h, 00h, 00h, 8Fh,0C1h, 0Fh,0FFh,0ACh, 01h db0B9h,0FFh,0FFh,0FFh,0FCh, 4Ah, 20h, 00h, 00h, 00h, 0Fh,0A4h, 07h,0FEh, 40h, 01h db 5Fh,0FFh,0C7h,0FFh,0FCh,0B5h, 80h, 00h, 00h, 00h, 4Fh,0DAh,0FFh,0F8h, 00h, 01h db0A7h,0FFh,0B7h,0FFh,0FFh, 8Ah, 20h, 00h, 00h, 00h, 0Fh,0FFh,0EFh, 40h, 00h, 01h db0A7h,0FFh,0B7h,0FFh,0FFh, 8Ah, 20h, 00h, 00h, 00h, 0Fh,0FFh,0EFh, 40h, 00h, 01h db 7Fh,0FFh, 47h,0FDh, 7Fh,0C5h, 80h, 00h, 00h, 00h, 3Fh,0DAh,0D0h, 00h, 00h, 01h db0A7h,0FEh, 37h,0FFh, 7Ch,0FAh, 50h, 00h, 00h, 00h, 0Ch,0A4h, 08h, 00h, 00h, 01h db0DFh,0FEh, 43h,0FFh,0F8h,0C1h, 80h, 00h, 00h, 00h, 48h, 01h, 00h, 00h, 00h, 01h db 27h,0FFh, 4Bh,0FFh,0FFh,0FAh, 2Ch, 00h, 00h, 00h, 03h, 58h, 20h, 00h, 00h, 01h db 27h,0FFh, 4Bh,0FFh,0FFh,0FAh, 2Ch, 00h, 00h, 00h, 03h, 58h, 20h, 00h, 00h, 01h db 9Bh,0FFh,0C3h,0FFh,0FFh,0F1h,0C0h, 00h, 00h, 00h, 08h, 00h, 00h, 00h, 00h, 01h db 64h, 3Fh,0FDh,0FFh, 6Bh, 7Ch, 10h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 03h,0D7h,0FFh,0FDh, 10h, 01h,0A0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0D8h, 29h, 4Fh,0A2h, 80h,0B5h, 90h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0D8h, 29h, 4Fh,0A2h, 80h,0B5h, 90h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 05h, 10h,0B0h, 4Ch, 0Bh, 08h, 40h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0A0h,0C9h, 0Ah, 00h, 00h, 42h, 10h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 04h, 10h, 40h, 21h, 64h, 09h,0A0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0A2h,0C1h, 35h, 8Ch, 00h, 44h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0A2h,0C1h, 35h, 8Ch, 00h, 44h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 00h, 16h, 00h, 21h, 14h, 09h,0A0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0A5h, 00h,0B5h, 80h, 83h, 44h, 0Ch, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 00h, 26h, 00h, 12h, 08h, 09h,0A0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0DAh, 00h,0B4h, 40h, 60h, 44h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0DAh, 00h,0B4h, 40h, 60h, 44h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h,0C8h, 00h, 00h, 04h, 01h,0A0h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0A2h, 20h, 89h, 91h, 10h, 8Ah, 10h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 44h, 06h, 00h, 00h, 00h, 30h, 40h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 44h, 06h, 00h, 00h, 00h, 30h, 40h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ;*-------------------------------------------------------------------- * ;*-------------------------------------------------------------------- * ;* Bitmap點(diǎn)陣數(shù)據(jù)表 * ;* 圖片: E:\圖形13.bmp,橫向取模左高位,數(shù)據(jù)排列:從左到右從上到下 * ;* 圖片尺寸: 128 * 64 * ;*-------------------------------------------------------------------- * TU_TAB4: ; 漂亮姑娘看過來 db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h,0FFh, 80h, 40h, 08h, 30h, 10h, 20h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 68h, 3Fh,0FFh, 08h, 30h, 11h,0F8h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h,0FFh, 00h, 00h, 7Fh,0FEh, 7Dh, 08h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 11h, 6Bh, 07h,0FCh, 16h, 30h, 2Dh,0F8h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 04h, 0Ch, 16h, 30h, 2Dh, 08h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 00h, 3Fh,0FFh, 16h, 30h, 2Dh,0F8h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch,0FFh, 30h, 01h, 66h,0FEh, 2Dh, 26h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 1Ch, 00h, 03h,0F0h, 76h, 82h, 2Dh, 28h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh,0FFh, 82h, 11h, 08h, 82h, 11h, 10h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Ch, 8Bh, 04h, 11h, 16h, 82h, 2Dh, 28h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 0Dh, 18h,0B8h, 1Fh, 60h,0FEh, 41h,0C6h, 00h db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 07h, 8Fh,0FFh, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 08h, 70h, 40h,0EFh, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 00h, 10h, 00h, 80h, 10h, 60h, 00h, 0Fh,0FFh, 30h, 0Ch, 00h, 80h, 00h, 00h, 00h db 00h, 20h, 18h, 38h, 20h, 60h, 00h, 00h, 60h, 08h, 0Ch, 1Fh,0FCh, 1Ch, 00h, 00h db 00h,0C0h, 64h, 45h, 00h, 60h, 00h, 03h,0FCh, 0Bh,0FFh, 00h, 80h, 3Eh, 00h, 00h db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h db 00h,0C1h, 00h, 01h, 00h, 10h, 00h, 00h, 80h, 00h, 0Ch, 08h, 88h, 3Eh, 00h, 00h db 01h, 01h, 00h, 00h,0C0h, 10h, 00h, 1Fh,0FFh,0BDh, 8Ch, 06h,0B0h, 3Eh, 00h, 00h db 02h, 0Eh, 18h, 1Ch,0C0h, 10h, 00h, 01h, 00h, 04h, 4Ch, 7Fh,0FEh, 1Ch, 00h, 00h db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h db 02h, 16h, 64h, 22h, 20h, 10h, 00h, 03h,0FCh, 04h, 4Ch, 01h,0C0h, 1Ch, 00h, 00h db 04h,0E8h, 83h, 41h, 1Ch, 08h, 00h, 0Dh, 04h, 04h, 0Ch, 06h,0B0h, 00h, 00h, 00h db 07h, 10h, 8Fh, 47h, 03h, 88h, 00h, 11h,0FCh, 04h, 3Ch, 08h, 88h, 1Ch, 00h, 00h db 00h, 20h, 6Ch, 26h, 01h, 78h, 00h, 01h, 04h, 0Ah, 00h, 70h, 86h, 1Ch, 00h, 00h db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h db 00h,0C0h, 18h, 1Ch, 00h, 80h, 00h, 01h,0FCh, 31h,0FFh, 00h, 80h, 00h, 00h, 00h db 00h,0C1h, 87h, 80h, 00h, 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 01h, 06h, 78h, 3Ch, 20h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 01h, 08h, 07h,0C2h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 01h, 08h, 00h, 01h,0C0h, 60h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 01h, 08h, 18h, 01h,0C0h, 60h, 00h, 00h, 00h,0F1h,0F3h, 87h,0C0h, 00h, 00h, 00h db 00h,0C6h, 18h,0C2h, 20h, 80h, 00h, 00h, 03h, 0Eh, 1Ch, 78h, 70h, 00h, 00h, 00h db 00h,0C1h, 00h,0C2h, 00h, 80h, 00h, 00h, 04h, 44h, 11h, 10h, 38h, 00h, 00h, 00h db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h db 00h, 26h,0E0h, 04h, 01h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h db 00h, 11h, 18h, 38h, 03h, 00h, 00h, 00h, 04h, 80h, 12h, 00h, 38h, 00h, 00h, 00h db 00h, 0Eh, 87h,0C2h, 1Ch, 00h, 00h, 00h, 04h, 00h, 10h, 00h, 38h, 00h, 00h, 00h db 00h, 01h,0E0h, 04h,0E0h, 00h, 00h, 00h, 03h, 00h, 1Ch, 00h, 70h, 00h, 00h, 00h db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h db 00h, 1Eh, 18h, 3Fh, 1Eh, 00h, 00h, 00h, 00h, 80h, 32h, 00h,0C0h, 00h, 00h, 00h db 00h, 38h, 07h,0C0h, 0Fh, 00h, 00h, 00h, 00h, 40h, 61h, 01h, 80h, 00h, 00h, 00h db 00h,0E9h,0FFh,0FFh, 0Dh, 80h, 00h, 00h, 00h, 31h,0C0h, 87h, 00h, 00h, 00h, 00h db 01h,0E9h, 1Bh,0B9h, 0Dh,0E0h, 00h, 00h, 00h, 0Bh, 80h, 6Eh, 00h, 00h, 00h, 00h db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h db 03h,0C9h,0F0h, 1Fh, 0Ch,0F0h, 00h, 00h, 00h, 06h, 00h, 18h, 00h, 00h, 00h, 00h db 07h, 06h,0E0h, 06h, 10h, 78h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 07h,0C1h, 00h, 00h, 20h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 07h,0E0h, 80h, 00h,0C1h,0F8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h db 80h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 01h db0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh end
上傳時(shí)間: 2013-10-13
上傳用戶:123啊
本文介紹一種基于C8051F021片上系統(tǒng)的電容式變送器的設(shè)計(jì)方法,對恒流充電法測量電容量的原理進(jìn)行了詳細(xì)的分析,設(shè)計(jì)的電容式變送器輸入信號范圍可以通過軟件設(shè)置,輸出為標(biāo)準(zhǔn)的4~20mA電流信號,能夠和標(biāo)準(zhǔn)信號的工業(yè)儀表或計(jì)算機(jī)測控系統(tǒng)直接接口,并支持MODBUS協(xié)議的RS485現(xiàn)場總線通信。
標(biāo)簽: C8051F021 片上系統(tǒng) 電容式 送器設(shè)計(jì)
上傳時(shí)間: 2013-12-27
上傳用戶:asddsd
摘要:該文介紹了PIC單片機(jī)與ICL7135將檢測到的溫度進(jìn)行轉(zhuǎn)換處理后通過串行口傳送給上位機(jī),應(yīng)用于高精度的溫度檢測儀表中,并詳細(xì)闡述了設(shè)計(jì)的思路、工作原理以及遇到的一些問題、解決方法等。關(guān)鍵詞:PIC單片機(jī);A/D轉(zhuǎn)換;溫度變送器
標(biāo)簽: 7135 PIC 單片機(jī) 中的應(yīng)用
上傳時(shí)間: 2013-11-04
上傳用戶:落花無痕
STH系列溫濕度變送器選用數(shù)字溫濕度傳感器和低功耗單片機(jī)技術(shù)制作,產(chǎn)品具有響應(yīng)時(shí)間短,精度高,長期穩(wěn)定性好等特點(diǎn),廣泛應(yīng)用于暖通空調(diào)、電信基站、機(jī)房、倉庫、紡織、糧食儲備、煙草等要求溫濕度監(jiān)測的場合。
標(biāo)簽: 溫濕度變送器
上傳時(shí)間: 2014-12-27
上傳用戶:wkxiian
PIC16F877 單片機(jī)的鍵盤和LED 數(shù)碼顯示接口 1 PIC16F877單片機(jī)與鍵盤和LED數(shù)碼顯示的硬件接口電路單片機(jī)的許多應(yīng)用都需要進(jìn)行人機(jī)對話,最簡單的人機(jī)對話需要LED 數(shù)碼管顯示數(shù)字和少量字符;鍵盤是解決計(jì)算機(jī)輸入的簡單手段;借此可以向計(jì)算機(jī)輸入程序、置數(shù)、送操作命令、控制程序的執(zhí)行等等,所以使用非常廣泛。圖1 鍵盤、LED數(shù)碼顯示與PIC16F877 單片機(jī)的接口電路本例中采用8 個(gè)按鍵組成的小鍵盤,4 只共陰極的LED 數(shù)碼管,采用4 片74LS373 驅(qū)動數(shù)碼管,采用的驅(qū)動方法是靜態(tài)方式。使用1 片74LS245 作為鍵盤的接口;這些外圍器件與PIC16F877 單片機(jī)的接口電路如圖1 所示,這種連接方法與51 系列的單片機(jī)連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機(jī)的鍵盤輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤通過74LS245 與單片機(jī)相連,鍵盤按鍵狀態(tài)的數(shù)據(jù)輸入由RC3 輸出腳控制;當(dāng)RC3=“0”時(shí),鍵盤狀態(tài)從74LS245 的A 端輸出到單片機(jī)的PORTB口,此時(shí)讀PORTB口的數(shù)據(jù)即為鍵盤狀態(tài)。為了及時(shí)地響應(yīng)鍵盤操作,需要經(jīng)常對鍵盤進(jìn)行掃描;掃描的方式有許多種,我們將鍵盤的掃描程序安排在主程序的循環(huán)執(zhí)行過程中的方式,并采用20ms延遲來消除按鍵的抖動問題,此外,為了實(shí)現(xiàn)每按鍵一次只響應(yīng)一次的功能,在執(zhí)行相應(yīng)的按鍵程序之前,必須確保按鍵已經(jīng)松開;在本例中這一措施有效的防止了數(shù)據(jù)抖動過快的問題。LED 數(shù)碼顯示有動態(tài)掃描和靜態(tài)顯示兩種方式(圖1 采取的方式為靜態(tài)方式),在動態(tài)掃描方式中,各數(shù)碼顯示是輪流點(diǎn)亮的,即控制數(shù)碼顯示的位選信號和相應(yīng)的要顯示的數(shù)碼的字形代碼同時(shí)逐一送出,反復(fù)不已,由于視覺的暫留現(xiàn)象,卻好象全都點(diǎn)亮著,這種電路的接法以后再介紹。在靜態(tài)方式中,只要將數(shù)據(jù)送出鎖存以后,各數(shù)碼顯示的數(shù)據(jù)不需要刷新,只要數(shù)據(jù)不需改變,就可以不去管他,所以稱為靜態(tài)顯示。在圖1 電路中,輸出顯示的操作簡化為對74LS373 的并口操作而已。由于靜態(tài)方式的工作原理比較簡單,編程也比較直觀簡單,程序間的相互關(guān)聯(lián)很少。因此編程容易,但要增加硬件,成本較高;與之相比,動態(tài)掃描的編程雖然要復(fù)雜一些,但因其所用硬件少,成本低。由數(shù)碼轉(zhuǎn)化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數(shù)碼的字形代碼構(gòu)成一個(gè)表格存儲于內(nèi)存之中,在顯示數(shù)碼時(shí),通過執(zhí)行查表程序而得到相應(yīng)的字形代碼,再將之送入數(shù)碼顯示輸出電路進(jìn)行顯示,本例即采用這種方式,這種方式的編程與單片機(jī)有關(guān),在程序中給出了PIC16F877 的編程例程,對需要熟悉PIC16F877 單片機(jī)的人員有一定的參考價(jià)值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅(qū)動芯片直接譯出字形代碼,點(diǎn)亮LED。74LS373 由LE 端對要顯示的數(shù)據(jù)進(jìn)行鎖存控制,實(shí)現(xiàn)LED 的靜態(tài)顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數(shù)據(jù)鎖存時(shí)序,即由軟件實(shí)現(xiàn)數(shù)據(jù)鎖存,這種方法可以十分容易的改變時(shí)序和延遲長短,使高速設(shè)備可以與低速設(shè)備聯(lián)系配合好,設(shè)計(jì)簡單方便,不好的地方是編程較長和稍微復(fù)雜一點(diǎn)。這種編程方法在下面的程序中有很好的體現(xiàn)。
上傳時(shí)間: 2013-10-29
上傳用戶:cuiyashuo
單片機(jī)指令系統(tǒng)原理 51單片機(jī)的尋址方式 學(xué)習(xí)匯編程序設(shè)計(jì),要先了解CPU的各種尋址法,才能有效的掌握各個(gè)命令的用途,尋址法是命令運(yùn)算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有6種尋址方法,下面我們將逐一進(jìn)行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV DPTR,#8200H在前面學(xué)單片機(jī)的專用寄存器時(shí),我們已學(xué)過,DPTR是一個(gè)16位的寄存器,它由DPH及DPL兩個(gè)8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機(jī)的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項(xiàng)給出的是參加運(yùn)算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV A,30H 這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機(jī)中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個(gè)單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nèi)部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV 65H,A ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV A,direct ;將直接地址單元的內(nèi)容送入A中MOV direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV IE,#85H ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學(xué)過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個(gè)立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個(gè)地址地址(如,MOV 65H,A這條指令的65H就是一個(gè)單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個(gè)工作寄存器組共有32個(gè)通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進(jìn)行對當(dāng)前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實(shí)寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個(gè)單元。為什么會是256個(gè)單元呢?我們知道,R0或者R1都是一個(gè)8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV R0,#30H ;將值30H加載到R0中 MOV A,@R0 ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個(gè)16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時(shí),我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設(shè)為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時(shí),采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個(gè),R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個(gè)特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計(jì)數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時(shí),把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進(jìn)行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個(gè)16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細(xì)說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個(gè)16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學(xué)習(xí)特殊功能寄存器時(shí)已知道,程序計(jì)數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個(gè)數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個(gè)地址,而PC是固定的,累加器A是一個(gè)8位的寄存器,它的尋址范圍是256個(gè)地址單元。講到這里,大家應(yīng)可明白,MOVC A,@A+PC這條指令的尋址范圍其實(shí)就是只能在當(dāng)前指令下256個(gè)地址單元。所在,這在我們實(shí)際應(yīng)用中,可能就會有一個(gè)問題,如果我們需要查詢的數(shù)據(jù)表在256個(gè)地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進(jìn)行查表操作,如果超過了256個(gè)單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說到,DPTR是一個(gè)數(shù)據(jù)指針,這個(gè)數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問題。 變址尋址方式是MCS-51單片機(jī)所獨(dú)有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個(gè)位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們在第十二課學(xué)習(xí)51單片機(jī)的存儲器結(jié)構(gòu)時(shí),我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個(gè)區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個(gè)單元,一個(gè)單元是8位,所以位尋址區(qū)共有128位。這128位都單獨(dú)有一個(gè)位地址,其位地址的名字就是00H-7FH。這里就有一個(gè)比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個(gè)字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個(gè)單元地址還是一個(gè)位地址呢?這個(gè)問題,也就是我們現(xiàn)在正在研究的位尋址的一個(gè)重要問題。其實(shí),區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個(gè)問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進(jìn)行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H MOV C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示 MOV C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實(shí)現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數(shù)采用的尋址方式。 MOV R5,R7 答案:寄存器尋址方式 MOV A,55H 直接尋址方式 MOV A,#55H 立即尋址方式 JMP @A+DPTR 變址尋址方式 MOV 30H,C 位尋址方式 MOV A,@R0 間接尋址方式 MOVX A,@R0 間接尋址方式 改錯(cuò)題 請判斷下列的MCS-51單片機(jī)指令的書寫格式是否有錯(cuò),若有,請說明錯(cuò)誤原因。 MOV R0,@R3 答案:間址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。 ADD R0,R1 運(yùn)算指令中目的操作數(shù)必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。
標(biāo)簽: 單片機(jī)指令 系統(tǒng)原理
上傳時(shí)間: 2013-11-11
上傳用戶:caozhizhi
ARM處理器的工作模式 ARM處理器狀態(tài) ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對齊的ARM指令;第二種為Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對齊的Thumb指令。在程序的執(zhí)行過程中,微處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。 ARM處理器狀態(tài) 進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動切換到Thumb狀態(tài)。 進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式 ARM微處理器支持7種運(yùn)行模式,分別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù)。系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM處理器模式 ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。ARM寄存器 ARM處理器共有37個(gè)寄存器。其中包括:31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個(gè)32位狀態(tài)寄存器。 關(guān)于寄存器這里就不詳細(xì)介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理 當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會按固定的優(yōu)先級進(jìn)行處理。當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:進(jìn)入異常處理的基本步驟:將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動切換到ARM狀態(tài)。 ARM微處理器對異常的響應(yīng)過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當(dāng)運(yùn)行于 ARM 工作狀態(tài)時(shí)If == Reset or FIQ then;當(dāng)響應(yīng) FIQ 異常時(shí),禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。
上傳時(shí)間: 2013-11-15
上傳用戶:hanbeidang
8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù):第一節(jié) 8051 單片機(jī)系統(tǒng)擴(kuò)展概述第二節(jié) 單片機(jī)外部存儲器擴(kuò)展第三節(jié) 單片機(jī)輸入輸出(I/O)口擴(kuò)展及應(yīng)用第四節(jié) LED顯示器接口電路及顯示程序第五節(jié) 單片機(jī)鍵盤接口技術(shù)第六節(jié) 單片機(jī)與數(shù)模(D/A)及模數(shù)(A/D)轉(zhuǎn)換1、地址總線(Address Bus,簡寫為AB)地址總線可傳送單片機(jī)送出的地址信號,用于訪問外部存儲器單元或I/O端口。A 地址總線是單向的,地址信號只是由單片機(jī)向外發(fā)出。B 地址總線的數(shù)目決定了可直接訪問的存儲器單元的數(shù)目。例如N位地址,可以產(chǎn)生2N個(gè)連續(xù)地址編碼,因此可訪問2N個(gè)存儲單元,即通常所說的尋址范圍為 2N個(gè)地址單元。MCS—51單片機(jī)有十六位地址線,因此存儲器展范圍可達(dá)216 = 64KB地址單元。C 掛在總線上的器件,只有地址被選中的單元才能與CPU交換數(shù)據(jù),其余的都暫時(shí)不能操作,否則會引起數(shù)據(jù)沖突。2、數(shù)據(jù)總線(Data Bus,簡寫為DB)數(shù)據(jù)總線用于在單片機(jī)與存儲器之間或單片機(jī)與I/O端口之間傳送數(shù)據(jù)。A 單片機(jī)系統(tǒng)數(shù)據(jù)總線的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長一致。例如MCS—51單片機(jī)是8位字長,所以數(shù)據(jù)總線的位數(shù)也是8位。B 數(shù)據(jù)總線是雙向的,即可以進(jìn)行兩個(gè)方向的數(shù)據(jù)傳送。3、控制總線(Control Bus,簡寫為CB)控制總線實(shí)際上就是一組控制信號線,包括單片機(jī)發(fā)出的,以及從其它部件送給單片機(jī)的各種控制或聯(lián)絡(luò)信號。對于一條控制信號線來說,其傳送方向是單向的,但是由不同方向的控制信號線組合的控制總線則表示為雙向的。總線結(jié)構(gòu)形式大大減少了單片機(jī)系統(tǒng)中連接線的數(shù)目,提高了系統(tǒng)的可靠性,增加了系統(tǒng)的靈活性。此外,總線結(jié)構(gòu)也使擴(kuò)展易于實(shí)現(xiàn),各功能部件只要符合總線規(guī)范,就可以很方便地接入系統(tǒng),實(shí)現(xiàn)單片機(jī)擴(kuò)展。
標(biāo)簽: 8051 單片機(jī) 系統(tǒng)擴(kuò)展 接口技術(shù)
上傳時(shí)間: 2013-10-18
上傳用戶:assef
含原理圖+電路圖+程序的波形發(fā)生器:在工作中,我們常常會用到波形發(fā)生器,它是使用頻度很高的電子儀器。現(xiàn)在的波形發(fā)生器都采用單片機(jī)來構(gòu)成。單片機(jī)波形發(fā)生器是以單片機(jī)核心,配相應(yīng)的外圍電路和功能軟件,能實(shí)現(xiàn)各種波形發(fā)生的應(yīng)用系統(tǒng),它由硬件部分和軟件部分組成,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上,對其合理的調(diào)配和使用,從而完成波形發(fā)生的任務(wù)。 波形發(fā)生器的技術(shù)指標(biāo):(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設(shè)計(jì)1、 機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個(gè)0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時(shí),無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時(shí),按其它鍵,無效;3、 在進(jìn)入某一設(shè)置狀態(tài)后,輸入0~9等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時(shí),有效)為欲輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、 如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個(gè)0,等待重新輸入命令;5、 當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實(shí)現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發(fā)生器開始輸出滿足參數(shù)的波形信號,面板上相應(yīng)類型的運(yùn)行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數(shù);7、 波形發(fā)生器在輸出信號時(shí),按下任意一個(gè)鍵,就停止波形信號輸出,等待重新設(shè)置參數(shù),設(shè)置過程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號;8、 要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應(yīng)用,性能價(jià)格高的常用芯片來構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動器 ULN2803A(一塊),運(yùn)算放大器 LM324(一塊) 波形發(fā)生器的硬件電路由單片機(jī)、鍵盤顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生定時(shí)中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲器映像方式,外部接口芯片與內(nèi)部存儲器統(tǒng)一編址,89C51提供16根地址線P0(分時(shí)復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時(shí)還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對應(yīng)不同的定時(shí)初值,定時(shí)器的溢出信號作為中斷請求。控制定時(shí)器中斷的特殊功能寄存器設(shè)置如下:定時(shí)控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅(qū)動6位數(shù)碼管動態(tài)顯示; 提供響應(yīng)界面; 掃面鍵盤; 提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動器ULN2803A,6位共陰極數(shù)碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內(nèi)部的4個(gè)寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH , C口:7FFEH 3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運(yùn)放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會產(chǎn)生不同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個(gè)模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時(shí),其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號,單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過D/A轉(zhuǎn)換,得到波形的模擬樣值點(diǎn),假如N個(gè)點(diǎn)就構(gòu)成波形的一個(gè)周期,那么0832(2)輸出N個(gè)樣值點(diǎn)后,樣值點(diǎn)形成運(yùn)動軌跡,就是波形信號的一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,由此成第二個(gè)周期,第三個(gè)周期……。這樣0832(2)就能連續(xù)的輸出周期變化的波形信號。運(yùn)放A1是直流放大器,運(yùn)放A2是單極性電壓放大器,運(yùn)放A3是雙極性驅(qū)動放大器,使波形信號能帶得起負(fù)載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過開關(guān),保險(xiǎn)管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,+5V電源配送到各用電負(fù)載。
標(biāo)簽: 波形發(fā)生器 原理圖 電路圖 源程序
上傳時(shí)間: 2013-11-08
上傳用戶:685
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1