标题: RD8T37P48硬件数码管驱动功能测试 [打印本页]

作者: lmn2005    时间: 2023-6-27 13:32
标题: RD8T37P48硬件数码管驱动功能测试
据RD8T37P48的芯片手册介绍,RD8T37P48集成硬件数码管的驱动,所以总想测试一下它的硬件数码管驱动是怎样的。
下面就分享一下本人在应用EasyCodeCube配置工程模板对RD8T37P48硬件数码管的驱动功能进行测试的基本流程。
一、打开EasyCodeCube,选择芯片。

二、将LED硬件数码管功能导入用户工程列表。
方法:右键点击“LED数码管_硬件”----左键点击“导入用户工程驱动列表”。

三、设置硬件数码管端口。
方法:在左栏菜单“用户工程驱动列表”中找到“LED数码管_硬件”,并点开。再在右边的界面上设置SEGA~SEGP(为了方便,我按顺序选择,这个是可以改变P1口顺序 的),还有COM0~COM3(RD8T37P48支持8位数码管)。

说明:本人测试用的是四位共阴数码管,其他类型的数码管可以参照此法进行配置。

四、BTM设置1秒中断,用于变量sec累加


五、生成工程模板。


六、用keil打开刚才生成的工程,设置芯片及下载器。
下面是软件生成的段码编码,与其他LED数码管代码生成工具一致。

说明一下,最后的0x00是本人添加的,目的是为了关闭显示。
数码管的所有驱动集中在SCDriver_NixieTubeForHardware.c中,SCDriver_NixieTubeForHardware.h只提供了下面两个显示函数:
其中 void SCD_NT_HW_OneDisplay(unsigned char ComNumber,unsigned char ComData);是单个控制的显示函数,
void SCD_NT_HW_ListDisplay(unsigned char * Com);是多个控制的显示函数,本次实验只测试了单个控制的显示函数void SCD_NT_HW_OneDisplay,这个函数集成了数码管驱动初始化程序,所以不用初始化也可以直接调用!

七、在main.c和SC_it.c中添加变量sec,用于秒数累加,作为数码管的显示数据。

八、在BTM秒中断中添加秒变量sec累加代码:
  1.     sec++;
  2.     if( sec>10 )sec=0;
复制代码

九、在主程序中添加显示代码

  1.         if(sec!=i)
  2.         {
  3.         SCD_NT_HW_OneDisplay(0,sec);        
  4.         SCD_NT_HW_OneDisplay(1,sec);        
  5.         SCD_NT_HW_OneDisplay(2,sec);        
  6.         SCD_NT_HW_OneDisplay(3,sec);         
  7.         i=sec;
  8.         }        
复制代码



测试效果:https://www.bilibili.com/video/BV16u41187V2/










欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1