|
據(jù)RD8T37P48的芯片手冊介紹,RD8T37P48集成硬件數(shù)碼管的驅(qū)動,所以總想測試一下它的硬件數(shù)碼管驅(qū)動是怎樣的。
下面就分享一下本人在應(yīng)用EasyCodeCube配置工程模板對RD8T37P48硬件數(shù)碼管的驅(qū)動功能進(jìn)行測試的基本流程。
一、打開EasyCodeCube,選擇芯片。
二、將LED硬件數(shù)碼管功能導(dǎo)入用戶工程列表。
方法:右鍵點(diǎn)擊“LED數(shù)碼管_硬件”----左鍵點(diǎn)擊“導(dǎo)入用戶工程驅(qū)動列表”。
三、設(shè)置硬件數(shù)碼管端口。
方法:在左欄菜單“用戶工程驅(qū)動列表”中找到“LED數(shù)碼管_硬件”,并點(diǎn)開。再在右邊的界面上設(shè)置SEGA~SEGP(為了方便,我按順序選擇,這個是可以改變P1口順序 的),還有COM0~COM3(RD8T37P48支持8位數(shù)碼管)。
002設(shè)置硬件數(shù)碼管端口.jpg (255.78 KB, 下載次數(shù): 49)
下載附件
2023-6-27 13:35 上傳
說明:本人測試用的是四位共陰數(shù)碼管,其他類型的數(shù)碼管可以參照此法進(jìn)行配置。
四、BTM設(shè)置1秒中斷,用于變量sec累加
003BTM設(shè)置1秒中斷.jpg (121.89 KB, 下載次數(shù): 67)
下載附件
2023-6-27 13:36 上傳
五、生成工程模板。
六、用keil打開剛才生成的工程,設(shè)置芯片及下載器。
下面是軟件生成的段碼編碼,與其他LED數(shù)碼管代碼生成工具一致。
004顯示編碼.jpg (241 KB, 下載次數(shù): 59)
下載附件
2023-6-27 13:37 上傳
說明一下,最后的0x00是本人添加的,目的是為了關(guān)閉顯示。
數(shù)碼管的所有驅(qū)動集中在SCDriver_NixieTubeForHardware.c中,SCDriver_NixieTubeForHardware.h只提供了下面兩個顯示函數(shù):
其中 void SCD_NT_HW_OneDisplay(unsigned char ComNumber,unsigned char ComData);是單個控制的顯示函數(shù),
void SCD_NT_HW_ListDisplay(unsigned char * Com);是多個控制的顯示函數(shù),本次實(shí)驗(yàn)只測試了單個控制的顯示函數(shù)void SCD_NT_HW_OneDisplay,這個函數(shù)集成了數(shù)碼管驅(qū)動初始化程序,所以不用初始化也可以直接調(diào)用!
七、在main.c和SC_it.c中添加變量sec,用于秒數(shù)累加,作為數(shù)碼管的顯示數(shù)據(jù)。
006main.c添加變量sec.jpg (203.78 KB, 下載次數(shù): 58)
下載附件
2023-6-27 13:37 上傳
007在SC_it.c添加變量sec.jpg (210 KB, 下載次數(shù): 65)
下載附件
2023-6-27 13:37 上傳
八、在BTM秒中斷中添加秒變量sec累加代碼:
- sec++;
- if( sec>10 )sec=0;
復(fù)制代碼
九、在主程序中添加顯示代碼
- if(sec!=i)
- {
- SCD_NT_HW_OneDisplay(0,sec);
- SCD_NT_HW_OneDisplay(1,sec);
- SCD_NT_HW_OneDisplay(2,sec);
- SCD_NT_HW_OneDisplay(3,sec);
- i=sec;
- }
復(fù)制代碼
測試效果:https://www.bilibili.com/video/BV16u41187V2/
|
評分
-
查看全部評分
|