




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于Proteus的單片機設計與調試第1章設計基礎
☆第2章基本模塊設計與調試
☆第3章擴展模塊設計與調試
☆第4章競賽試題設計與測試
☆基于Proteus的單片機設計與調試目
錄2025/5/301.1MCS51兼容單片機
☆1.2開發環境與工具
☆1.3Proteus
☆前頁
返回第1章設計基礎基于Proteus的單片機設計與調試2025/5/30第1章設計基礎1.1MCS51兼容單片機MCS51單片機是Intel公司20世紀80年代推出的8位單片機,近40年來一直得到了廣泛的應用。國外和國內有很多公司都推出了改進型的51兼容單片機,其中具有代表性的是宏晶科技推出的IAP15系列8位單片機。1.1.1MCS51單片機功能簡介1.1.2IAP15單片機簡介1.1.3單片機競賽實訓平臺資源介紹前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介MCS51單片機采用40腳雙列直插封裝,有32根IO線,2/3個16位定時/計數器,1個全雙工串行口,5/6個2優先級的中斷源。MCS51系列單片機性能對照表如表1.1所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(1)并行口MCS51的32根I/O線分為4個雙向并行口P0~P3,每個I/O線都能獨立地用作輸入或輸出,每個I/O電路都由鎖存器、輸出驅動器和輸入緩沖器組成。并行口相關的特殊功能寄存器(SFR)如表1.3所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(1)并行口P0口受內部信號控制,可分別切換到地址/數據總線和I/O口兩種工作狀態,通常工作在I/O口狀態,開漏輸出,必須外接上拉電阻,輸入時鎖存器必須輸出1。P1口只有I/O口一種工作狀態,內部接有上拉電阻,輸入時鎖存器也必須輸出1。P2口受內部信號控制,有地址總線和I/O口兩種工作狀態,通常也工作在I/O口狀態,內部接有上拉電阻,輸入時鎖存器必須輸出1。P3口除用作一般I/O口外,還有第二種I/O功能,用作第二種輸出時鎖存器必須輸出1,內部接有上拉電阻,輸入時鎖存器必須輸出1。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器MCS51有3個16位定時/計數器T0、T1和T2,其核心部件是一個加法計數器(TH和TL),可以對輸入脈沖進行計數。若計數脈沖來自系統時鐘,則為定時方式;若計數脈沖來自P34(T0)、P35(T1)或P10(T2)引腳,則為計數方式。在定時方式下,計數脈沖的頻率是系統主頻的12分頻。如果系統主頻是12MHz,則計數脈沖的頻率是1MHz(計數周期是1ms)。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器與3個定時器相關的特殊功能寄存器(SFR)如表1.4所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器T0和T1功能相似,與T0有關的寄存器位是M1_0、M0_0、C/T0、GATE0、TR0和TF0,與T1有關的寄存器位是M1_1、M0_1、C/T1、GATE1、TR1和TF1,各位的作用如下:前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器①M1、M0:工作方式選擇,T0和T1的4種工作方式如表1.5所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器方式0和方式1時,計數器溢出(定時時間到)時,程序必須重裝初值。方式2可以自動重裝初值,8位初值在TH中,計數器溢出(定時時間到)時自動重裝到TL。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器②C/T:計數/定時選擇,0-定時,1-計數③GATE:門控,0-啟動與外部中斷無關,1-啟動與外部中斷相關④TR:運行控制,0-停止定時/計數,1-啟動定時/計數⑤TF:溢出標志,0-無溢出,1-溢出(定時/計數值從最大值變為0,定時時間到。中斷響應時自動清零,否則軟件清零)前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器13位定時初值(高8位在TH中,低5位在TL中)與定時時間的關系是:定時初值=8192-定時時間*系統主頻/12定時初值/32商放入TH余數放入TL16位定時初值(高8位在TH中,低8位在TL中)與定時時間的關系是:定時初值=65536-定時時間*系統主頻/12定時初值/256商放入TH余數放入TL前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器T2是8052在8051基礎上增加的定時器,與T2有關的寄存器位是CP/RL2、C/T2、RCLK、TCLK、TR2和TF2等,部分寄存器位的作用如下:①CP/RL2:捕捉/自動重裝選擇,0-自動重裝方式,1-捕捉方式②TCLK:發送時鐘選擇,0-T1作為串口發送時鐘。1-T2作為串口發送時鐘③RCLK:接收時鐘選擇,0-T1作為串口接收時鐘。1-T2作為串口接收時鐘前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(2)定時/計數器T2的3種工作方式如表1.6所示。T2的方式0為16位自動重裝方式,初值與定時時間的關系與T0和T1的方式1相同,只不過16位初值分別在RCAP2H和RCAP2L中,計數器溢出(定時時間到)時自動重裝到TH2和TL2。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(3)串行口MCS51有1個串行口,與串行口相關的特殊功能寄存器(SFR)如表1.7所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(3)串行口常用的寄存器位是SM0、SM1、REN、TI、RI和SMOD:①SM1、SM0:工作方式選擇,4種工作方式如表1.8所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(3)串行口②REN:接收使能③TI:發送標志,發送完成時有硬件置位,必須由軟件復位④RI:接收標志,接收完成時有硬件置位,必須由軟件復位⑤SMOD:波特率選擇,1-波特率加倍前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(3)串行口串行口常用的工作方式是方式1,可以用T1(T2CON中的RCLK和TCLK均為0)或T2(T2CON中的RCLK或TCLK不為0)作為波特率發生器。通常用T2作為波特率發生器,此時定時初值(RCAP2H和RCAP2L)和波特率的關系是:定時初值=65536-系統主頻/波特率/32波特率=系統主頻/(65536-定時初值)/32定時初值的取值范圍是0~65535,系統主頻為12MHz時波特率的取值范圍是6~375000波特。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(4)中斷MCS51有6個中斷源:INT0、T0、INT1、T1、UART和T2,如表1.9所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(4)中斷與中斷相關的特殊功能寄存器(SFR)如表1.10所示。中斷允許寄存器(IE)中中斷允許位(EX0等)為0時禁止相應中斷,為1時允許相應中斷。EA為0時禁止所有中斷,為1時允許所有中斷。中斷優先級寄存器(IP)中中斷優先級位(PX0等)為0時是低優先級中斷,為1時是高優先級中斷。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.1MCS51單片機功能簡介(4)中斷中斷處理函數的一般形式為:void函數名(void)interruptn[usingm]其中n是中斷號(0~5),編譯器從8n+3處產生中斷入口地址。m用來選擇工作寄存器組(0~3)。using是可選項,不選時編譯器自動選擇工作寄存器組。應該特別注意,在任何情況下都不能直接調用中斷處理函數,因此它不能進行參數傳遞,也沒有返回值。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介IAP15系列8位單片機是宏晶科技推出的自帶仿真器的單時鐘/機器周期(1T)MCS51兼容單片機:內部集成高精度R/C時鐘,時鐘頻率5~28MHz寬范圍可設置FLASH最大容量61KB,SRAM最大容量2KB有42根IO線(LQFP44封裝)2~5個16位定時/計數器1~4個全雙工串行口(UART),1個SPI接口8路高速10位ADC,3路CCP/PWM/PCA10~21個2優先級中斷源。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介和MCS51相比,IAP15主要在以下幾個方面進行了改進:①并行口增加了模式配置,包括準雙向口/弱上拉(標準51模式,復位值)、推挽輸出/強上拉、高阻輸入或開漏輸出。②定時/計數器增加了定時脈沖頻率選擇,包括系統主頻的12分頻(標準51模式,復位值)或系統主頻;T0和T1的工作方式0修改為16位自動重裝初值定時/計數器,T0的工作方式3修改為不可屏蔽16位自動重裝初值定時/計數器;T2的工作方式固定為16位自動重裝方式,可以作為定時器使用,也可以作為串行口的波特率發生器和可編程時鐘輸出(T2CLKO)。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.2IAP15單片機簡介和MCS51相比,IAP15主要在以下幾個方面進行了改進:③串行口(UART)增加到2個,并增加了引腳切換功能。④增加了SPI和ADC等功能。⑤中斷源增加到了14個。詳細功能介紹參見第2章。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹單片機競賽實訓平臺包括下列模塊:(1)單片機芯片配置LQFP44封裝IAP15F2K61S2(2)顯示模塊配置8路LED輸出配置8位8段共陽極數碼管(3)輸入/輸出模塊配置4×4矩陣按鍵配置繼電器和蜂鳴器前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹單片機競賽實訓平臺包括下列模塊:(4)傳感模塊配置光敏電阻配置數字溫度傳感器DS18B20配置超聲波收發探頭及驅動電路(5)電源USB和外接5V直流電源雙電源供電。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹單片機競賽實訓平臺包括下列模塊:(6)通信功能板載USB轉串口功能,可以完成單片機與PC的串行通信(7)存儲/IO擴展配置EEPROM芯片AT24C02(8)程序下載板載USB下載功能,不需要另外配備編程器前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹單片機競賽實訓平臺包括下列模塊:(9)ADC/DAC模塊配置PCF8591ADC/DAC芯片,內含8位4通道ADC和單通道DAC(10)信號發生模塊配置555方波發生器,可產生實驗所需的200Hz~20KHz的方波信號前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.1MCS51兼容單片機1.1.3單片機競賽實訓平臺資源介紹前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用1.2.2STC-ISP使用1.2.3IAP15F2K61S2程序調試方法前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發系統,提供包括C編譯器、宏匯編、鏈接器、庫管理和功能強大的仿真調試器在內的完整開發方案,通過集成開發環境(IDE)將這些部分組合在一起。Keil兼容C語言和匯編語言,與匯編語言相比,C語言在功能、結構性、可讀性和可維護性上有明顯的優勢,因而易學易用。開發人員可用IDE本身或其他編輯器編輯C語言(C51)或匯編語言(A51)源文件,然后分別由C51及A51編譯器編譯生成目標文件(.obj),再由LIB51創建生成庫文件,也可以與庫文件一起經L51連接生成絕對目標文件(.abs),abs文件由OH51轉換成標準的十六進制文件(.hex),以供調試器進行源代碼級調試,也可由仿真器直接對目標板進行調試,還可以直接寫入程序存儲器中。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用KeilmVision5集成開發環境V9.56的安裝文件是“Keil.C51.V9.56.exe”,雙擊該文件啟動安裝,將KeilC51安裝在“C:\Keil_v5”文件夾中。KeilmVision5集成開發環境的打開方法是:在Windows操作系統“開始”菜單下的“所有程序”中找到“KeiluVision5”程序,或單擊桌面上的“KeiluVision5”圖標,運行“KeiluVision5”,進入KeilmVision5集成開發環境主界面。下面以“2.1LED”為例,介紹KeilmVision5集成開發環境的使用。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用①單擊“Project”菜單下的“NewmVisionProject…”菜單項啟動新工程的建立,出現創建新工程對話框。為了便于工程管理,對于每個工程可以新建一個文件夾,例如本例中新建文件夾“D:\MCS51\201_LED”,進入“201_LED”文件夾后在文件名文本框中輸入工程名稱(例如“IAP15”),如圖1.1所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用②單擊“保存(S)”按鈕,出現選擇器件對話框,選擇任何MCS51兼容的單片機(例如“Intel”公司的“8031AH”單片機,如圖1.2所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用③單擊“OK”按鈕,提示是否加載啟動代碼,單擊“否(N)”按鈕,出現集成開發環境主界面,界面左側的工程區出現“Target1”文件夾,展開“Target1”,出現下一級文件夾“SourceGroup1”,如圖1.3所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用④單擊“File”菜單下的“New...”菜單項或單擊文件工具欄中的“New”按鈕,新建文件“Text1”,在“Text1”中輸入或復制“2.1LED”中的程序,單擊“File”菜單下的“Save”菜單項或單擊文件工具欄中的“Save”(保存)按鈕,打開另存為對話框,在另存為對話框的文件名中輸入文件名“main.c”,單擊“保存(S)”按鈕保存文件,如圖1.4所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用⑤保存文件后,還需要將該文件添加到工程中,方法是:右擊“SourceGroup1”文件夾,在彈出的菜單中單擊“AddExistingFilestoGroup'SourceGroup1'”,出現添加文件到組對話框,選擇其中的“main.c”文件,單擊“Add”按鈕將“main.c”文件添加到工程中,單擊“Close”按鈕關閉添加文件到組對話框,如圖1.5所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用⑥單擊“Project”菜單下的“BuildTarget”菜單項或單擊生成工具欄中的“Build”按鈕編譯工程,主界面下方的輸出窗口顯示編譯結果。如果編譯正確,可以看到提示0個錯誤與0個警告,如圖1.6(a)所示;如果源程序中有語法錯誤,會在主界面下方的輸出窗口中提示發生錯誤或者警告,如圖1.6(b)所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用⑦編譯正確后,單擊“Debug”菜單下的“Start/StopDebugSession”菜單項或單擊文件工具欄中“Start/StopDebugSession”按鈕進入調試界面,如圖1.7所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用⑧單擊“Peripherals”菜單下“IO-Ports”中的“Port0”菜單項,打開并口0對話框,如圖1.8所示。⑨單擊調試工具欄中的“AnalysisWindows”按鈕打開邏輯分析儀窗口,單擊窗口左上角的“Setup”按鈕打開設置邏輯分析儀對話框,單擊對話框右上角的“New(Insert)”按鈕新建信號,輸入“P0”,單擊“Close”關閉設置邏輯分析儀對話框,如圖1.9所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用⑩單擊“Debug”菜單下的“Run”菜單項或單擊調試工具欄中的“Run”按鈕運行程序,并口0對話框中P0的值變化,邏輯分析儀窗口出現波形;單擊“Debug”菜單下的“Stop”菜單項或單擊調試工具欄中的“Stop”按鈕停止程序,邏輯分析儀窗口如圖1.10所示,前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用右擊“P0”,在彈出菜單中可以選擇信號顯示類型“Analog”(模擬)、“Bit”(位)或“State”(狀態),也可以選擇“HexadecimalValues”(十六進制值)。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用為了看清信號波形,可以單擊“Zoom”下的“In”按鈕放大波形,單擊“Out”按鈕縮小波形,單擊“All”按鈕顯示所有波形。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.1KeilC51使用單擊“Transition”下的“Prev”可以將游標移動到波形的前一個變化點,單擊“Next”將游標移動到波形的后一個變化點。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用STC-ISP是宏晶公司開發的針對STC系列單片機設計的一款單片機下載編程燒錄軟件。下面再以“2.1LED”為例,介紹STC-ISP的使用,包括目標選項設置、串口識別和程序下載等。(1)目標選項設置默認情況下,Keil工程編譯后不會產生十六進制目標代碼文件(.hex),為了使工程項目編譯后自動生成十六進制目標代碼文件(.hex),需要進行目標選項設置。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用具體方法是:在Keil中右擊左側窗口中的“Target1”,在彈出菜單中單擊“OptionforTarget'Target1'”,或者單擊“Project”菜單下的“OptionforTarget'Target1'”菜單項,或者單擊生成工具欄中的“OptionforTarget...”按鈕,打開目標選項對話框,在目標選項對話框中單擊“Output”標簽,選擇“CreateHEXFile”選項,如圖1.11所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用順便在“C51”標簽的“Define”后輸入預處理定義“IAP15”,如圖1.12所示。單擊“Debug”標簽,默認使用仿真器(UseSimulator)調試。設置完成后,重新編譯工程,在工程所在文件夾的“Objects”文件夾中可以找到生成的HEX文件,文件名和工程名相同。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用(2)USB轉接串口號識別電腦和實訓平臺的通信通過USB轉串口實現,將實訓平臺通過USB與電腦相連,Windows會自動安裝驅動程序,如果不能自動安裝,可以執行CH341SER.exe手動安裝。在“計算機管理”的“系統工具”中單擊“設備管理器”,展開“端口(COM和LPT)”,可以查看USB轉接的串口號,如圖1.13所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用(3)STC-ISP程序下載STC-ISP的執行文件是stc-isp-15xx-v6.88.exe,程序下載步驟如下:①打開下載界面:雙擊stc-isp-15xx-v6.88.exe運行程序,出現如圖1.14所示界面。②選擇芯片型號:在左上方的“芯片型號”下拉列表中選擇芯片型號,實訓平臺上的芯片型號為“IAP15F2K61S2”。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用(3)STC-ISP程序下載STC-ISP的執行文件是stc-isp-15xx-v6.88.exe,程序下載步驟如下:③確認串口號與計算機系統識別一致:將實訓平臺通過USB與電腦相連,在“串口號”下拉列表中選擇“USB-SERIALCH340(COM1)”。④打開程序文件:單擊“打開程序文件”按鈕,打開工程文件夾“D:\MCS51\201_LED”下“Objects”文件夾中的“MCS51.hex”文件,界面右上方的程序文件標簽中出現加載的十六進制程序代碼。⑤選擇IRC頻率:在“硬件選項”中選擇IRC頻率為“12.000”MHz。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用(3)STC-ISP程序下載⑥下載程序代碼:單擊界面左下方的“下載/編程”按鈕,界面右下方顯示“正在檢測目標單片機”,按一下實訓平臺上的“DownLoad”按鍵,STC-ISP檢測到單片機,顯示當前芯片的硬件選項,并開始下載程序,下載完成后顯示“操作成功”,如圖1.15所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.2STC-ISP使用(3)STC-ISP程序下載同時實訓平臺運行程序,LED流水顯示,按下S4或S5可以改變流水方向。注意:將J5跳接到“BTN”位置。由于有1s延時,所以按鍵按下要超過1s。如果流水燈的延時不是1s,則是沒有定義預處理符號“IAP15”(參見圖1.12)。如果操作不成功,請檢查是否正確安裝了驅動程序,可以打開設備管理器查看是否正確分配了串口號,且STC-ISP軟件中設置的串口號是否和設備管理器查看到的串口號一致。STC-ISP除了具有程序下載功能外,還有其他實用功能,例如仿真設置、串口助手、波特率計算器、定時器計算器和軟件延時計算器等,這些功能的使用將在后續章節中介紹。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法程序調試是程序設計的重要步驟,通過調試,不僅可以驗證程序的功能,更重要的是發現和糾正程序中的功能錯誤。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法(1)安裝Keil版本的STC仿真驅動在STC-ISP右上方選擇“Keil仿真設置”標簽,單擊“添加型號和頭文件到Keil中”按鈕,打開瀏覽文件夾對話框,在對話框中選擇Keil安裝文件夾“C:\Keil_v5”,單擊“確定”按鈕,STC-ISP提示“STCMCU型號添加成功!”,如圖1.16所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法(1)安裝Keil版本的STC仿真驅動STCMCU添加成功后,“C:\Keil_v5\
C51\BIN”文件夾中出現STCMonitor51仿真驅動程序“stcmon51.dll”,同時“C:\Keil_v5\C51\INC\STC文件夾中出現STC頭文件,在Keil中新建工程選擇芯片型號時,便會有“STCMCUDatabase”選項,從MCU列表中選擇MCU型號(目前STC支持仿真的型號只有STC15F2K60S2),如圖1.17所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法(2)設置仿真芯片IAP15F2K61S2在“Keil仿真設置”標簽中選擇正確的單片機型號“IAP15F2K61S2”,單擊“將所選目標單片機設置為仿真芯片”按鈕,界面右下方顯示“正在檢測目標單片機”,按一下實訓平臺上的“DownLoad”按鍵,STC-ISP檢測到單片機,顯示當前芯片的硬件選項,并開始下載仿真程序,下載完成后顯示“操作成功”,仿真芯片設置完成,如圖1.18所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法(3)硬件仿真驅動選擇在Keil中打開“201_LED”工程,在目標選項對話框中選擇“Debug”標簽,選擇右側的“Use:”,從驅動下拉列表中選擇“STCMonitor-51Driver”,選擇“Runtomain()”選項,單擊“Settings”按鈕打開目標設置對話框,選擇串口(COM1),單擊“OK”按鈕關閉目標設置和目標選項對話框,如圖1.19所示(新建工程默認使用仿真器調試)。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法(4)開始仿真調試編譯工程,編譯正確后,單擊“Debug”菜單下的“Start/StopDebugSession”菜單項或單擊文件工具欄中的“Start/StopDebugSession”按鈕,將編譯結果下載到MCU,然后進入調試界面,程序停在第1條語句,如圖1.20所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法調試界面中的調試工具欄如圖1.21所示,其中包含調試按鈕和查看按鈕。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法調試按鈕的使用方法如下:①單擊“Debug”菜單下的“Run”菜單項或單擊調試工具欄中的“Run”按鈕運行程序,實訓平臺上的L1~L8流水顯示。②單擊“Debug”菜單下的“Stop”菜單項或單擊調試工具欄中的“Stop”按鈕停止程序,實訓平臺上的L1~L8停止流水顯示,程序停在語句for(i=0;i<628;i++)。③單擊“Debug”菜單下的“StepOut”菜單項或單擊調試工具欄中的“StepOut”按鈕跳出延時子程序,回到主程序。④單擊“Debug”菜單下的“Step”菜單項或單擊調試工具欄中的“Step”按鈕2次,單步運行程序,進入Key_Proc()函數。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法調試按鈕的使用方法如下:⑤單擊“Debug”菜單下的“StepOver”菜單項或單擊調試工具欄中的“StepOver”按鈕3次,單步運行按鍵處理函數,由于沒有按鍵按下,所以不執行按鍵處理操作。⑥單擊“Debug”菜單下的“Step”菜單項或單擊調試工具欄中的“Step”按鈕,單步運行程序,進入并運行Led_Proc()函數,由于bDir為0,所以執行左環移操作。⑦單擊Key_Proc()中的語句bDir=1,再單擊“Debug”菜單下的“RuntoCursorLine”菜單項或單擊調試工具欄中的“RuntoCursorLine”按鈕運行程序,在實訓平臺上按下S4鍵,程序停止bDir=1語句。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法調試按鈕的使用方法如下:⑧單擊Key_Proc()中的語句bDir=0的左側設置斷點,再單擊“Run”按鈕運行程序,在實訓平臺上按下S5鍵,程序停在斷點處。⑨單擊斷點取消斷點。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法常用查看按鈕的使用方法如下:①單擊“View”菜單下的“SymbolsWindow”菜單項或單擊調試工具欄中的“SymbolsWindow”按鈕打開符號窗口,其中包含虛擬寄存器(VirtualRegisters)、特殊功能寄存器(SpecialFunctionRegisters)和用戶程序MCS51中的模塊和變量等,如圖1.22所示。調試界面中的調試工具欄如圖1.21所示,其中包含調試按鈕和查看按鈕。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法常用查看按鈕的使用方法如下:②單擊“View”菜單下的“CallStackWindow”菜單項或單擊調試工具欄中的“CallStackWindow”按鈕打開調用棧窗口,如圖1.23所示。圖(a)是在主函數的結果,圖(b)是進入P0_Out函數的結果,其中包含程序調用順序和P0_Out函數中的局部變量(ucData和ucAddr)及其值(0xFD和0x04)。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.2開發環境與工具1.2.3IAP15F2K61S2程序調試方法常用查看按鈕的使用方法如下:使用STC仿真調試時,在調試界面的Debug菜單中還會出現新的菜單項,如圖1.24(a)所示,其中包含STCMCU的所有片內設備,“AllPorts”菜單項對應的“Ports”對話框如圖1.24(b)所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用Proteus是英國LabCenterElectronics公司出版的EDA仿真軟件,從原理圖布圖、代碼調試、單片機與外圍電路協同仿真到一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。Proteus是世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器。下面以Proteus8.6SP2為例介紹Proteus的使用,包括創建工程、繪制電路圖以及運行和調試源代碼等。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(1)創建工程Proteus創建工程的步驟如下:①在Proteus中單擊“文件”(File)菜單下的“新建工程”菜單項,打開新建工程向導,在名稱后輸入“MCS51”,選擇路徑為“D:\MCS51\201_LED”,如圖1.25所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
注意:將Proteus工程文件和Keil工程文件放在一個文件夾,可以公用源代碼文件。
第1章設計基礎1.3Proteus使用(1)創建工程Proteus創建工程的步驟如下:②單擊“下一步”按鈕,選擇“LandscapeA4”。前頁
返回11:45:52基于Proteus的單片機設計與調試③單擊“下一步”按鈕,選擇“不創建PCB布板設計”。④單擊“下一步”按鈕,選擇“創建固件項目”,選擇“8051”系列、“80C32”控制器和“Keilfor8051”編譯器,取消“創建快速啟動文件”選擇,如圖1.26所示。第1章設計基礎1.3Proteus使用(1)創建工程Proteus創建工程的步驟如下:⑤單擊“下一步”按鈕,顯示總結界面,單擊“完成”按鈕,創建工程。⑥在“源代碼”(SourceCode)標簽中右擊“工程”(Projects)下的“80C32(U1)”,在彈出菜單中選擇“ProjectSettings”,在工程選項對話框中取消“EmbedFiles”選擇。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:①單擊“原理圖繪制”(SchematicCapture)標簽,單擊“庫”(Library)菜單下的“從庫選擇零件”(Pickpartsfromlibraries)菜單項,或單擊“原理圖繪制”標簽中的按鈕,打開“選擇元器件”對話框,用表1.13所示名稱作為關鍵字選擇元器件。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(2)繪制原理圖前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:②利用“原理圖繪制”標簽左側模式選擇工具欄中的繪圖工具,按右圖布局和連接關系繪制原理圖。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:模式選擇工具分為繪圖工具、配件工具和圖形工具3類,如圖1.27所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎前頁
返回11:45:52基于Proteus的單片機設計與調試1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:模式選擇工具分為繪圖工具、配件工具和圖形工具3類,如圖1.27所示。第1章設計基礎前頁
返回11:45:52基于Proteus的單片機設計與調試1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:模式選擇工具分為繪圖工具、配件工具和圖形工具3類,如圖1.27所示。第1章設計基礎1.3Proteus使用(2)繪制原理圖Proteus繪制原理圖的步驟如下:③單擊“原理圖繪制”標簽左側工具欄中的“激活彈出模式”按鈕,將整個電路框起來,以便調試源代碼時顯示所框電路。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:①單擊“源代碼”(SourceCode)標簽,右擊“工程”(Projects)下的“80C32(U1)”,在彈出菜單中選擇“AddFiles”(添加文件)菜單項,在添加文件對話框中選擇“D:\MCS51\201_LED”文件夾中的“main.c”文件。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:②單擊“系統”(System)菜單中的“編譯器配置”(CompilersConfiguration)菜單項,打開“編譯器”對話框,確認“Keilfor8051”編譯器已安裝,如圖1.28所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:③單擊“構建”(Build)菜單下的“構建工程”(BuildProject)菜單項,將main.c編譯成目標文件main.obj,并連接成程序文件debug.omf,如圖1.29所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:④在“原理圖繪制”標簽中雙擊原理圖中的“80C32”,打開“編輯元件”對話框,確認“ProgramFile”為“80C32\Debug\Debug.OMF”,如圖1.30所示。前頁
返回11:45:52基于Proteus的單片機設計與調試
第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:⑤單擊左下角仿真控制按鈕中的“開始仿真”按鈕,或單擊“調試”(Debug)菜單下的“開始仿真”(StartVSMDebugging)菜單項,進入調試狀態,源代碼標簽分別顯示源代碼(SourceCode)、變量(Variables)和原理圖動畫(SchematicAnimation)。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:仿真控制按鈕和調試工具按鈕如圖1.31所示。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼Proteus運行和調試源代碼的步驟如下:⑥單擊調試工具按鈕中的“運行仿真”按鈕,運行程序,L1~L8向右流水顯示。⑦單擊S4鍵,L1~L8向左流水顯示,L10點亮。⑧單擊S5鍵,L1~L8恢復向右流水顯示,L10熄滅。⑨單擊仿真控制按鈕中的“停止仿真”按鈕,停止程序運行。調試工具按鈕中其他按鈕的使用將在后續內容中介紹。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼調試狀態的“調試”菜單中包含圖1.32所示的調試菜單項和8051CPU子菜單項。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼8051CPU子菜單項中變量(Variables)子菜單項對應的內容如圖1.33所示,右擊其中的項目,從彈出菜單中可以選擇變量值的顯示形式:Binary(二進制)、Hexadecimal(十六進制)和UnsignedInteger(無符號整數)等。前頁
返回11:45:52基于Proteus的單片機設計與調試第1章設計基礎1.3Proteus使用(3)運行和調試源代碼注意:為了方便后續打開工程,可以單擊“系統”菜單中的“系統設置”菜單項,打開系統設置對話框,在“全局設置”(GlobalSettings)標簽中選擇“工程初始目錄設置”為“初始目錄使用下面這個目錄”,并選擇目錄“D:\MCS51”。前頁
返回11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED
☆2.2定時器
☆2.3數碼管
☆2.4矩陣按鍵
☆2.5串行口
☆2.6中斷
☆2025/5/30基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED設計要求:用LED實現流水燈(軟件延時1s),S4和S5分別控制LED顯示左右移動和繼電器的打開與關閉。2.1.1原理圖繪制2.1.2源代碼設計2.1.3源代碼調試11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.1原理圖繪制原理框圖如圖2.1所示。系統包括:MCU、獨立按鍵、LED
繼電器、蜂鳴器11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.1原理圖繪制4個獨立按鍵S4~S7與MCU的P30~P33相連,按鍵未按下時是高電平(1),按下時是低電平(0)。8個LEDL1~L8通過鎖存器U6與MCU的P0相連,Y4C為0時鎖存器輸出不變,Y4C為1時鎖存器輸出隨輸入改變,輸出1時LED熄滅,輸出0時LED點亮。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.1原理圖繪制L10通過繼電器RL1、驅動器U10和鎖存器U9與MCU的P04相連,P04輸出0時繼電器斷開,L10熄滅,輸出1時繼電器吸合,L10點亮。蜂鳴器BUZ1通過驅動器U10和鎖存器U9與MCU的P06相連,P06輸出1時蜂鳴器開啟,輸出0時蜂鳴器關閉。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.1原理圖繪制MCU的P25~P27通過譯碼器U24/25輸出Y4C~Y5C,用于選通鎖存器U6和U9。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試2.1LED2.1.1原理圖繪制原理圖如圖2.2所示。系統包括:MCU、獨立按鍵、LED
繼電器、蜂鳴器前頁
返回11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下:/**程序說明:LED流水燈(軟件延時1s)*S4和S5分別控制左右移動和繼電器的打開與關閉*硬件環境:CT107D單片機競賽實訓平臺(可選)*軟件環境:Keil5.00以上,Proteus8.6SP2*日期:2022/8/28*作者:gsjzbj*/11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下:#defineLED4//LED鎖存器地址#defineULN5//ULN鎖存器地址#defineRLY0x10//繼電器控制位#defineBUZ0x40//蜂鳴器控制位voidKey_Proc(void);voidLed_Proc(void);11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下:sfrP0=0x80;sfrP2=0xA0;sfrP3=0xB0;sbitS4=P3^3;sbitS5=P3^2;bitbDir=0;//流水燈方向unsignedcharucLed=1,ucUln=0;//LED值,ULN值11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://P0輸出:ucData——數據,ucAddr——地址(4~7)voidP0_Out(unsignedcharucData,unsignedcharucAddr){P0=ucData;//P0輸出數據P2|=ucAddr<<5;//置位P27~P25P2&=0x1f;//復位P27~P25}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://關閉外設voidClose_Peripheral(void){P2&=0x1f;//復位P27~P25P0_Out(0xff,LED);//熄滅LEDP0_Out(~(RLY|BUZ),ULN);//關閉繼電器和蜂鳴器}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://延時函數:uiNum——毫秒數(最小約1ms@12MHz)voidDelay(unsignedintuiNum){unsignedinti;while(uiNum--)#ifndefIAP15for(i=0;i<82;i++);//MCS51#elsefor(i=0;i<628;i++);//IAP15#endif}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://主函數(流程圖參見圖2.3(a))voidmain(void){Close_Peripheral();while(1){Key_Proc();Led_Proc();}}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://按鍵處理函數(流程圖參見圖2.3(c))voidKey_Proc(void){if(!S4){bDir=1;//設置流水方向ucUln|=RLY;//置位繼電器控制位P0_Out(ucUln,ULN);//打開繼電器}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://按鍵處理函數(流程圖參見圖2.3(c))if(!S5){bDir=0;//設置流水方向ucUln&=~RLY;//復位繼電器控制位P0_Out(ucUln,ULN);//關閉繼電器}}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://LED處理函數(流程圖參見圖2.3(d))voidLed_Proc(void){if(bDir){ucLed>>=1;if(ucLed==0)//右環移ucLed=0x80;}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計LED流水燈(軟件延時1s)源代碼設計如下://LED處理函數(流程圖參見圖2.3(d))else{ucLed<<=1;if(ucLed==0)//左環移ucLed=1;}P0_Out(~ucLed,LED);//LED顯示Delay(1000);}11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.2源代碼設計程序流程圖如圖2.3所示。思考:①按鍵判斷時S4和S5為什么要進行邏輯非(!)操作?可以換成位非(~)嗎?②LED顯示時ucLed為什么要進行位非(~)操作?可以換成邏輯非(!)嗎?擴展:增加S6和S7控制蜂鳴器開啟和關閉功能。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.1LED2.1.3源代碼調試LED流水燈源代碼調試包括關閉外設調試、按鍵處理調試和LED處理調試三部分。單擊“構建工程”按鈕或單擊“構建”菜單下的“構建工程”菜單項,編譯工程。單擊“開始仿真”按鈕或單擊“調試”菜單下的“開始仿真”菜單項,進入調試狀態。(1)關閉外設調試(2)按鍵處理調試(3)LED處理調試11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器MCS51和IAP15都有3個16位定時/計數器T0、T1和T2,其核心部件是一個加法計數器(TH和TL),可以對輸入脈沖進行計數。若計數脈沖來自系統時鐘,則為定時方式;若計數脈沖來自外部引腳,則為計數方式。MCS51和IAP15的T0和T1兼容,主要區別是IAP15將T0和T1的工作方式0由13位定時/計數器修改為16位自動重裝初值定時/計數器,使用更加方便。MCS51和IAP15的T2不兼容(詳見表2.1)。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器與3個定時器相關的特殊功能寄存器如表2.1所示。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器與3個定時器相關的特殊功能寄存器如表2.1所示。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器與3個定時器相關的特殊功能寄存器如表2.1所示。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器MCS51T0和T1的4種工作方式如表2.2所示。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器IAP15T0和T1的4種工作方式如表2.3所示。11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器13位定時初值(高8位在TH中,低5位在TL中)與定時時間的關系是:定時初值=8192-定時時間*系統主頻/12定時初值/32商放入TH余數放入TL1ms定時初值=8192-1*10-3*12*106/12=71927192/32=224(TH)余24(TL)16位定時初值(高8位在TH中,低8位在TL中)與定時時間的關系是:定時初值=65536-定時時間*系統主頻/12定時初值/256商放入TH余數放入TL11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器設計要求:用LED實現流水燈(定時器延時1s),S4和S5控制LED顯示左右移動。LED流水燈(定時器延時1s)的原理框圖和原理圖與LED流水燈(軟件延時1s)相同,源代碼設計在LED流水燈(軟件延時1s)源代碼設計的基礎上完成:在“D:\MCS51”文件夾中將“201_LED”文件夾復制粘貼為“202_TIM”文件夾,打開“202_TIM”文件夾中的“MCS51”工程。2.2.1源代碼設計2.2.2源代碼調試11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器2.2.1源代碼設計LED流水燈(定時器延時1s)源代碼設計包括tim.h設計、tim.c設計和main.c修改。(1)tim.h設計在源代碼標簽中右擊“80C32(U1)”,在彈出菜單中選擇“AddNewFile”菜單項,在添加新文件對話框中選擇“202_TIM”文件夾,添加新文件“tim.h”,內容如下:voidT1_Init(void);voidT1_Proc(void);11:45:52基于Proteus的單片機設計與調試第2章基本模塊設計與調試前頁
返回2.2定時器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深度解讀2025年教育行業數字化招生策略與品牌影響力提升報告
- 食品倉庫場地租賃合同
- 農村合作社信息化建設協議
- 2025年原油項目建設用地申請報告
- 羽絲枕項目投資可行性研究分析報告(2024-2030版)
- 2025-2030中國藥物賦形劑行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030聯合辦公行業兼并重組機會研究及決策咨詢報告
- 陜西省安康市漢濱高中2025屆高二化學第二學期期末質量跟蹤監視試題含解析
- 個人廠房轉讓合同 廠房出租轉讓合同
- 陜西省西安電子科技大附中2025年高一化學第二學期期末學業質量監測試題含解析
- 2025年高考全國二卷英語高考真題含解析
- 《殺死一只知更鳥》讀書分享PPT
- 工業以太網交換機-IETH9424-安裝說明書
- GA 1801.3-2022國家戰略儲備庫反恐怖防范要求第3部分:成品油庫
- 血液透析患者飲食指導
- 脫硫塔玻璃鱗片膠泥襯里施工組織設計
- XB/T 505-2011汽油車排氣凈化催化劑載體
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 27744-2021異步起動永磁同步電動機技術條件及能效分級(機座號80~355)
- GB 8076-2008混凝土外加劑
- 寶盾轉門故障代碼
評論
0/150
提交評論