本書(shū)分三部分介紹在美國(guó)廣泛應(yīng)用的、高功能的M68HC11系列單片機(jī)(8位機(jī) ,Motorola公司)。內(nèi)容包括M68HC11的結(jié)構(gòu)與其基本原理、開(kāi)發(fā)工具EVB(性能評(píng)估板)以及開(kāi)發(fā)和應(yīng)用技術(shù)。本書(shū)在介紹單片機(jī)硬、軟件的基礎(chǔ)上,進(jìn)一步介紹了在美國(guó)實(shí)驗(yàn)室內(nèi),如何應(yīng)用PC機(jī)及EVB來(lái)進(jìn)行開(kāi)發(fā)工作。通過(guò)本書(shū)的介紹,讀者可了解這種單片機(jī)的原理并學(xué)會(huì)開(kāi)發(fā)和應(yīng)用方法。本書(shū)可作為大專(zhuān)院校單片機(jī)及其實(shí)驗(yàn)的教材(本科、短訓(xùn)班)。亦可供開(kāi)發(fā)、應(yīng)用單片機(jī)的各專(zhuān)業(yè)(計(jì)算機(jī)、機(jī)電、化工、紡織、冶金、自控、航空、航海……)有關(guān)技術(shù)人員參考。 第一部分 M68HC11 結(jié)構(gòu)與原理Motorola單片機(jī) 1 Motorla單片機(jī) 1.1 概述 1.1.1 Motorola 單片機(jī)發(fā)展概況(3) 1.1.2 Motorola 單片機(jī)結(jié)構(gòu)特點(diǎn)(4) 1.2 M68HC11系列單片機(jī)(5) 1.2.1 M68HC11產(chǎn)品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9單片機(jī)引腳說(shuō)明(8) 1.3 Motorola 32位單片機(jī)(14) 1.3.1中央處理器(CPU32)(15) 1.3.2 定時(shí)處理器(TPU)(16) 1.3.3 串行隊(duì)列模塊(QSM)(16) 1.3.4 系統(tǒng)集成模塊 (SIM)(16) 1.3.5 RAM(17) 2 系統(tǒng)配置與工作方式 2.1 系統(tǒng)配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的編程與擦除(20) 2?2 工作方式選擇(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通單片工作方式(23) 2.3.2 普通擴(kuò)展工作方式(23) 2.3.3 特殊自舉方式(27) 2.3.4 特殊測(cè)試方式(28) 3 中央處理器(CPU)與片上存儲(chǔ)器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和雙累加器D(32) 3.1.2 變址寄存器X、Y(32) 3.1.3 棧指針SP(32) 3.1.4 程序計(jì)數(shù)器PC(33) 3.1.5 條件碼寄存器CCR(33) 3.2 片上存儲(chǔ)器(34) 3.2.1 存儲(chǔ)器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 復(fù)位和中斷 4.1 復(fù)位(41) 4.1.1 M68HC11的系統(tǒng)初始化條件(41) 4.1.2 復(fù)位形式(43) 4.2 中斷(48) 4.2.1 條件碼寄存器CCR中的中斷屏蔽位(48) 4.2.2 中斷優(yōu)先級(jí)與中斷矢量(49) 4.2.3 非屏蔽中斷(52) 4.2.4 實(shí)時(shí)中斷(53) 4.2.5 中斷處理過(guò)程(56) 5 M68HC11指令系統(tǒng) 5.1 M68HC11尋址方式(59) 5.1.1 立即尋址(IMM)(59) 5.1.2 擴(kuò)展尋址(EXT)(60) 5.1.3 直接尋址(DIR)(60) 5.1.4 變址尋址(INDX、INDY)(61) 5.1.5 固有尋址(INH)(62) 5.1.6 相對(duì)尋址(REL)(62) 5.1.7 前置字節(jié)(63) 5.2 M68HC11指令系統(tǒng)(63) 5.2.1 累加器和存儲(chǔ)器指令(63) 5.2.2 棧和變址寄存器指令(68) 5.2.3 條件碼寄存器指令(69) 5.2.4 程序控制指令(70) 6 輸入與輸出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 應(yīng)答I/O子系統(tǒng)(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 數(shù)據(jù)格式(83) 6.3.3 SCI硬件結(jié)構(gòu)(84) 6.3.4 SCI寄存器(86) 6.4 串行外圍接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引腳信號(hào)(92) 6.4.3 SPI結(jié)構(gòu)(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系統(tǒng)與外部設(shè)備進(jìn)行串行數(shù)據(jù)傳輸(99) 7 定時(shí)器系統(tǒng)與脈沖累加器 7.1 概述(105) 7.2 循環(huán)計(jì)數(shù)器(107) 7.2.1 時(shí)鐘分頻器(107) 7.2.2 計(jì)算機(jī)正常工作監(jiān)視功能(110) 7.2.3 定時(shí)器標(biāo)志的清除(110) 7.3 輸入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定時(shí)器輸入捕捉鎖存器(TIC1、TIC2、TIC3) 7.3.3 輸入信號(hào)沿檢測(cè)邏輯(113) 7.3.4 輸入捕捉中斷(113) 7.4 輸出比較功能(114) 7.4.1 概述(114) 7.4.2 輸出比較功能使用的寄存器(116) 7.4.3 輸出比較示例(118) 7.5 脈沖累加器(119) 7.5.1 概述(119) 7.5.2 脈沖累加器控制和狀態(tài)寄存器(121) 8 A/D轉(zhuǎn)換系統(tǒng) 8.1 電荷重新分布技術(shù)與逐次逼近算法(125) 8.1.1 基本電路(125) 8.1.2 A/D轉(zhuǎn)換逐次逼近算法原理(130) 8.2 M68HC11中A/D轉(zhuǎn)換的實(shí)現(xiàn)方法(131) 8.2.1 逐次逼近A/D轉(zhuǎn)換器(131) 8.2.2 控制寄存器(132) 8.2.3 系統(tǒng)控制邏輯(135)? 9 單片機(jī)的內(nèi)部操作 9.1 用立即> 圖書(shū)前言 美國(guó)Motorola公司從80年代中期開(kāi)始推出的M68HC11系列單片機(jī)是當(dāng)今功能最強(qiáng)、性能/價(jià)格比最好的八位單片微計(jì)算機(jī)之一。在美國(guó),它已被廣泛地應(yīng)用于教學(xué)和各種工業(yè)控制系統(tǒng)中。? 該單片機(jī)有豐富的I/O功能,完善的系統(tǒng)保護(hù)功能和軟件控制的節(jié)電工作方式 。它的指令系統(tǒng)與早期Motorola單片機(jī)MC6801等兼容,同時(shí)增加了91條新指令。其中包含16位乘法、除法運(yùn)算指令等。 為便于用戶開(kāi)發(fā)和應(yīng)用M68HC11單片機(jī),Motorola公司提供了多種開(kāi)發(fā)工具。M68HC11 EVB (Evaluation Board)性能評(píng)估板就是一種M68HC11系列單片機(jī)的廉價(jià)開(kāi)發(fā)工具。它既可用來(lái) 調(diào)試用戶程序,又可在仿真方式下運(yùn)行。為方便用戶,M68HC11 EVB可與IBM?PC連接 ,借助于交叉匯編、通信程序等軟件,在IBM?PC上調(diào)試程序。? 本書(shū)分三部分(共15章)介紹了M68HC11的結(jié)構(gòu)和基本原理、開(kāi)發(fā)工具-EVB及開(kāi)發(fā)應(yīng)用實(shí)例等。第一部分(1~9章),介紹M68HC11的結(jié)構(gòu)和基本原理。包括概述,系統(tǒng)配置與工作方式、CPU和存儲(chǔ)器、復(fù)位和中斷、指令系統(tǒng)、I/O、定時(shí)器系統(tǒng)和脈沖累加器、A/D轉(zhuǎn)換系統(tǒng)、單片機(jī)的內(nèi)部操作等。第二部分(10~11章),介紹M68HC11 EVB的原理和技術(shù)特性以及EVB的應(yīng)用。第三部分(12~15章),介紹M68HC11的開(kāi)發(fā)與應(yīng)用技術(shù)。包括基本的編程練習(xí)、應(yīng)用程序設(shè)計(jì)、接口實(shí)驗(yàn)、接口設(shè)計(jì)及應(yīng)用等。 讀者通過(guò)學(xué)習(xí)本書(shū),不僅可了解M68HC11的硬件、軟件,而且可了解使用EVB開(kāi)發(fā)和應(yīng)用M68HC11單片機(jī)的方法。在本書(shū)的第三部分專(zhuān)門(mén)提供了一部分實(shí)驗(yàn)和應(yīng)用程序。? 本書(shū)系作者張寧作為高級(jí)訪問(wèn)學(xué)者,應(yīng)邀在美國(guó)馬薩諸塞州洛厄爾大學(xué)(University of Massachusetts Lowell)工作期間完成的。全書(shū)由張寧執(zhí)筆。在編著過(guò)程中,美國(guó)洛厄爾大學(xué)的R·代克曼教授?(Professor Robert J. Dirkman)多次與張寧一起討論、研究,并提供部分資料及實(shí)驗(yàn)數(shù)據(jù)。參加編寫(xiě)和審校等工作的還有王云霞、孫曉芳、劉安魯、張籍、來(lái)安德、張楊等同志。? 為將M68HC11系列單片機(jī)盡快介紹給我國(guó),美國(guó)Motorola公司的Terrence M.S.Heng先生曾大力支持本書(shū)的編著和出版。在此表示衷心感謝。
上傳時(shí)間: 2013-10-27
上傳用戶:rlgl123
MC14489的輸入接口與MOTOROLA公司/RCA公司的SPI串行接口以及美國(guó)國(guó)半公司的MICROWIRE串行接口安全兼容,也可以由任意一種單片機(jī)的I/O口線來(lái)進(jìn)行隨機(jī)的顯示訪問(wèn)。
上傳時(shí)間: 2013-10-11
上傳用戶:qzhcao
附件為:LCD12864顯示漢字和數(shù)字的程序與電路 /* 自定義延時(shí)子函數(shù) */ void delayms(uchar z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /* 判斷LCD忙信號(hào)狀態(tài) */ void buys() { int dat; RW=1; RS=0; do { P0=0x00; E=1; dat=P0; E=0; dat=0x80 & dat; } while(!(dat==0x00)); } /* LCD寫(xiě)指令函數(shù) */ void w_com(uchar com) { //buys(); RW=0; RS=0; E=1; P0=com; E=0; } /* LCD寫(xiě)數(shù)據(jù)函數(shù) */ void w_date(uchar date) { //buys(); RW=0; RS=1; E=1; P0=date; E=0; } /* LCD選屏函數(shù) */ void select_screen(uchar screen) { switch(screen) { case 0: //選擇全屏 CS1=0; CS2=0; break; case 1: //選擇左屏 CS1=0; CS2=1; break; case 2: //選擇右屏 CS1=1; CS2=0; break; /* case 3: //選擇右屏 CS1=1; CS2=1; break; */ } } /* LCDx向上滾屏顯示 */ void lcd_rol() { int x; for(x=0;x<64;x++) { select_screen(0); w_com(0xc0+x); delayms(500); } } /* LCD清屏函數(shù):清屏從第一頁(yè)的第一列開(kāi)始,總共8頁(yè),64列 */ void clear_screen(screen) { int x,y; select_screen(screen); //screen:0-選擇全屏,1-選擇左半屏,2-選擇右半屏 for(x=0xb8;x<0xc0;x++) //從0xb8-0xbf,共8頁(yè) { w_com(x); w_com(0x40); //列的初始地址是0x40 for(y=0;y<64;y++) { w_date(0x00); } } } /* LCD顯示漢字字庫(kù)函數(shù) */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-3,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*32; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*16)); for ( a=0;a<16;a++) { w_date(hanzi[mun++]); } } /* LCD顯示字符字庫(kù)函數(shù) */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-7,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(zifu[mun++]); } } /* LCD顯示數(shù)字字庫(kù)函數(shù) */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) { //screen:選擇屏幕參數(shù),page:選擇頁(yè)參數(shù)0-3,col:選擇列參數(shù)0-7,mun:顯示第幾個(gè)漢字的參數(shù) int a; mun=mun*16; select_screen(screen); w_com(0xb8+(page*2)); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } w_com(0xb8+(page*2)+1); w_com(0x40+(col*8)); for ( a=0;a<8;a++) { w_date(shuzi[mun++]); } } /* LCD初始化函數(shù) */ void lcd_init() { w_com(0x3f); //LCD開(kāi)顯示 w_com(0xc0); //LCD行初始地址,共64行 w_com(0xb8); //LCD頁(yè)初始地址,共8頁(yè) w_com(0x40); //LCD列初始地址,共64列 } /* LCD顯示主函數(shù) */ void main() { //第一行 int x; lcd_init(); //LCD初始化 clear_screen(0); //LCD清屏幕 lcd_display_shuzi(1,0,4,5); //LCD顯示數(shù)字 lcd_display_shuzi(1,0,5,1); //LCD顯示數(shù)字 lcd_display_hanzi(1,0,3,0); //LCD顯示漢字 lcd_display_hanzi(2,0,0,1); //LCD顯示漢字 //LCD字符漢字 lcd_display_hanzi(2,0,1,2); //LCD顯示漢字 //第二行 lcd_display_zifuk(1,1,2,0); //LCD顯示字符 lcd_display_zifuk(1,1,3,0); //LCD顯示字符 lcd_display_zifuk(1,1,4,0); //LCD顯示字符 lcd_display_zifuk(1,1,5,4); //LCD顯示字符 lcd_display_shuzi(1,1,6,8); //LCD顯示字符 lcd_display_shuzi(1,1,7,9); //LCD顯示字符 lcd_display_shuzi(2,1,0,5); //LCD顯示字符 lcd_display_shuzi(2,1,1,1); //LCD顯示字符 lcd_display_zifuk(2,1,2,4); lcd_display_zifuk(2,1,3,1); lcd_display_zifuk(2,1,4,2); lcd_display_zifuk(2,1,5,3); //第三行 for(x=0;x<4;x++) { lcd_display_hanzi(1,2,x,3+x); //LCD顯示漢字 } for(x=0;x<4;x++) { lcd_display_hanzi(2,2,x,7+x); //LCD顯示漢字 } //第四行 for(x=0;x<4;x++) { lcd_display_zifuk(1,3,x,5+x); //LCD顯示漢字 } lcd_display_shuzi(1,3,4,7); lcd_display_shuzi(1,3,5,5); lcd_display_shuzi(1,3,6,5); lcd_display_zifuk(1,3,7,9); lcd_display_shuzi(2,3,0,8); lcd_display_shuzi(2,3,1,9); lcd_display_shuzi(2,3,2,9); lcd_display_shuzi(2,3,3,5); lcd_display_shuzi(2,3,4,6); lcd_display_shuzi(2,3,5,8); lcd_display_shuzi(2,3,6,9); lcd_display_shuzi(2,3,7,2); while(1); /* while(1) { // LCD向上滾屏顯示 lcd_rol(); } */ }
標(biāo)簽: 12864 LCD 漢字 數(shù)字
上傳時(shí)間: 2013-11-08
上傳用戶:aeiouetla
51單片機(jī)串行口初值計(jì)算器
標(biāo)簽: 51單片機(jī) 串行口 初值計(jì)算器
上傳時(shí)間: 2013-10-08
上傳用戶:qw12
atmega128串行操作lcd12864,另有ADC,PWM波,定時(shí)器的使用程序
標(biāo)簽: atmega 12864 128 lcd
上傳時(shí)間: 2013-10-18
上傳用戶:zm7516678
單片機(jī)系統(tǒng)多串行口設(shè)計(jì)技術(shù)研究
標(biāo)簽: 單片機(jī)系統(tǒng) 串行口 設(shè)計(jì)技術(shù)
上傳時(shí)間: 2013-10-16
上傳用戶:aig85
8位串行輸入平行輸入移位緩存器
上傳時(shí)間: 2013-11-05
上傳用戶:long14578
AT24c02串行口讀寫(xiě)
上傳時(shí)間: 2013-10-15
上傳用戶:王小奇
51單片機(jī)串行口初值計(jì)算器。
標(biāo)簽: 51單片機(jī) 串行口 初值計(jì)算器
上傳時(shí)間: 2013-11-12
上傳用戶:leawon947
針對(duì)大數(shù)據(jù)量的串口間通信,在常規(guī)的UART串行數(shù)據(jù)通信的基礎(chǔ)上,結(jié)合Cortex-M3微控制器中DMA控制器的作用,實(shí)現(xiàn)DMA控制的UART串口數(shù)據(jù)包收發(fā)。設(shè)計(jì)鏈表項(xiàng)緩存,最終實(shí)現(xiàn)DMA的分散/聚集模式的數(shù)據(jù)傳輸過(guò)程,主要是發(fā)送過(guò)程。提高了串行數(shù)據(jù)通信過(guò)程的MCU獨(dú)立性和MCU利用的效率。
上傳時(shí)間: 2013-11-04
上傳用戶:gaome
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1