本書從應用的角度,詳細地介紹了MCS-51單片機的硬件結構、指令系統、各種硬件接口設計、各種常用的數據運算和處理程序及接口驅動程序的設計以及MCS-51單片機應用系統的設計,并對MCS-51單片機應用系統設計中的抗干擾技術以及各種新器件也作了詳細的介紹。本書突出了選取內容的實用性、典型性。書中的應用實例,大多來自科研工作及教學實踐,且經過檢驗,內容豐富、翔實。 本書可作為工科院校的本科生、研究生、專科生學習MCS-51單片機課程的教材,也可供從事自動控制、智能儀器儀表、測試、機電一體化以及各類從事MCS-51單片機應用的工程技術人員參考。 第一章 單片微型計等機概述 1.1 單片機的歷史及發展概況 1.2 單片機的發展趨勢 1.3 單片機的應用 1.3.1 單片機的特點 1.3.2 單片機的應用范圍 1.4 8位單片機的主要生產廠家和機型 1.5 MCS-51系列單片機 第二章 MCS-51單片機的硬件結構 2.1 MCS-51單片機的硬件結構 2.2 MCS-51的引腳 2.2.1 電源及時鐘引腳 2.2.2 控制引腳 2.2.3 I/O口引腳 2.3 MCS-51單片機的中央處理器(CPU) 2.3.1 運算部件 2.3.2 控制部件 2.4 MCS-51存儲器的結構 2.4.1 程序存儲器 2.4.2 內部數據存儲器 2.4.3 特殊功能寄存器(SFR) 2.4.4 位地址空間 2.4.5 外部數據存儲器 2.5 I/O端口 2.5.1 I/O口的內部結構 2.5.2 I/O口的讀操作 2.5.3 I/O口的寫操作及負載能力 2.6 復位電路 2.6.1 復位時各寄存器的狀態 2.6.2 復位電路 2.7 時鐘電路 2.7.1 內部時鐘方式 2.7.2 外部時鐘方式 2.7.3 時鐘信號的輸出 第三章 MCS-51的指令系統 3.1 MCS-51指令系統的尋址方式 3.1.1 寄存器尋址 3.1.2 直接尋址 3.1.3 寄存器間接尋址 3.1.4 立即尋址 3.1.5 基址寄存器加變址寄存器間址尋址 3.2 MCS-51指令系統及一般說明 3.2.1 數據傳送類指令 3.2.2 算術操作類指令 3.2.3 邏輯運算指令 3.2.4 控制轉移類指令 3.2.5 位操作類指令 第四章 MCS-51的定時器/計數器 4.1 定時器/計數器的結構 4.1.1 工作方式控制寄存器TMOD 4.1.2 定時器/計數器控制寄存器TCON 4.2 定時器/計數器的四種工作方式 4.2.1 方式0 4.2.2 方式1 4.2.3 方式2 4.2.4 方式3 4.3 定時器/計數器對輸入信號的要求 4.4 定時器/計數器編程和應用 4.4.1 方式o應用(1ms定時) 4.4.2 方式1應用 4.4.3 方式2計數方式 4.4.4 方式3的應用 4.4.5 定時器溢出同步問題 4.4.6 運行中讀定時器/計數器 4.4.7 門控制位GATE的功能和使用方法(以T1為例) 第五章 MCS-51的串行口 5.1 串行口的結構 5.1.1 串行口控制寄存器SCON 5.1.2 特殊功能寄存器PCON 5.2 串行口的工作方式 5.2.1 方式0 5.2.2 方式1 5.2.3 方式2 5.2.4 方式3 5.3 多機通訊 5.4 波特率的制定方法 5.4.1 波特率的定義 5.4.2 定時器T1產生波特率的計算 5.5 串行口的編程和應用 5.5.1 串行口方式1應用編程(雙機通訊) 5.5.2 串行口方式2應用編程 5.5.3 串行口方式3應用編程(雙機通訊) 第六章 MCS-51的中斷系統 6.1 中斷請求源 6.2 中斷控制 6.2.1 中斷屏蔽 6.2.2 中斷優先級優 6.3 中斷的響應過程 6.4 外部中斷的響應時間 6.5 外部中斷的方式選擇 6.5.1 電平觸發方式 6.5.2 邊沿觸發方式 6.6 多外部中斷源系統設計 6.6.1 定時器作為外部中斷源的使用方法 6.6.2 中斷和查詢結合的方法 6.6.3 用優先權編碼器擴展外部中斷源 第七章 MCS-51單片機擴展存儲器的設計 7.1 概述 7.1.1 只讀存儲器 7.1.2 可讀寫存儲器 7.1.3 不揮發性讀寫存儲器 7.1.4 特殊存儲器 7.2 存儲器擴展的基本方法 7.2.1 MCS-51單片機對存儲器的控制 7.2.2 外擴存儲器時應注意的問題 7.3 程序存儲器EPROM的擴展 7.3.1 程序存儲器的操作時序 7.3.2 常用的EPROM芯片 7.3.3 外部地址鎖存器和地址譯碼器 7.3.4 典型EPROM擴展電路 7.4 靜態數據存儲的器擴展 7.4.1 外擴數據存儲器的操作時序 7.4.2 常用的SRAM芯片 7.4.3 64K字節以內SRAM的擴展 7.4.4 超過64K字節SRAM擴展 7.5 不揮發性讀寫存儲器擴展 7.5.1 EPROM擴展 7.5.2 SRAM掉電保護電路 7.6 特殊存儲器擴展 7.6.1 雙口RAMIDT7132的擴展 7.6.2 快擦寫存儲器的擴展 7.6.3 先進先出雙端口RAM的擴展 第八章 MCS-51擴展I/O接口的設計 8.1 擴展概述 8.2 MCS-51單片機與可編程并行I/O芯片8255A的接口 8.2.1 8255A芯片介紹 8.2.2 8031單片機同8255A的接口 8.2.3 接口應用舉例 8.3 MCS-51與可編程RAM/IO芯片8155H的接口 8.3.1 8155H芯片介紹 8.3.2 8031單片機與8155H的接口及應用 8.4 用MCS-51的串行口擴展并行口 8.4.1 擴展并行輸入口 8.4.2 擴展并行輸出口 8.5 用74LSTTL電路擴展并行I/O口 8.5.1 用74LS377擴展一個8位并行輸出口 8.5.2 用74LS373擴展一個8位并行輸入口 8.5.3 MCS-51單片機與總線驅動器的接口 8.6 MCS-51與8253的接口 8.6.1 邏輯結構與操作編址 8.6.2 8253工作方式和控制字定義 8.6.3 8253的工作方式與操作時序 8.6.4 8253的接口和編程實例 第九章 MCS-51與鍵盤、打印機的接口 9.1 LED顯示器接口原理 9.1.1 LED顯示器結構 9.1.2 顯示器工作原理 9.2 鍵盤接口原理 9.2.1 鍵盤工作原理 9.2.2 單片機對非編碼鍵盤的控制方式 9.3 鍵盤/顯示器接口實例 9.3.1 利用8155H芯片實現鍵盤/顯示器接口 9.3.2 利用8031的串行口實現鍵盤/顯示器接口 9.3.3 利用專用鍵盤/顯示器接口芯片8279實現鍵盤/顯示器接口 9.4 MCS-51與液晶顯示器(LCD)的接口 9.4.1 LCD的基本結構及工作原理 9.4.2 點陣式液晶顯示控制器HD61830介紹 9.5 MCS-51與微型打印機的接口 9.5.1 MCS-51與TPμp-40A/16A微型打印機的接口 9.5.2 MCS-51與GP16微型打印機的接口 9.5.3 MCS-51與PP40繪圖打印機的接口 9.6 MCS-51單片機與BCD碼撥盤的接口設計 9.6.1 BCD碼撥盤 9.6.2 BCD碼撥盤與單片機的接口 9.6.3 撥盤輸出程序 9.7 MCS-51單片機與CRT的接口 9.7.1 SCIBCRT接口板的主要特點及技術參數 9.7.2 SCIB接口板的工作原理 9.7.3 SCIB與MCS-51單片機的接口 9.7.4 SCIB的CRT顯示軟件設計方法 第十章 MCS-51與D/A、A/D的接口 10.1 有關DAC及ADC的性能指標和選擇要點 10.1.1 性能指標 10.1.2 選擇ABC和DAC的要點 10.2 MCS-51與DAC的接口 10.2.1 MCS-51與DAC0832的接口 10.2.2 MCS-51同DAC1020及DAC1220的接口 10.2.3 MCS-51同串行輸入的DAC芯片AD7543的接口 10.3 MCS-51與ADC的接口 10.3.1 MCS-51與5G14433(雙積分型)的接口 10.3.2 MCS-51與ICL7135(雙積分型)的接口 10.3.3 MCS-51與ICL7109(雙積分型)的接口 10.3.4 MCS-51與ADC0809(逐次逼近型)的接口 10.3.5 8031AD574(逐次逼近型)的接口 10.4 V/F轉換器接口技術 10.4.1 V/F轉換器實現A/D轉換的方法 10.4.2 常用V/F轉換器LMX31簡介 10.4.3 V/F轉換器與MCS-51單片機接口 10.4.4 LM331應用舉例 第十一章 標準串行接口及應用 11.1 概述 11.2 串行通訊的接口標準 11.2.1 RS-232C接口 11.2.2 RS-422A接口 11.2.3 RS-485接口 11.2.4 各種串行接口性能比較 11.3 雙機串行通訊技術 11.3.1 單片機雙機通訊技術 11.3.2 PC機與8031單片機雙機通訊技術 11.4 多機串行通訊技術 11.4.1 單片機多機通訊技術 11.4.2 IBM-PC機與單片機多機通訊技術 11.5 串行通訊中的波特率設置技術 11.5.1 IBM-PC/XT系統中波特率的產生 11.5.2 MCS-51單片機串行通訊波特率的確定 11.5.3 波特率相對誤差范圍的確定方法 11.5.4 SMOD位對波特率的影響 第十二章 MCS-51的功率接口 12.1 常用功率器件 12.1.1 晶閘管 12.1.2 固態繼電器 12.1.3 功率晶體管 12.1.4 功率場效應晶體管 12.2 開關型功率接口 12.2.1 光電耦合器驅動接口 12.2.2 繼電器型驅動接口 12.2.3 晶閘管及脈沖變壓器驅動接口 第十三章 MCS-51單片機與日歷的接口設計 13.1 概述 13.2 MCS-51單片機與實時日歷時鐘芯片MSM5832的接口設計 13.2.1 MSM5832性能及引腳說明 13.2.2 MSM5832時序分析 13.2.3 8031單片機與MSM5832的接口設計 13.3 MCS-51單片機與實時日歷時鐘芯片MC146818的接口設計 13.3.1 MC146818性能及引腳說明 13.3.2 MC146818芯片地址分配及各單元的編程 13.3.3 MC146818的中斷 13.3.4 8031單片機與MC146818的接口電路設計 13.3.5 8031單片機與MC146818的接口軟件設計 第十四章 MCS-51程序設計及實用子程序 14.1 查表程序設計 14.2 散轉程序設計 14.2.1 使用轉移指令表的散轉程序 14.2.2 使用地地址偏移量表的散轉程序 14.2.3 使用轉向地址表的散轉程序 14.2.4 利用RET指令實現的散轉程序 14.3 循環程序設計 14.3.1 單循環 14.3.2 多重循環 14.4 定點數運算程序設計 14.4.1 定點數的表示方法 14.4.2 定點數加減運算 14.4.3 定點數乘法運算 14.4.4 定點數除法 14.5 浮點數運算程序設計 14.5.1 浮點數的表示 14.5.2 浮點數的加減法運算 14.5.3 浮點數乘除法運算 14.5.4 定點數與浮點數的轉換 14.6 碼制轉換 ……
上傳時間: 2013-11-06
上傳用戶:xuanjie
TLC2543是TI公司的12位串行模數轉換器,使用開關電容逐次逼近技術完成A/D轉換過程。由于是串行輸入結構,能夠節省51系列單片機I/O資源;且價格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應用。 TLC2543的特點 (1)12位分辯率A/D轉換器; (2)在工作溫度范圍內10μs轉換時間; (3)11個模擬輸入通道; (4)3路內置自測試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉換結束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導; (10)可編程輸出數據長度。 TLC2543的引腳排列及說明 TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說明見表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上傳時間: 2013-11-19
上傳用戶:shen1230
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上傳時間: 2013-10-21
上傳用戶:13788529953
摘要: 串行傳輸技術具有更高的傳輸速率和更低的設計成本, 已成為業界首選, 被廣泛應用于高速通信領域。提出了一種新的高速串行傳輸接口的設計方案, 改進了Aurora 協議數據幀格式定義的弊端, 并采用高速串行收發器Rocket I/O, 實現數據率為2.5 Gbps的高速串行傳輸。關鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協議 為促使FPGA 芯片與串行傳輸技術更好地結合以滿足市場需求, Xilinx 公司適時推出了內嵌高速串行收發器RocketI/O 的Virtex II Pro 系列FPGA 和可升級的小型鏈路層協議———Aurora 協議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時鐘生成及恢復等功能, 可以理想地適用于芯片之間或背板的高速串行數據傳輸。Aurora 協議是為專有上層協議或行業標準的上層協議提供透明接口的第一款串行互連協議, 可用于高速線性通路之間的點到點串行數據傳輸, 同時其可擴展的帶寬, 為系統設計人員提供了所需要的靈活性[4]。但該協議幀格式的定義存在弊端,會導致系統資源的浪費。本文提出的設計方案可以改進Aurora 協議的固有缺陷,提高系統性能, 實現數據率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應用前景。
上傳時間: 2013-11-06
上傳用戶:smallfish
摘要: 串行傳輸技術具有更高的傳輸速率和更低的設計成本, 已成為業界首選, 被廣泛應用于高速通信領域。提出了一種新的高速串行傳輸接口的設計方案, 改進了Aurora 協議數據幀格式定義的弊端, 并采用高速串行收發器Rocket I/O, 實現數據率為2.5 Gbps的高速串行傳輸。關鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協議 為促使FPGA 芯片與串行傳輸技術更好地結合以滿足市場需求, Xilinx 公司適時推出了內嵌高速串行收發器RocketI/O 的Virtex II Pro 系列FPGA 和可升級的小型鏈路層協議———Aurora 協議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時鐘生成及恢復等功能, 可以理想地適用于芯片之間或背板的高速串行數據傳輸。Aurora 協議是為專有上層協議或行業標準的上層協議提供透明接口的第一款串行互連協議, 可用于高速線性通路之間的點到點串行數據傳輸, 同時其可擴展的帶寬, 為系統設計人員提供了所需要的靈活性[4]。但該協議幀格式的定義存在弊端,會導致系統資源的浪費。本文提出的設計方案可以改進Aurora 協議的固有缺陷,提高系統性能, 實現數據率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應用前景。
上傳時間: 2013-10-13
上傳用戶:lml1234lml
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。 1.程序分析:(a>b)?a:b這是條件運算符的基本例子。
上傳時間: 2015-01-08
上傳用戶:lifangyuan12
RSA算法 :首先, 找出三個數, p, q, r, 其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數...... p, q, r 這三個數便是 person_key,接著, 找出 m, 使得 r^m == 1 mod (p-1)(q-1)..... 這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了..... 再來, 計算 n = pq....... m, n 這兩個數便是 public_key ,編碼過程是, 若資料為 a, 將其看成是一個大整數, 假設 a < n.... 如果 a >= n 的話, 就將 a 表成 s 進位 (s
標簽: person_key RSA 算法
上傳時間: 2013-12-14
上傳用戶:zhuyibin
數字運算,判斷一個數是否接近素數 A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value. Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not. Input Each line of input contains the base b, followed by a string of digits representing a positive integer in that base. There are no leading zeroes. The input is terminated by a line consisting of 0 alone. Output For each case, print "yes" on a line if the given number is a Niven number, and "no" otherwise. Sample Input 10 111 2 110 10 123 6 1000 8 2314 0 Sample Output yes yes no yes no
上傳時間: 2015-05-21
上傳用戶:daguda
源代碼\用動態規劃算法計算序列關系個數 用關系"<"和"="將3個數a,b,c依次序排列時,有13種不同的序列關系: a=b=c,a=b<c,a<b=v,a<b<c,a<c<b a=c<b,b<a=c,b<a<c,b<c<a,b=c<a c<a=b,c<a<b,c<b<a 若要將n個數依序列,設計一個動態規劃算法,計算出有多少種不同的序列關系, 要求算法只占用O(n),只耗時O(n*n).
上傳時間: 2013-12-26
上傳用戶:siguazgb
The government of a small but important country has decided that the alphabet needs to be streamlined and reordered. Uppercase letters will be eliminated. They will issue a royal decree in the form of a String of B and A characters. The first character in the decree specifies whether a must come ( B )Before b in the new alphabet or ( A )After b . The second character determines the relative placement of b and c , etc. So, for example, "BAA" means that a must come Before b , b must come After c , and c must come After d . Any letters beyond these requirements are to be excluded, so if the decree specifies k comparisons then the new alphabet will contain the first k+1 lowercase letters of the current alphabet. Create a class Alphabet that contains the method choices that takes the decree as input and returns the number of possible new alphabets that conform to the decree. If more than 1,000,000,000 are possible, return -1. Definition
標簽: government streamline important alphabet
上傳時間: 2015-06-09
上傳用戶:weixiao99