找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 885|回复: 0
打印 上一主题 下一主题
收起左侧

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/





评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表