2425|0

90

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【R7F0C809】—例程分析 [复制链接]

R7F0C809芯片售后还可以,共有7个例子,而且每个例程里还提供文档,供开发者学习,还是很不错的。

本帖选取了第五个例程进行分析,主要是因为该例程和我们套件正好相对应,可以直接观察效果。
第五个例程为按键扫描配合 4 位 8 段数码管显示,其电路连接图如下,48段数码管采用共阳极接法,COM口和键盘扫描的输出口共用。
程序的关键是如何在进行键盘扫描时,同时进行数码管显示。
该例程为了解决这个问题,利用数码管显示时需要向COM发送高电平的同时,检测扫描输入即P00P16引脚,当有按键按下时,相应的扫描输入将检测到高电平,从而兼顾了键盘扫描和数码显示的两个功能。
主函数的代码如下:
  1. void main(void)
  2. {      
  3.     System_Init();                      /* Initializes some function moudle */
  4.     TS0 |= 0x01;                        /* Start TAU00 timer */
  5.     while(1)
  6.     {   
  7.          while(TMIF00 != 1);            /* Wait the TAU00 interrupt flag set to 1*/
  8.          TMIF00 = 0;                    /* TAU00 interrupt flag clear*/
  9.         
  10.          LED_Display();                 /* Executive the LED_Display function*/

  11.          TS0 |= 0x02;                   /* TAU01 start*/
  12.          while(TMIF01 != 1);            /* Wait the TAU01 interrupt flag set to 1*/
  13.          TT0 |= 0x02;                   /* TAU01 stop*/
  14.          TMIF01 = 0;                    /* TAU01 interrupt flag clear*/
  15.          Key_Scan();                    /* Executive the Key_Scan function*/
  16.          LED_Mode();                    /* Executive the Led_Mode function*/
  17.     }
  18. }
复制代码
由主函数可知,程序使用两个定时器TAU00、TAU01,主循环周期由TAU00控制周期为4.17ms,每个周期开始时先进行数码管的显示LED_Display(),然后延时2ms后(TS0 |= 0x02;while(TMIF01 != 1);TT0 |= 0x02;TMIF01 = 0; ),进行键盘扫描和显示模式切换。暂时分析到这了,具体功能可以见附件中例程。
an_r01an2006cc0110_r7f0c809_io.zip (732.4 KB, 下载次数: 6)


点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表