NEC单片机的FIP应用

[09-12 18:13:17]   来源:http://www.88dzw.com  单片机学习   阅读:8659

文章摘要:3 软件设计 3.1 相关的数据结构和变量 使用的数据结构和变量的定义说明如下: char PreKeyStatus[8]; /*前一次8列键的状态存入数组的低4位*/ char CurKeyStatus[8]; /*当有8列键的状态存入数组的低4位*/ char ScanData; /*当前用于扫描的数据*/ char RetData; /*临时存储回读的数据*/ char KeyBuff[10]; /*键盘缓冲区*/ char Khead; /*键盘缓冲区头指针*/ char Krear

NEC单片机的FIP应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
3 软件设计
     3.1 相关的数据结构和变量
    
  使用的数据结构和变量的定义说明如下:
      char PreKeyStatus[8]; /*前一次8列键的状态存入数组的低4位*/
      char CurKeyStatus[8]; /*当有8列键的状态存入数组的低4位*/
      char ScanData; /*当前用于扫描的数据*/
      char RetData; /*临时存储回读的数据*/
      char KeyBuff[10]; /*键盘缓冲区*/
      char Khead; /*键盘缓冲区头指针*/
      char Krear; /*键盘缓冲区尾指针*/
      char ChatterCount; /*消抖动计数器*/
      char ScanEnd; /*一遍扫描结束标志*/
      char KeyChanged; /*按键改变标志*/
      const char DisplayCode[0][2]; /*0~9的显示编码,每个编码占2字节*/
    
3.2 程序初始化 
     
  进行显示方式设置、I/O端口设置、中断系统设置始化的具体程序段如下:
      DI(); /*关中断*/
      DSPM0=0x00; /*9段显示,段显示方式,系统时钟4.9152MHz*/
      DSPM1=0xB3; /*23位显示,亮度为2/16,显示周期为416.7μs*/
      PM12=0x0F; /*P12端口的低四位用于键盘回读,设为输出模式*/
      KSIF=0; /*清除中断请求标志*/
      KSMK=0; /*清除中断屏蔽标志,允许INTKS中断*/
      Khead=9; /*初始化键盘缓冲区*/
      Krear=0; /*消抖动计数器置初值*/
      Scandata=0x01; /*键盘扫描数据置初值*/
      ScanFinish=0; /*一遍扫描结束标志置初值*/
      KeyChanged=0; /*按键改变标志置初值*/
      EI(); /*开中断*/
    
3.3 显示程序 
     
  下面的程序可实现在指定位置显示一个数字的功能。其中能数digit为要显示的数字,范围是0~9;position为显示位置,从右向左与0~11相对应。
      void DisplayDigit(char digit,char position)
      {if((digit<10)&&(digit>=0)&&(position>=0)&&(position<12)
      /*在显示范围之内*/
      {pokeb(0xFA60+position,DisplayCode[digit][1]);
      /*编码的低字节*/
      {pokeb(0xFA70+position,DisplayCode[digit][0])};
      /*编码的高字节*/
      }
      中断处理程序流程如图3所示。
    
    

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《NEC单片机的FIP应用》相关文章

分类导航
最新更新
热门排行