




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
會計學1單片機原理及應用教程第一章
單片微型計算機概述本章主要介紹單片機的發(fā)展,基本的結構和特點,單片機的應用模式和領域,單片機的供應狀態(tài)等。單片微型計算機就是將CPU、RAM、ROM、定時/計數器和多種接口都集成到一塊集成電路芯片上的微型計算機。因此,一塊芯片就構成了一臺計算機。它已成為工業(yè)控制領域、智能儀器儀表、尖端武器、日常生活中最廣泛使用的計算機。第1頁/共173頁
1.1單片機的發(fā)展概況綜上所述,我們可以把單片機的發(fā)展歷史劃分為四階段:第一階段(1976~1978年):低性能單片機的探索階段。以Intel公司的MCS-48為代表,采用了單片結構,即在一塊芯片內含有8位CPU、定時/計數器、并行I/O口、RAM和ROM等。主要用于工業(yè)領域。第二階段(1978~1982年):高性能單片機階段,這一類單片機帶有串行I/O口,8位數據線、16位地址線可以尋址的范圍達到64K字節(jié)、控制總線、較豐富的指令系統(tǒng)等。這類單片機的應用范圍較廣,并在不斷的改進和發(fā)展。第三階段(1982~1990年):16位單片機階段。16位單片機除CPU為16位外,片內RAM和ROM容量進一步增大,實時處理能力更強,體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級,片內帶有10位A/D轉換器和高速輸入/輸出部件等。第四階段(1990年~):微控制器的全面發(fā)展階段,各公司的產品在盡量兼容的同時,向高速、強運算能力、尋址范圍大以及小型廉價方面發(fā)展。第2頁/共173頁1.2單片機的結構特點
(1)片內的RAM采用寄存器結構形式,這樣可以提高存取的速度;(2)在存儲器結構上,嚴格的將程序存儲器ROM和數據存儲器RAM在空間上分開;(3)它的引出管腳一般都設計成多功能的;(4)增加了一個全雙工的串行接口,以擴充I/O口和外接同步輸入和輸出設備;(5)有21個特殊功能寄存器;(6)有豐富的指令系統(tǒng),內部設置了可以位尋址的位地址空間。第3頁/共173頁1.3單片機的主要品種及系列
一、4位單片機二、8位單片機第4頁/共173頁表格1?1MCS-51系列型號型號制造技術片內程序存儲器片內數據存儲器8051AHHMOSROM(4k)128字節(jié)8031AHAHMOS無128字節(jié)8751HHMOSEPROM(4K)128字節(jié)80C51CHMOSROM(4K)128字節(jié)80C31CHMOS無128字節(jié)8051HMOSROM(8K)256字節(jié)8031HMOS無256字節(jié)第5頁/共173頁1.4單片機的應用
一、單片機在儀器儀表中的應用二、單片機在機電一體化中的應用三、單片機在智能接口和多機系統(tǒng)中的應用四、單片機在生活中的應用
第6頁/共173頁第二章
MCS-51單片機的結構和原理本章主要介紹MCS-51系列的8051的基本結構、工作原理、存儲器結構、P0、P1、P2、P3四個I/O口的基本工作原理和操作特點。單片機的各種工作方式、單片機的時序等。第7頁/共173頁2.1MCS-51單片機的結構原理一、8051單片機的結構圖2?1MCS-51單片機的基本結構第8頁/共173頁二、8051單片機的內部結構和工作原理
8051單片機的內部結構框圖如圖2?2所示,下面分別進行介紹:第9頁/共173頁圖2?28051的內部結構框圖第10頁/共173頁圖2?38051存儲器組織結構第11頁/共173頁字節(jié)地址位地址
2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H5FH5EH5DH5CH5BH5AH59H58H57H56H55H54H53H52H51H50H4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3FH3EH3DH3CH3BH3AH39H38H37H36H35H34H33H32H31H30H2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H圖2?48051內部RAM位地址區(qū)圖2?48051內部RAM位地址區(qū)第12頁/共173頁表格2?2特殊功能寄存器表符號單元地址名稱位地址符號地址*ACCE0H累加器ACC.7~ACC.0E7H~E0H*BF0H乘法寄存器B.7~B.0F7H~F0H*PSWD0H程序狀態(tài)字PSW.7~PSW.0D7H~D0H
SP81H堆棧指針
DPL82H數據存儲器指針(低8位)
DPH83H數據存儲器指針(高8位)
*IEA8H中斷允許控制器IE.7~IE.0AFH~A8H*IPB8H中斷優(yōu)先控制器IP.7~IP.0BFH~B8H*P080H通道0P0.7~P0.087H~80H*P190H通道1P1.7~P1.097H~90H*P2A0H通道2P2.7~P2.0A7H~A0H*P3B0H通道3P3.7~P3.0B7H~B0H
PCON87H電源控制及波特率選擇
*SCON98H串行口控制SCON.7~SCON.09FH~98H
SBUF99H串行數據緩沖器
*TCON88H定時控制TCON.7~TCON.08FH~88H
TMOD89H定時器方式選擇
TL08AH定時器0低8位
TL18BH定時器1低8位
TH08CH定時器0高8位
TH18DH定時器1高8位
*:可位尋址的特殊功能寄存器第13頁/共173頁圖2?5P0口的位結構(1)P0口位的結構第14頁/共173頁(2)P1口位的結構圖2?6P1口的位結構圖2?6P1口的位結構圖2?6P1口的位結構圖2?6P1口的位結構圖2?6P1口的位結構第15頁/共173頁(3)P2口的位結構圖2?7P2口的結構圖第16頁/共173頁(4)P3口的位結構圖2?8P3口的結構圖第17頁/共173頁(4)P3口的位結構圖2?8P3口的結構圖第18頁/共173頁表格2?3P3口的第二功能表I/O口第二功能注釋P3.0RXD串行口數據接收端P3.1TXD串行口數據發(fā)送端P3.2INT(————)0外部中斷請求0P3.3INT(————)1外部中斷請求1P3.4T0定時/計數器0P3.5T1定時/計數器1P3.6WR(———)外部RAM寫信號P3.7RD(———)外部RAM讀信號
第19頁/共173頁一、時鐘周期、機器周期和指令周期圖2-9基本定時時序關系2.2MCS-51單片機的時序第20頁/共173頁1.時鐘周期
圖2?10MCS-51的取指/執(zhí)行時序2.機器周期第21頁/共173頁3.指令周期
二、MCS-51單片機指令的取指和執(zhí)行的時序三、訪問外部ROM和RAM的時序
圖2?11訪問外部ROM的時序第22頁/共173頁1.訪問外部ROM的時序
2.訪問外部RAM的時序
圖2?12訪問外部RAM的時序第23頁/共173頁2.3MCS-51單片機的時鐘和復位電路
一、時鐘電路
圖2?13MCS-51時鐘接法第24頁/共173頁1.內部振蕩器方式
2.外部時鐘方式
二、復位電路及復位狀態(tài)
1.內部復位電路
圖2?148051復位電路結構
第25頁/共173頁2.外部復位電路
圖2?15復位電路第26頁/共173頁3.復位狀態(tài)
表格2?4各專用寄存器的復位值專用寄存器復位值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P3FFHIPXXX00000BIE0XX00000BTMOD00HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)0XXX0000B第27頁/共173頁2.4MCS-51單片機的低功耗工作方式
一、電源控制寄存器PCON
PCOND7D6D5D4D3D2D1D0SMOD———GF1GF0FDIDL三、掉電方式
二、等待工作方式
第28頁/共173頁
第三章MSC-51單片機的指令系統(tǒng)3.1指令系統(tǒng)概述一、機器碼指令與匯編語言指令機器碼指令:
匯編語言指令:
二、指令格式匯編語言格式為:[標號:]操作碼助記符[目的操作數,][源操作數][;注釋]
第29頁/共173頁
單字節(jié)指令
雙字節(jié)指令
三字節(jié)指令操作碼24H操作數22HINCAADDA,#22HMOV5EH,4FH操作碼04H操作碼85H源操作數4FH目的操作數5EH
圖3-1機器碼指令格式
第30頁/共173頁3.2尋址方式
一、寄存器尋址二、直接尋址三、立即尋址四、寄存器間接尋址五、變址尋址
六、相對尋址
七、位尋址
第31頁/共173頁3.3MSC-51單片機的指令系統(tǒng)按照指令的功能,可以把MSC-51的111條指令分成五類:l
數據傳送類指令(29條)l
算術運算類指令(24條)l
邏輯操作類指令(24條)l
控制轉移類指令(17條)l
位操作類指令(17條)
第32頁/共173頁圖3-2相對尋址過程
第33頁/共173頁
第四章MCS-51單片機的應用程序設計
圖4-1基本程序結構
第34頁/共173頁4.1運算程序一、多字節(jié)數加法1.多字節(jié)無符號數加法CLRCMOVR0,#40H;指向加數最低位MOVR1,#5OH;指向另一加數最低位MOVR2,#04H;字節(jié)數作計數初值LOOP1:MOVA,@R0;取被加數ADDCA,@R1;兩數相加,帶進位MOV@R0,AINCR0;修改地址INCR1DJNZR2,LOOPl;未加完轉LOOP1JNCLOOP2;無進位轉LOOP2MOV@R0,#01HLOOP2:DECR0RET第35頁/共173頁2.多字節(jié)有符號數加法MOVA,R0;復制保存地址指針MOVR2,AMOVA,R3MOVR7,ACLRCLOOP1:MOVA,@R0ADDCA,@R1;相加MOV@R0,AINCR0INCR1;地址指針加1DJNZR7,LOOP1JBOV,ERR;若溢出,轉溢出處理DECR0MOVA,@R0JNBE7H,LOOP2SETB07H;和值為負,置位標志LOOP2:MOVA,R2;恢復地址指針MOVR0,ARET┇ERR:┇;溢出處理RETSDADD:CLR07H;標志位清零圖4-3多字節(jié)有符號數加法程序流程圖第36頁/共173頁二、多字節(jié)數減法MOVR0,#40H;指向被減數最低位MOVR1,#5OH;指向減數最低位MOVR2,#04H;字節(jié)數CLRCLOOP1:MOVA,@R0SUBBA,@R1;完成一個字節(jié)的減法運算MOV@R0,AINCR0INCR1DJNZR2,LOOP1RET第37頁/共173頁三、多字節(jié)十進制數(BCD碼)加法
圖4-4BCD碼多字節(jié)加法程序流程圖BCDADD:MOV20H,R0MOV23H,R3CLRCLOOP0:MOVA,@R0;取被加數ADDCA,@R1;兩數相加DAA;十進制調整MOV@R0,AINCR0;指針加1INCR1
DJNZR3,LOOP0;作完加法否MOVR2.#23HJNCRETURN;有無進位MOV@R0,#01HINCR3RETURN:MOVR0,#20HRET第38頁/共173頁四、多字節(jié)數乘法ZHENFA:MOVA,R0MOVB,R1MULAB;(R1)*(R0)MOVR3,A;積的低位送到R3MOVR4,B;積的高位送到R4MOVA,R0MOVB,R2MULAB;(R2)*(R0)ADDA,R4;(R1)*(R0)的高位加(R2)*(R0)的低位MOVR4,A;結果送R4,進位在CY中MOVA,BADDCA,#OOH;(R2)*(R0)的高位加低位來的進位MOVR5,A;結果送R5RET第39頁/共173頁五、多字節(jié)數除法DV:MOVR7,#08H;設計數初值DVl:CLRCMOVA,R5RLCAMOVR5,AMOVA,R6RLCA;將(R6)、(R5)左移一位MOV07H,C;將移出的一位送07H位保存CLRC圖4-5除法程序流程圖SUBBA,R2;余數(高位)減除數JBO7H,GOU;若標志位為1,說明夠減
JNCGOU;無借位也說明夠減ADDA,R2;否則,恢復余數AJMPDV2GOU:INCR5;商上1DV2:MOVR6,A;保存余數(高位)DJNZR7,DVlRET第40頁/共173頁一、
數據的拼拆4.2數據的拼拆和轉換例4-7設在30H和31H單元中各有一個8位數據:(30H)=x7x6x5x4x3x2x1x0(3lH)=y7y6y5y4y3y2y1y0現(xiàn)在要從30H單元中取出低5位,并從31H單元中取出低3位完成拼裝,拼裝結果送40H單元保存,并且規(guī)定:(40H)=y2y1y0x4x3x2x1x0解:利用邏輯指令ANL、ORL來完成數據的拼拆,程序清單如下:MOV4OH,3OH;將x7~x0傳送到40H單元ANL4OH,#000111llB;將高3位屏蔽掉MOVA,31H;將y7~y0傳送到累加器中SWAPA;將A的內容左移4次RLA;y2~y0移到高3位ANLA,#111000OOB;將低5位屏蔽掉ORL4OH,A;完成拼裝任務第41頁/共173頁二、數據的轉換
1.ASCII碼與二進制數的互相轉換
例4-10編程實現(xiàn)十六進制數表示的ASC1I代碼轉換成4位二進制數(1位十六進制數)。解:對于這種轉換,只要注意到下述關系便不難編寫出轉換程序:“字符0”~“字符9”的ASCII碼值為“30H”~“39H”,它們與30H之差恰好為“00H”~“09H”,結果均<0AH?!白址鸄”~“字符F”的ASCII碼值為“41H”~“46H”,它們各自減去37H后恰好為“0AH”~“0FH”,結果>0AH。根據這個關系可以編出轉換程序如下,程序以R1作為入口和出口。ASCHIN:MOVA,R1;取操作數CLRC;清進位標志位CSUBBA,#30H;ASCII碼減去30H,實現(xiàn)0-9的轉換MOVR1,A;暫存結果SUBBA,#0AH;結果是否>9?JCLOOP;若≤9則轉換正確XCHA,R1SUBBA,#07H;若>9則減37HMOVR1,ALOOP:RET第42頁/共173頁2.BCD碼與二進制數的轉換
圖4-6BCD碼(十進制)轉換成二進制數程序流程圖第43頁/共173頁程序清單如下:MAIN:MOVA,R5MOVR2,A;給子程序入口參數ACALLBCDBIN;調用子程序MOVB,#64HMULABMOVR6,AXCHA,BMOVR5,AMOVA,R4MOVR2,AACALLBCDBIN;調用子程序ADDA,R6MOVR4,AMOVA,R5ADDCA,#00HMOVR5,ARET子程序如下:BCDBIN:MOVA,R2ANLA,#0F0H;取高位BCD碼,屏蔽低4位SWAPAMOVB,#0AHMULABMOVR3,AMOVA,R2ANLA,#0FHADDA,R3;加低位BCD碼MOVR2,ARET第44頁/共173頁4.3查表程序使用MOVCA,@A+DPTR指令來查表,程序清單如下:MOVDPTR,#BS;子程序入口地址表首址RLA;鍵碼值乘以2MOVR2,A;暫存AMOVCA,@A+DPTR;取得入口地址低位PUSHA;進棧暫存INCAMOVCA,@A+DPTR;取得入口地址高位MOVDPH,APOPDPLCLRAJMP@A+DPTR;轉向鍵處理子程序BS:DBRK0L;處理子程序入口地址表DBRK0HDBRK1LDBRK1HDBRK2LDBRK2H┇┇第45頁/共173頁4.4散轉程序一、采用轉移指令表的散轉程序
例4-17編出要求根據R3的內容轉向各個操作程序的程序。即當(R3)=0,轉向OPRO(R3)=1,轉向OPRl…(R3)=n,轉向OPRn解:程序清單如下:MOVA,R3RLA;分支序號值乘2MOVDPTR,#BRTABL;轉移指令表首址JMP@A+DPTR;轉向形成的散轉地址BRTABL:AJMPOPR0;轉移指令表AJMPOPR1…AJMPOPRn第46頁/共173頁二、采用地址偏移量表的散轉程序例4-19編出能按R6的內容轉向5個操作程序的程序。其對應關系如下:OPRD0:操作程序0OPRD1:操作程序1OPRD2:操作程序2OPRD3:操作程序3OPRD4:操作程序4解:程序清單如下:MOVA,R6MOVDPTR,#TAB3;指向地址偏移量表首址MOVCA,@A+DPTR;散轉點入口地址在A中JMP@A+DPTR;轉向相應的操作程序入口TAB3:DBOPRDO-TAB3;地址偏移量表DBOPRDl-TAB3DBOPRD2-TAB3DBOPRD3-TAB3DBOPRD4-TAB3第47頁/共173頁三、采用轉向地址表的散轉程序例4-20編程:要求根據R6的內容轉向相應的操作程序中去。設備操作程序的轉向地址分別為OPRD0,OPRDl,…OPRDn。解:程序清單如下:MOVDPTR,#BRTABL;指向轉向地址表MOVA,R6ADDA,R6;(A)←(R6)*2JNCNAND;INCDPH;(R6)*2的進位加到DPHNAND:MOVR3,A;暫存變址值MOVCA,@A+DPTR;取轉向地址高8位XCHA,R3INCAMOVCA,@A+DPTR;取轉向地址低8位MOVDPL,A;轉向地址在DPTR中MOVDPH,R3CLRAJMP@A+DPTR;轉向相應的操作程序BRTABL:DWOPRDO;轉向地址表DWOPRD1┆DWOPRDn第48頁/共173頁四、采用“RET”指令的散轉程序
例4-21編出能根據R6的內容轉向各個操作程序的程序。設該操作程序的轉向地址分別為OPRD0,OPRDl,…OPRDn。解:程序清單如下:MOVDPTR,#TAB3;指向轉移地址表MOVA,R6ADDA,R6JNCNANDINCDPHNAND:MOVR7,AMOVCA,@A+DPTR;取轉向地址高8位XCHA,R7INCAMOVCA,@A+DPTR;取轉向地址低8位PUSHA;轉向地址入棧MOVA,R7PUSHARET;轉向操作程序TAB3:DWOPRD0;轉向地址表DWOPRDl┇DWOPRDn第49頁/共173頁4.5I/O端口控制程序
例4-22試編出能模擬圖4-9中電路的程序。ORG0200HDBIT00HEBIT01HGBIT02HLOOP1:ORLP1,#08H;準備P1.3輸入LOOP2:MOVC,P1.3;檢測K3狀態(tài)JCLOOP2;若未準備好(K3斷),則LOOP2ORLP1,#03H;若準備好,則準備輸入P1.0和P1.1狀態(tài)MOVC,P1.0;輸入K0狀態(tài)MOVD,C;送入DMOVC,P1.1;輸入K1狀態(tài)MOVE,C;送入EANLC,D;D∧E送CMOVG,C;送入GMOVC,EORLC,D;D∨E送CANLC,/G;(D∨E)∧(D∧E)MOVP1.2,C;輸出結果SJMPLOOP1;準備下次模擬END第50頁/共173頁4.6子程序調用時的參數傳遞方法一、通過寄存器或片內RAM傳遞參數例4-23利用通過寄存器或片內RAM傳遞參數這種方法編出調用SUBRT子程序的主程序。解:應該是:MAIN:MOVR0,#30H;傳送RAM數據區(qū)的起始地址MOVR7,#0AH;傳送RAM數據區(qū)的長度ACALLSUBRT;調用清零子程序SJMP$;結束SUBRT:MOVA,#00H;清零子程序LOOP:MOV@R0,AINCR0DJNZR7,LOOPRET第51頁/共173頁二、通過堆棧傳遞參數例4-25在HEX單元存有兩個十六進制數,試編程分別把它們轉換成ASCII碼存入ASC和ASC+1單元。解:本題子程序采用查表方法完成一個十六進制數的ASCII碼轉換,主程序完成入口參數的傳遞和子程序的兩次調用,以滿足題目要求。程序清單為:ORG1200HPUSHHEX;入口參數壓棧ACALLHASC;求低位十六進制數的ASCII碼POPASC;出口參數存入ASCMOVA,HEX;十六進制數送ASWAPA;高位十六進制數送低4位PUSHACC;入口參數壓棧ACALLHASC;求高位十六進制數的ASCII碼POPASC+1;出口參數送ASC+1SJMP$;原地踏步,結束HASC:DECSPDECSP;入口參數地址送SPPOPACC;入口參數送AANLA,#0FH;取出入口參數低4位ADDA,#07H;地址調整MOVCA,@A+PC;查相應ASCII碼PUSHACC;出口參數壓棧INCSPINCSP;SP指向斷點地址高8位RET;返回主程序ASCTABL:DB‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’DB‘8’,‘9’,‘A’,‘B’,‘C’,‘D’,‘E’,‘F’END第52頁/共173頁三、利用指針寄存器傳遞參數
例4-26編出能實現(xiàn)打印THISISANEXAMPLE的程序。解:將要打印的字符及代碼不是放在調用指令之前,而是緊跟在調用指令之后。主程序:MAIN:…ACALLPRINT;調用打印子程序DB‘THISISANEXAMPLE';要打印的字符及代碼DBOAH,ODH,OOHNEXT:…子程序:PRINT:POPDPH;把調用指令下面字節(jié)的地址彈出,作為數據指針POPDPLPPPl:MOVA,#OOHMOVCA,@A+DPTR;取出欲打印的字符INCDPTRJZPPPEND;判斷是否為結束字符PPP2:;打印程序SJMPPPPl;未完,繼續(xù)打印PPPEND:JMP@A+DPTR;指向主程序NEXT處,取代返回指令
第53頁/共173頁
第五章定時/計數器
5.1定時/計數的結構及工作原理
一、定時/計數器的結構和原理1.定時/計數器的結構圖5?1TMOD、TCON與T0、T1的結構框圖第54頁/共173頁2.定時/計數器的原理
圖5?2定時/計數器的結構框圖
第55頁/共173頁二、定時/計數器方式寄存器TMOD表格5?1方式選擇位意義M1M0工作方式功能說明00方式013位計數器01方式116位計數器10方式2自動再裝入8位計數器11方式3定時器0:分成兩個8位計數器定時器1:停止計數TMOD格式如下:定時器1定時器0
TMOD
D7D6D5D4D3D2D1D0GATEC/T(—)M1M0GATEC/T(—)M1M0第56頁/共173頁三、定時控制寄存器TCON定時器控制字TCON的格式如下:
TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0
第57頁/共173頁5.2定時/計數器的工作方式一、方式0當M1M0兩位為00時,定時/計數器被選為工作方式0,其邏輯結構如圖5?3所示。圖5?3T0(或T1)方式0結構第58頁/共173頁二、方式1圖5?4T0(或T1)方式1結構第59頁/共173頁三、方式2圖5?5T0(或T1)方式1結構第60頁/共173頁三、方式2圖5?6T0(或T1)方式2結構
第61頁/共173頁四、方式3圖5?7T0方式3下和T1結構第62頁/共173頁一、方式0、方式1的應用例5-1選擇T1方式0用于定時,在P1。1輸出周期為1ms的方波,晶振fosc=6MHZ。根據題意,只要使P1。1每隔500μs取反一次即可得到1ms方波,因而T1的定時時間為500μs。將T1設為定時方式0:GATE=0,C/T(—)=0,M1M0=00;T0不用可為任意,只要不使其進入方式3,一般取0即可。故TMOD=00H。系統(tǒng)復位后TMOD為0,所以不必對TMOD置初值。下面計算500μs定時T1的初值:機器周期T=12/fosc=12/6×106=2μs設初值為X則:(213-X)×2×10-6s=500×10-6sX=7942D=1111100000110B=1F06H因為在作13位計數器用時,TL1高3位未用,應寫0,X的低5位裝入TL1的低5位,所以TL1=06H;X的高8位應裝入TH1,所以TH1=F8H。源程序如下:
MOVTL1,#06H;給TL1置初值
MOVTH1,#F8H;給TH1置初值
SETBTR1;啟動T1LP1:JBCTF1,LP2;查詢計數溢出否
AJMPLP1
LP2:MOVTL1,06H;重裝初值
MOVTH1,F(xiàn)8H
CPLP1。1;輸出取反
AJMPLP1;重復循環(huán)第63頁/共173頁二、方式2的應用例5-2用定時器1方式2計數,要求每計滿100次,將P1。0取反。根據題意,外部計數信號由T1(P3.5)引腳輸入,每跳變一次計數器加1,由程序查詢TF1。方式2有自動重裝初值的功能,初始化后不必再置初值。初值X=28-100=156D=9CHTH1=TL1=9CHTMOD=60H源程序如下:
MOVTMOD,#60H;設置T1為方式2
MOVTL1,#9CH;置初值
MOVTH1,#9CH
SETBTR1;啟動T1DEL:JBCTF1,REP;查詢計數溢出
AJMPDEL
REP:CPLP1。0;輸出取反
AJMPDEL
第64頁/共173頁三、門控位的應用圖5?8外部正脈沖寬度測量例5-3利用T0門控位測試INT0引腳上出現(xiàn)的正脈沖的寬度,并以機器周期數的形式顯示在顯示器上。根據要求可這樣設計程序:將T0設定為方式1,GATE設為1,置TR0為1。一旦INT0(P3。2)引腳上出現(xiàn)高電平即開始計數,直至出現(xiàn)低電平,停止計數,然后讀取T0的計數值并顯示。測試過程如下:第65頁/共173頁源程序如下:BEGIN:MOVTMOD,#O9H;T0工作于方式1,GATE置1
MOVTL0,#00H
MOVTH0;#00H
WAIT1:JBP3。2,WAIT1;等待INT0變低
SETBTR0;啟動T0WAIT2:JNBP3。2,WAIT2;等待正脈沖到WAIT3:JBP3。2,WAIT3;等待INT0變低
CLRTR0;停止T0計數
MOVR0,#DISBUF;顯示緩沖區(qū)首地址送R0
MOVA,TL0;機器周期的存放格式為低位占低地址,高位占高地址,連續(xù)4個顯示緩沖單元
XCHDA,@R0
INCR0
SWAPA
XCHDA,@R0
INCR0
MOVA,TH0
XCHDA,@R0
INCR0
SWAPA
XCHDA,@R0
DIS:LCALLDISUP;長調用顯示子程序
AJMPDIS;重復顯示機器周期數由于定時方式1的16位計數長度有限,被測脈沖高電平寬度只能小于65536個機器周期。源程序如下:
第66頁/共173頁第六章
MCS-51單片機的系統(tǒng)擴展6.1MCS-51單片機的引腳定義及最小應用系統(tǒng)一、8051的引腳定義及功能圖6?1MCS-51的引腳圖及功能分類圖第67頁/共173頁二、MCS-51單片機最小應用系統(tǒng)
圖6?28051/8751最小應用系統(tǒng)第68頁/共173頁6.2MCS-51單片機外部存儲器的擴展一、外部程序存儲器的擴展及取指過程圖6?3外部程序存儲器一般連接方法第69頁/共173頁1.程序存儲器的一般連接方式圖6-4擴展8K字節(jié)程序存儲器的連線圖第70頁/共173頁2.典型EPROM擴展電路3.程序存儲器E2PROM的擴展圖6-5E2PROM作為程序存儲器的擴展圖第71頁/共173頁二、數據存儲器的擴展圖6-6擴展2KB數據存儲器的線路圖第72頁/共173頁1.數據存儲器一般的擴展方法
2.常用數據存儲器的擴展電路三、綜合擴展實例圖6-7擴展16KBRAM和16KBEPROM第73頁/共173頁
6.3并行I/O口的擴展一、簡單I/O口的擴展圖6-8簡單I/O接口擴展電路第74頁/共173頁二、可編程I/O口的擴展圖6?98155的結構和引腳第75頁/共173頁表格6?18155口地址分布AD0~AD7選中寄存器A7A6A5A4A3A2A1A0×××××000內部命令寄存器×××××001通用I/O口A寄存器×××××010通用I/O口B寄存器×××××011口C:通用I/O口或控制口×××××100定時/計數器的低8位寄存器×××××101定時/計數器的高8位寄存器第76頁/共173頁3.8155與單片機的連接表格6?28155的RAM和I/O口地址分配P2.4P2.3選擇地址00RAME700H~E7FFH(256B)01I/O口EF00H命令口/狀態(tài)口EF01H通用I/O口AEF02H通用I/O口BEF03H口CEF04H計數值低8位EF05H計數值高8位和計數方式圖6?10擴展一片8155的基本方案第77頁/共173頁4.8155片內RAM的使用OK:…;和為0,讀/寫正確(1)命令寄存器的用法
表格6?3C口工作方式方式位ALTIALT2ALT3ALT4PC0輸入方式輸出方式AINTR(A口中斷)AINTR(A口中斷)PC1ABF(A口緩沖器滿)ABF(A口緩沖器滿)PC2ASTB(A口選通)ASTB(A口選通)PC3輸出方式BINTR(B口中斷)PC4BBF(B口緩沖器滿)PC5BSTB(B口選通)備注A口B口為基本I/O口A口B口為基本I/O口A口為選通輸入方式B口為基本I/O口A口、B口為選通輸入/輸出方式第78頁/共173頁圖6?128155方式4的邏輯結構圖第79頁/共173頁
6.作定時/計數器用表6-48155定時器輸出方式M2M1方式定時器輸出方波00單個方波01連續(xù)方波10在終止計數時輸出單個脈沖11連續(xù)脈沖第80頁/共173頁第七章
MCS-51系統(tǒng)的串行接口7.1串行通訊概述一、串行通訊的兩種基本方式1.異步傳送方式
第n個字符(一串行幀)n+1n-1
…P10D0D1D2D3D4D5D6D7P10D0…
起始位數據位校驗位停止位
圖7-2異步通訊的幀格式第81頁/共173頁開始
結束同步字符同步字符數據段CRC字符#1CRC字符#2圖7-3同步傳送方式二、波特率圖7-4串行通訊的制式第82頁/共173頁三、數據傳送的方向1.單工制式(Simplex)2.半雙工制式(HalfDuplex)3.全雙工(Full-duplex)制式7.2MCS-51單片機的串行接口一、MCS-51串行口結構圖7-5MCS-51串行口組成示意第83頁/共173頁1.串行口數據緩沖器SBUF
2.串行口控制寄存器SCON見表格7-1SM0位地址9F9E9D9C9B9A9998SCONSM1SM2RENTB8RB8TIRI
接收中斷標志發(fā)送中斷標志接收數據第9位發(fā)送數據第9位接收控制0:禁止接收1:允許接收多機通信0:單機對單機1:多機通信
圖7-6串行口控制寄存器SCON圖7-6串行口控制寄存器SCON第84頁/共173頁3.特殊功能寄存器PCONPCON主要是為CHMOS型單片機的電源控制設置的專用寄存器,單元地址為87H,不能位尋址。其格式如圖7-7所示。SMOD———GF1GF0PDIDL通用標志位空閑控制位0:正常方式1:空閑方式掉電控制位0:正常方式1:掉電方式波特率選擇位SMOD=1時,方式1、2和3的波特率加倍
圖7-7PCON各位定義第85頁/共173頁二、MCS-51串行的工作方式MCS-51的串行口有四種工作方式,它是由SCON中的SM1和SM0來決定的,如表格7-1
表格7-1串行口的工作方式SM0SMl工作方式方式簡單描述波特率000移位寄存器I/O主振頻率/120118位UART可變1029位UART主振頻率/32或主振頻率/641139位UART可變第86頁/共173頁1.方式0圖7-8串行口方式0的時序第87頁/共173頁2.方式1在方式1時,串行口被設置為波特率可變的8位異步通信接口。其時序如圖7-9所示。圖7-9串行口方式1的時序第88頁/共173頁3.方式2串行口工作為方式2時,被定義為9位異步通信接口。其時序如圖7-10所示。4.方式3圖7-10串行口方式2、3的時序第89頁/共173頁三、MCS-51串行通信的波特率1.方式0的波特率2.方式2的波特率3.方式1或方式3的波特率表格7-2常用波特率和定時器T1初值關系表第90頁/共173頁波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k
12FFH
19.2k
12FDH9.6k
02FDH4.8k
12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH表格7-2常用波特率和定時器T1初值關系表第91頁/共173頁7.3MCS-51單片機串行口的應用一、串行口方式0用作擴展并行I/O口圖7-11串行口方式0擴展并行輸出口第92頁/共173頁
MOVSCON,#00H;串行口方式0初始化
MOVA,#80H;最左一位發(fā)光二極管先亮
CLRP1.0;關閉并行輸出START1:MOVSBUF,A;開始串行輸出LOOP:JNBTI,LOOP;查詢TI
SETBP1.0;啟動并行輸出
ACALLDELAY;顯示延時
CLRTI;清發(fā)送中斷標志
RRA;準備右邊一位顯示
CLRP1.0;關閉并行輸出
SJMPSTART1;再一次串行輸出第93頁/共173頁二、方式1與點對點的異步通訊在下面給出的實現(xiàn)指定功能的通訊程序中,發(fā)送和接收都通過調用子程序來完成,并設發(fā)送數據區(qū)的首地址為20H,接收數據區(qū)的首地址為40H。主程序:
MOVTMOD,#20H;定時器1設為方式2
MOVTL,#0F3H;定時器初值
MOVTH1,#0F3H;8位重裝值
SETBTR1;啟動定時器1
MOVSCON,#50H;串行口設為方式1,REN=1
MOVR0,#20H;發(fā)送數據區(qū)首址
MOVR1,#40H;接收數據區(qū)首址
ACALLSOUT;輸出一個字符$:SJMP$;等待中斷中斷服務程序:
ORG0023H;串行口中斷入口
AJMPSBRl;轉至中斷服務程序SBRl:JNBRI,SEND;TI=1,為發(fā)送中斷
ACALLSIN;RI=1,為接收中斷
SJMPNEXT;轉至統(tǒng)一的出口第94頁/共173頁SEND:ACALLSOUT;調用發(fā)送子程序NEXT:RETI;中斷返回發(fā)送子程序:SOUT:MOVA,@Ro;取發(fā)送數據到A
MOVC,P;加上奇校驗位
CPLC
MOVACC.7,C
INCR0;修改發(fā)送數據指針
MOVSBUF,A;發(fā)送ASCII碼
CLRTI;清發(fā)送中斷標志
RET
第95頁/共173頁接收子程序:SIN:MOVA,SBUF;讀出接收緩沖區(qū)內容
MOVC,P;取出校驗位
CPLC;奇校驗
ANLA,#7FH;刪除校驗位
MOV@R1,A;讀入接收緩沖區(qū)
INCR1;修改接收數據指針
CLRRI;清接收中斷標志
RET
第96頁/共173頁三、方式2、方式3與多機通訊圖7-12多機通訊連接示意圖第97頁/共173頁1.多機通信原理2.多機通信實現(xiàn)四、微機與單片機之間的通訊圖7-13微機與單片機串行通信接口
第98頁/共173頁7.4相互通道接口標準及其選擇一、相互通道的典型結構二、關于RS-232C、RS-449、RS-422、RS-423和RS-485接口第99頁/共173頁圖7-14多機系統(tǒng)的相互通道第100頁/共173頁2.抗干擾能力1.RS-232C接口
圖7-15通過電話網實現(xiàn)遠程連接第101頁/共173頁表格7-3微機中常用的RS-232C接口信號引腳號符號名稱說明1PGND保護地為了安全和大地相連,有時可不接2TXD發(fā)送數據從DTE到DCE的數據線3RXD接收數據從DCE到DTE的數據線4RTS請求發(fā)送當DTE希望在數據線上傳遞數據時由DTE發(fā)出,DCE通過所得到的控制信號決定是否響應5CTS允許發(fā)送允許計算機發(fā)送數據時,則由DCE發(fā)出6DSR數字置位就緒當數據線已被接好后由DCE發(fā)出7SGND信號地作為信號地的公共回路8DCD數據載波檢測當DCE已經從數據線上接收到信號時發(fā)出此信號20DTR數字終端就緒當DTE已準備好和調制解調器交換數據時,由DTE發(fā)出,使用公共通信網時才需要22RI振鈴指示當正在進行通信時,由DCE發(fā)出,使用公共通信網時才需要表格7-3微機中常用的RS-232C接口信號
第102頁/共173頁圖7-16簡單的RS-232C數據通訊第103頁/共173頁2.RS-449、RS-422、RS-423和RS-485接口表格7-4幾種串行接口標準的比較特性參數RS-232CRS-423RS-422RS-485工作模式單端發(fā)單端收單端發(fā)雙端收雙端發(fā)雙端收雙端發(fā)雙端收在傳輸線上允許的驅動器和接收器數目1個驅動器1個接收器1個驅動器10個接收器1個驅動器10個接收器32個驅動器32個接收器最大電纜長度15m1200m(1kb/s)1200m(90kb/s)1200m(100kb/s)最大速率20kb/s100kb/s(12m)10Mb/s(12m)10Mb/s(15m)驅動器輸出(最大電壓)±25V±6V±6V-7V~+12V驅動器輸出(信號電平)±5V(帶負載)±15V(未帶負載)±3.6V(帶負載)±6V(未帶負載)±2V(帶負載)±6V(未帶負載)±1.5V(帶負載)±5V(末帶負載)驅動器負載阻抗3kΩ~7kΩ450Ω100Ω54Ω驅動器電源開路電流(高阻抗態(tài))Vmax/300Ω(開路)±100μA(開路)±100μA(開路)±100μA(開路)接收器輸入電壓范圍±15V±10V±12V-7V~+12V接收器輸入靈敏度±3V±200mV±200mV±200mV接收器輸入阻抗2kΩ~7kΩ4kΩmin4kΩmin12kΩmin
第104頁/共173頁第八章
MCS-51單片機的中斷系統(tǒng)圖8-18051的中斷系統(tǒng)第105頁/共173頁8.1中斷系統(tǒng)及其管理一、中斷源及中斷入口
中斷源入口地址外部中斷00003H定時器T0中斷000BH外部中斷10013H定時器T1中斷001BH串行口中斷0023H第106頁/共173頁二、外部中斷請求標志2.SCON的中斷標志
1.TCON中的中斷標志三、中斷允許控制四、中斷源優(yōu)先級的設定五、中斷響應處理過程2.中斷處理1.中斷響應的過程
3.中斷返回
4.外部中斷響應時間第107頁/共173頁8.2擴充外部中斷源一、利用定時器進行擴充圖8-2多外部中斷源連接方法第108頁/共173頁二、采用中斷和查詢相結合的方法擴充外部中斷源
EXINT:PUSHPSWPUSHACCJBP10,SAV1JBP11,SAV2JBP12,SAV3JBP13,SAV4DISUB:POPACCPOPPSW
RETISAV1:…;XI1中斷服務程序
AJMPDISUBSAV2:…;XI2中斷服務程序
AJMPDISUBSAV3:…;XI3中斷服務程序
AJMPDISUBSAV4:…;XI1中斷服務程序
AJMPDISUB第109頁/共173頁8.3中斷系統(tǒng)的應用圖8-3外部中斷實驗第110頁/共173頁第九章
單片機應用系統(tǒng)的設計方法及實例9.1顯示器、鍵盤與單片機的連接
一、LED數碼管與單片機的連接圖9-1共陰極和共陽極數碼管第111頁/共173頁1.靜態(tài)顯示圖9-2靜態(tài)顯示原理第112頁/共173頁DISP: MOV R0,#50H ;R0指向第一個顯示單元MOV R2,#4 ;循環(huán)計數器賦初值MOV R3,#0 ;顯示位指針賦初值LOOP: MOV A,@R0ANL A,#0FH ;取第i個顯示單元的低4位SWAP AORL A,R3 ;第i個顯示單元的低4位送R3的高4位MOV P1,A ;第i個顯示單元的低4位送R3指出的數碼管去顯示MOV A,@R0ANL A,#0F0H ;取第i個顯示單元的高4位INC R3 ;指向下一個數碼管ORL A,R3 ;第i個顯示單元的高4位送R3指出的數碼管去顯示MOV P1,A ;將第i個顯示單元的高4位送到相應的數碼管去顯示INC R0 ;指向下一個顯示單元INC R3 ;指向下一個LED數碼管DJNE R2,LOOP ;未顯示完4單元的8個BCD碼,返回繼續(xù)顯示RET第113頁/共173頁圖9-3采用譯碼器的靜態(tài)顯示接口電路
第114頁/共173頁2.串行顯示接口圖9-5串行顯示接口第115頁/共173頁DISP: SETB P1.0 ;選通顯示器
MOV SCON,#00H ;置串口方式0MOV R0,#50H ;R0指向第一個顯示單元MOV R2,#4 ;循環(huán)計數器置初值MOV DPTR,#TAB ;DPTR指向第一個顯示單元LOOP: MOV A,@R0ANL A,#0FH ;取第i個顯示單元的低4位MOVC A,@A+DPTR ;查譯碼表MOC SBUF,A ;第i個顯示單元的低4位的顯示碼送串口緩沖器WAIT1: JNB TI,$ ;未發(fā)送完,等待CLR TI ;清發(fā)送中斷標志MOV A,@R0ANL A,#0F0H ;取第i個顯示單元的高4位SWAP AMOVC A,@A+DPTR ;查譯碼表MOC SBUF,A ;第i個顯示單元的高4位的顯示碼送串口緩沖器WAIT2: JNB TI,$ ;未發(fā)送完,等待CLR TI ;清發(fā)送中斷標志INC R0DJNZ R2,LOOP ;未發(fā)送完4個單元的8個字符,返回繼續(xù)RETTAB:DB 03H,9FH,25H,0DH,99H,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東華建鋁業(yè)考試試題及答案
- 科學實驗室培訓
- 如何構建文明健康綠色環(huán)保的生活方式
- 2025年中國男士不可充電頭燈行業(yè)市場全景分析及前景機遇研判報告
- 自然生命課程中班課件
- 基于化學核心素養(yǎng)的“教、學、評”一體化教學設計
- 客服培訓周會匯報
- 成本控制與成本控制效果評估合同
- 綠色能源場地租賃合同轉讓與環(huán)保責任協(xié)議
- 智能化彩鋼瓦施工與節(jié)能改造合同
- 醫(yī)院護理人文關懷實踐規(guī)范專家共識課件
- 電商平臺商家入駐流程及風險控制標準
- 2025年中國國投高新產業(yè)投資集團招聘筆試參考題庫含答案解析
- 《影視照明技術》課件
- 視覺監(jiān)測與機器學習在地鐵隧道自動化監(jiān)測中的應用研究
- 金屬材料科學與工藝技術發(fā)展歷程
- 【MOOC】《基礎工業(yè)工程》(東北大學)中國大學慕課答案
- 商場安全生產培訓
- 紹興市部分市屬國企招聘筆試沖刺題2025
- 口腔科消毒流程和管理標準
- 珠寶行業(yè)顧問合作協(xié)議
評論
0/150
提交評論