电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>C语言|源代码>zlg7289 c程序

zlg7289 c程序

2008-10-08 | rar | 55 | 次下载 | 10积分

资料介绍

zlg7289 c程序
#include"msp430x14x.h"
#include"IO.h"

#define DELAY_1US     _NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()

void Delay(unsigned int t)                  //延时 t us
{
 unsigned int  i;
 for (i=0;i  DELAY_1US;
}
/*
函数:ZLG7289_SPI_Write()
功能:向SPI 总线写入1 个字节的数据
参数
dat:要写入的数据
*/
void ZLG7289_SPI_Write(char dat)           //5
{
 unsigned char t = 8;
 ZLG7289_OperateIO &=~ZLG7289_CLK;   //clk=0
 do
 {
  if(dat&0x80)
   ZLG7289_OperateIO  |=ZLG7289_DAT;
  else
   ZLG7289_OperateIO  &=~ZLG7289_DAT;
  ZLG7289_OperateIO |=ZLG7289_CLK;    //clk=1
  dat <<= 1;
  Delay(4);
  ZLG7289_OperateIO &=~ZLG7289_CLK;   //clk=0
  Delay(4);
   }while ( --t != 0 );
}
/*
函数:ZLG7289_SPI_Read()
功能:从SPI 总线读取1 个字节的数据
返回:
读取到的数据
*/
unsigned char ZLG7289_SPI_Read()
{
 unsigned char dat=0x00;
 unsigned char t = 8;
 ZLG7289_OperateIO &=~ZLG7289_CLK;  //clk=0
 //ZLG7289_DAT = 1; //读取数据之前DIO 引脚要置1 以切换到输入状态
 do
 {
  ZLG7289_OperateIO  |=ZLG7289_CLK;    //clk=1
  Delay(4); 
  dat <<= 1;
  if ((ZLG7289_OperateIO_IN&ZLG7289_DAT))
   dat++;
  ZLG7289_OperateIO  &=~ZLG7289_CLK;  //clk=0
  Delay(4);
 }while ( --t != 0 );
 return dat;
}

/*
函数:ZLG7289_cmd()
功能:执行ZLG7289 纯指令
参数:
cmd:命令字
*/                                                //6
void ZLG7289_cmd(char cmd)
{
 ZLG7289_OperateIO_DIR |=ZLG7289_DAT;     //output
 ZLG7289_OperateIO &=~ZLG7289_CS;     //CS=0
 Delay(24);
 ZLG7289_SPI_Write(cmd);
 ZLG7289_OperateIO |=ZLG7289_CS;     //CS=1
 ZLG7289_OperateIO_DIR &=~ZLG7289_DAT;     //input
}
/*
函数:ZLG7289_cmd_dat()
功能:执行ZLG7289 带数据指令
参数:
cmd:命令字
dat:数据
*/
void ZLG7289_cmd_dat(char cmd, char dat)
{
 ZLG7289_OperateIO_DIR |=ZLG7289_DAT;     //output
 ZLG7289_OperateIO &=~ZLG7289_CS;     //CS=0
 Delay(24);
 ZLG7289_SPI_Write(cmd);
 Delay(14);
 ZLG7289_SPI_Write(dat);
 ZLG7289_OperateIO |=ZLG7289_CS;     //CS=1
 ZLG7289_OperateIO_DIR &=~ZLG7289_DAT;   //input
}
/*
函数:ZLG7289_Download()
功能:下载数据
参数:
mod=0:下载数据且按方式0 译码
mod=1:下载数据且按方式1 译码
mod=2:下载数据但不译码
x:数码管编号(横坐标),取值0~7
dp=0:小数点不亮                                  //7
dp=1:小数点亮
dat:要显示的数据
说明:
译码方式的具体含义请参考数据手册
*/
void ZLG7289_Download(unsigned char mod, char x,char dp, char dat)
{
 char ModDat[3] = {0x80,0xC8,0x90};
 char d1;
 char d2;
 if ( mod > 2 )
  mod = 2;
 d1  = ModDat[mod];
 x   = x  & 0x07;
 d1  = d1 | x;
 d2  = dat & 0x7F;
 if ( dp )
  d2 =d2 | 0x80;
 ZLG7289_cmd_dat(d1,d2);
}

/*
功能:执行ZLG7289 键盘命令
返回:
返回读到的按键值:0~63
如果返回0xFF 则表示没有键按下
*/

unsigned char ZLG7289_Key()
{
 unsigned char key;
 ZLG7289_OperateIO_DIR |=ZLG7289_DAT;     //output
 ZLG7289_OperateIO &=~ZLG7289_CS;     //CS=0
 Delay(24);
 ZLG7289_SPI_Write(0x15);
 ZLG7289_OperateIO_DIR &=~ZLG7289_DAT;     //input
 Delay(14);
 key = ZLG7289_SPI_Read();
 ZLG7289_OperateIO |=ZLG7289_CS;     //CS=0
 return key;
}

void ZLG7289_initial(void)
{
 ZLG7289_OperateIO_DIR  |=  ZLG7289_CS+ZLG7289_CLK+ZLG7289_KEY;
 ZLG7289_OperateIO      |=  ZLG7289_CS+ZLG7289_KEY;
 ZLG7289_OperateIO      &=~ ZLG7289_CLK;
 ZLG7289_OperateIO_DIR  &=~ ZLG7289_KEY;   //INPUT
       
 ZLG7289_OperateIE      |=  ZLG7289_KEY;   //enable interrupt
 ZLG7289_OperateIES     |=  ZLG7289_KEY;   //failing
}

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1电子电路原理第七版PDF电子教材免费下载
  2. 0.00 MB  |  1490次下载  |  免费
  3. 2单片机典型实例介绍
  4. 18.19 MB  |  92次下载  |  1 积分
  5. 3S7-200PLC编程实例详细资料
  6. 1.17 MB  |  27次下载  |  1 积分
  7. 4笔记本电脑主板的元件识别和讲解说明
  8. 4.28 MB  |  18次下载  |  4 积分
  9. 5开关电源原理及各功能电路详解
  10. 0.38 MB  |  10次下载  |  免费
  11. 6基于AT89C2051/4051单片机编程器的实验
  12. 0.11 MB  |  4次下载  |  免费
  13. 7蓝牙设备在嵌入式领域的广泛应用
  14. 0.63 MB  |  3次下载  |  免费
  15. 89天练会电子电路识图
  16. 5.91 MB  |  3次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234313次下载  |  免费
  3. 2PADS 9.0 2009最新版 -下载
  4. 0.00 MB  |  66304次下载  |  免费
  5. 3protel99下载protel99软件下载(中文版)
  6. 0.00 MB  |  51209次下载  |  免费
  7. 4LabView 8.0 专业版下载 (3CD完整版)
  8. 0.00 MB  |  51043次下载  |  免费
  9. 5555集成电路应用800例(新编版)
  10. 0.00 MB  |  33562次下载  |  免费
  11. 6接口电路图大全
  12. 未知  |  30320次下载  |  免费
  13. 7Multisim 10下载Multisim 10 中文版
  14. 0.00 MB  |  28588次下载  |  免费
  15. 8开关电源设计实例指南
  16. 未知  |  21539次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935053次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537791次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234313次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233045次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191183次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183277次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138039次下载  |  免费