標(biāo)題: stc8h8k64u單片機(jī)能否顯示P4~P7口? [打印本頁]

作者: wh8010jky    時間: 2025-6-28 15:49
標(biāo)題: stc8h8k64u單片機(jī)能否顯示P4~P7口?
用stc8h8k64u做一個項目,由于用io端口較多,要用到P4~P7的部分端口,
在調(diào)試程序時能不能使P4~P7顯示出來,并且可以象P0~P3一樣方便操作?
謝謝!

作者: angmall    時間: 2025-6-28 16:45
可以的,可以顯示P4~P7口。
用硬件仿真。

1.jpg (395.63 KB, 下載次數(shù): 0)

1.jpg

作者: WL0123    時間: 2025-6-28 17:08
完全可以象P0~P3一樣方便操作
作者: wh8010jky    時間: 2025-6-28 18:00
WL0123 發(fā)表于 2025-6-28 17:08
完全可以象P0~P3一樣方便操作

我用keil 調(diào)試,peripherals 只有p0~p3,有人告訴我,可以用watch窗口,但那只能查看,不能操作。
作者: npn    時間: 2025-6-28 21:30
wh8010jky 發(fā)表于 2025-6-28 18:00
我用keil 調(diào)試,peripherals 只有p0~p3,有人告訴我,可以用watch窗口,但那只能查看,不能操作。

原始51單片機(jī)只有p0~p3口,p4以上是后來擴(kuò)展加進(jìn)去的
作者: wh8010jky    時間: 2025-6-28 23:19
WL0123 發(fā)表于 2025-6-28 17:08
完全可以象P0~P3一樣方便操作

謝謝!
作者: wh8010jky    時間: 2025-6-28 23:41
angmall 發(fā)表于 2025-6-28 16:45
可以的,可以顯示P4~P7口。
用硬件仿真。

謝謝!!
在某一個寶上買一個 STC_Lind 1D 就可以了嗎?
作者: angmall    時間: 2025-6-29 00:41
wh8010jky 發(fā)表于 2025-6-28 23:41
謝謝!
在某一個寶上買一個 STC_Lind 1D 就可以了嗎?

不買也行,就用USB就可以了。
作者: wh8010jky    時間: 2025-6-30 07:35
angmall 發(fā)表于 2025-6-29 00:41
不買也行,就用USB就可以了。

用USB能硬件仿真?請指教!越詳細(xì)越好!謝謝!
作者: wh8010jky    時間: 2025-6-30 07:40
angmall 發(fā)表于 2025-6-29 00:41
不買也行,就用USB就可以了。

用USB能仿真?請指教!越詳細(xì)越好!我已有一塊STC8H8K64U 開發(fā)板,上面有USB。
謝謝。!
作者: devcang    時間: 2025-6-30 09:06

有點(diǎn)小建議,就是建議先看一下手冊
作者: hi等你    時間: 2025-6-30 13:46
這類超出51標(biāo)準(zhǔn)擴(kuò)展端口用起來還是有點(diǎn)麻煩的,記得需要特定的地址寫入數(shù)據(jù)開始啟用,然后只能操作
地址控制,再加上強(qiáng)拉強(qiáng)推懸空讀數(shù)據(jù)這些定義寄存器還是要翻看手冊,盡量實機(jī)操作,先模擬仿真到實際應(yīng)用會掉鏈子的,8h系列我沒用過,8g我用過,挺惱火的,明明只有16個腳,p0,p1,p2它不搞,偏偏整了個
p5上去,自己的腦回路必須向它低頭
作者: wh8010jky    時間: 2025-6-30 18:12
hi等你 發(fā)表于 2025-6-30 13:46
這類超出51標(biāo)準(zhǔn)擴(kuò)展端口用起來還是有點(diǎn)麻煩的,記得需要特定的地址寫入數(shù)據(jù)開始啟用,然后只能操作
地址控 ...

謝謝。!
作者: angmall    時間: 2025-6-30 21:05
wh8010jky 發(fā)表于 2025-6-30 07:40
用USB能仿真?請指教!越詳細(xì)越好!我已有一塊STC8H8K64U 開發(fā)板,上面有USB。
謝謝!!

建議先看一下手冊


1、安裝 Keil 版本的仿真驅(qū)動


如上圖,首先選擇“Keil 仿真設(shè)置”頁面,點(diǎn)擊“添加 MCU 型號到 Keil 中”,在出現(xiàn)的如下的目錄選擇
窗口中,定位到 Keil 的安裝目錄(一般可能為“C:\Keil\”),“確定”后出現(xiàn)下圖中右邊所示的提示信
息,表示安裝成功。添加頭文件的同時也會安裝我司的 Monitor51 仿真驅(qū)動 STCMON51.DLL,驅(qū)動與頭
文件的安裝目錄如上圖所示。



如上圖,首先進(jìn)入到項目的設(shè)置頁面,選擇“Debug”設(shè)置頁,第 2 步選擇右側(cè)的硬件仿真“Use …”,
第 3 步,在仿真驅(qū)動下拉列表中選擇“STC Monitor-51 Driver”項,然后點(diǎn)擊“Settings”按鈕,進(jìn)入下
面的設(shè)置畫面,對USB進(jìn)行設(shè)置。到此設(shè)置便完成了。


2、創(chuàng)建仿真芯片


準(zhǔn)備一顆 STC8H 系列的芯片,并通過下載板連接到電腦的串口,然后如上圖,選擇正
確的芯片型號,然后進(jìn)入到“Keil 仿真設(shè)置”頁面,點(diǎn)擊相應(yīng)型號的按鈕,當(dāng)程序下載完成后仿真器便
制作完成了。




5、開始仿真
將制作完成的仿真芯片通過USB口與電腦相連接。
將前面我們所創(chuàng)建的項目編譯至沒有錯誤后,按“Ctrl+F5”開始調(diào)試。
若硬件連接無誤的話,將會進(jìn)入到類似于下面的調(diào)試界面,并在命令輸出窗口顯示當(dāng)前的仿真驅(qū)動版本
號和當(dāng)前仿真監(jiān)控代碼固件的版本號
斷點(diǎn)設(shè)置的個數(shù)目前最大允許 20 個(理論上可設(shè)置任意個,但是斷點(diǎn)設(shè)置得過多會影響調(diào)試的速度)。



開始調(diào)試


仿真注意事項:
1、 仿真監(jiān)控程序占用 P3.0/P3.1 兩個端口,但不占用串口 1,用戶可以將串口 1 切換到 P3.6/P3.7 或
者 P1.6/P1.7 再使用
2、 仿真監(jiān)控程序占用內(nèi)部擴(kuò)展 RAM(XDATA)的最后 768 字節(jié),用戶不可對這個區(qū)域的 XDATA 進(jìn)
行寫操作(若有將 STARTUP.A51 文件加入到項目,請注意:XDATALEN 宏是用來定義 XDATA
大小的一個宏,默認(rèn)值是 0,STARTUP.A51 里面的代碼會根據(jù)用戶設(shè)置的 XDATALEN 長度來
自動初始化 0~(XDATALEN-1)區(qū)域的 XDATA 為 0。一般保持 XDATALEN 為默認(rèn)值 0 即可。若
用戶需要修改,請根據(jù)實際的仿真的 XDATA 大小并保留 768 字節(jié)來設(shè)置此項。比如
STC8H8K64U 的 XDATA 為 8K,則需要將 XDATALEN 設(shè)置為 8192-768)




作者: cnos    時間: 2025-7-1 09:05
angmall 發(fā)表于 2025-6-30 21:05
建議先看一下手冊

這是精準(zhǔn)投喂啊,相當(dāng)于原廠FAE,不是,是原廠講師喂飯。
作者: 622323wjl    時間: 2025-7-1 10:01
在STC8H8K64U單片機(jī)中,P4~P7端口默認(rèn)是不顯示在調(diào)試窗口的,需要通過特殊設(shè)置才能像P0~P3一樣方便操作。以下是具體的實現(xiàn)方法:  ### 1. 端口映射與初始化  首先需要通過配置相關(guān)特殊功能寄存器(SFR)來啟用P4~P7端口,并進(jìn)行初始化:  ```c #include <STC8H8K64U.h>  // 端口初始化函數(shù) void Port_Init(void) {     // 使能P4~P7端口     P4M0 = 0x00;  // 設(shè)置P4口模式     P4M1 = 0x00;     P5M0 = 0x00;  // 設(shè)置P5口模式     P5M1 = 0x00;     P6M0 = 0x00;  // 設(shè)置P6口模式     P6M1 = 0x00;     P7M0 = 0x00;  // 設(shè)置P7口模式     P7M1 = 0x00;          // 根據(jù)實際需求配置每個端口的輸入/輸出方向     // 例如: P4.0設(shè)置為輸出     P4M0 |= 0x01;  // 推挽輸出     P4M1 &= ~0x01;          // 其他端口配置... } ```  ### 2. 在調(diào)試窗口顯示P4~P7  要在STC-ISP或其他調(diào)試工具中顯示P4~P7端口,需要修改調(diào)試配置文件或使用特殊指令。以STC-ISP為例:  1. 打開STC-ISP軟件,連接好單片機(jī) 2. 進(jìn)入"調(diào)試"選項卡 3. 在"特殊功能寄存器顯示"區(qū)域,手動添加P4~P7的寄存器地址:    - P4: E8H    - P5: CCH    - P6: D8H    - P7: F0H  4. 勾選這些寄存器使其顯示在調(diào)試窗口中  ### 3. 方便操作P4~P7端口的方法  為了像操作P0~P3一樣方便地操作P4~P7,可以編寫一些宏定義或函數(shù):  ```c // 定義位操作宏,方便單獨(dú)控制某個引腳 #define P40 P4_0  // P4.0引腳 #define P41 P4_1  // P4.1引腳 // 以此類推,可以定義P4~P7的所有引腳  // 示例:控制P4.0引腳輸出高低電平 void Set_P40_Output(unsigned char level) {     if(level)         P40 = 1;  // 輸出高電平     else         P40 = 0;  // 輸出低電平 }  // 讀取P4.0引腳輸入值 unsigned char Read_P40_Input(void) {     return P40;  // 返回P4.0引腳當(dāng)前電平 } ```  ### 4. 調(diào)試技巧  在調(diào)試時,可以使用以下方法驗證P4~P7端口是否正常工作:  ```c void Debug_Port_Test(void) {     // 測試P4.0輸出功能     P40 = 1;  // 輸出高電平     delay_ms(500);  // 延時500ms     P40 = 0;  // 輸出低電平     delay_ms(500);          // 測試P5.0輸入功能     if(P50 == 1)     {         // 處理P5.0為高電平的情況     }     else     {         // 處理P5.0為低電平的情況     } } ```  通過以上方法,你可以在調(diào)試程序時像操作P0~P3一樣方便地使用P4~P7端口。需要注意的是,不同的開發(fā)環(huán)境可能對特殊功能寄存器的顯示方式略有不同,具體操作請參考你使用的開發(fā)工具文檔。
作者: 622323wjl    時間: 2025-7-1 10:01
在STC8H8K64U單片機(jī)中,P4~P7端口默認(rèn)是不顯示在調(diào)試窗口的,需要通過特殊設(shè)置才能像P0~P3一樣方便操作。以下是具體的實現(xiàn)方法:  ### 1. 端口映射與初始化  首先需要通過配置相關(guān)特殊功能寄存器(SFR)來啟用P4~P7端口,并進(jìn)行初始化:  ```c #include <STC8H8K64U.h>  // 端口初始化函數(shù) void Port_Init(void) {     // 使能P4~P7端口     P4M0 = 0x00;  // 設(shè)置P4口模式     P4M1 = 0x00;     P5M0 = 0x00;  // 設(shè)置P5口模式     P5M1 = 0x00;     P6M0 = 0x00;  // 設(shè)置P6口模式     P6M1 = 0x00;     P7M0 = 0x00;  // 設(shè)置P7口模式     P7M1 = 0x00;          // 根據(jù)實際需求配置每個端口的輸入/輸出方向     // 例如: P4.0設(shè)置為輸出     P4M0 |= 0x01;  // 推挽輸出     P4M1 &= ~0x01;          // 其他端口配置... } ```  ### 2. 在調(diào)試窗口顯示P4~P7  要在STC-ISP或其他調(diào)試工具中顯示P4~P7端口,需要修改調(diào)試配置文件或使用特殊指令。以STC-ISP為例:  1. 打開STC-ISP軟件,連接好單片機(jī) 2. 進(jìn)入"調(diào)試"選項卡 3. 在"特殊功能寄存器顯示"區(qū)域,手動添加P4~P7的寄存器地址:    - P4: E8H    - P5: CCH    - P6: D8H    - P7: F0H  4. 勾選這些寄存器使其顯示在調(diào)試窗口中  ### 3. 方便操作P4~P7端口的方法  為了像操作P0~P3一樣方便地操作P4~P7,可以編寫一些宏定義或函數(shù):  ```c // 定義位操作宏,方便單獨(dú)控制某個引腳 #define P40 P4_0  // P4.0引腳 #define P41 P4_1  // P4.1引腳 // 以此類推,可以定義P4~P7的所有引腳  // 示例:控制P4.0引腳輸出高低電平 void Set_P40_Output(unsigned char level) {     if(level)         P40 = 1;  // 輸出高電平     else         P40 = 0;  // 輸出低電平 }  // 讀取P4.0引腳輸入值 unsigned char Read_P40_Input(void) {     return P40;  // 返回P4.0引腳當(dāng)前電平 } ```  ### 4. 調(diào)試技巧  在調(diào)試時,可以使用以下方法驗證P4~P7端口是否正常工作:  ```c void Debug_Port_Test(void) {     // 測試P4.0輸出功能     P40 = 1;  // 輸出高電平     delay_ms(500);  // 延時500ms     P40 = 0;  // 輸出低電平     delay_ms(500);          // 測試P5.0輸入功能     if(P50 == 1)     {         // 處理P5.0為高電平的情況     }     else     {         // 處理P5.0為低電平的情況     } } ```  通過以上方法,你可以在調(diào)試程序時像操作P0~P3一樣方便地使用P4~P7端口。需要注意的是,不同的開發(fā)環(huán)境可能對特殊功能寄存器的顯示方式略有不同,具體操作請參考你使用的開發(fā)工具文檔。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1