1628驱动按键程序.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1628驱动按键程序

/*文件名: TM1628 *单片机型号: AT89S52 *开发环境: Keil uVision3 *晶震频率: 12M */ #includereg52.h #includeintrins.h #include tm1628.h #define uchar unsigned char #define uint unsigned int //定义控制端口 sbit DIO =P2^0; sbit CLK =P2^1; sbit STB =P2^2; //定义数据 unsigned char const CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xef,0x6f}; //共阴数码管0-9的编码 unsigned char KEY[5]={0}; //为存储按键值开辟的数组 //向TM1628发送8位数据,从低位开始------------------------ void send_8bit(uchar dat) { uchar i; for(i=0;i8;i++) { if(dat0x01) DIO=1; else DIO=0; CLK=0; CLK=1; dat=dat1; } } //向TM1628发送命令-------------------------------------- void command(uchar com) { STB=1; STB=0; send_8bit(com); } //读取按键值并存入KEY[]数组,从低字节开始,从低位开始---- void read_KEY() { uchar i,j; command(0x42); //读键盘命令 DIO=1; //将DIO置高 for(j=0;j5;j++)//连续读取5个字节 5组8位 20位 for(i=0;i8;i++) { KEY[j]=KEY[j]1; CLK=0; CLK=1; if(DIO) KEY[j]=KEY[j]|0X80; } STB=1; } //显示函数,1-7位数码管显示数字0-6---------------------------- void nodisplay(unsigned char *s) { uchar i; command(0x03); //设置显示模式,7位10段模式 command(0x40); //设置数据命令,采用地址自动加1模式 command(0xc0); //设置显示地址,从00H开始 for(i=0;i7;i++) //发送显示数据 { send_8bit(*s); //从00H起,偶数地址送显示数据 s++; send_8bit(0); //因为SEG9-14均未用到,所以奇数地址送全“0” } command(0x8F); //显示控制命令,打开显示并设置为最亮 //read_KEY(); //读按键值 STB=1; } //按键处理函数------------------------------------------------- /*void KEY_process() { //由用户编写 } */ //下边重新写定义 unsigned char key_process() { switch(KEY[0]) //k1ks1k2ks1 0 k2ks1k2ks2 0(k0-k7)高地位对调k7-k0 实际是 { case 0x01:return 1; break; case 0x02:return 2; break; case 0x08:return 3; break; case 0x10:return 4; break; default:return 0;break; } switch(KEY[1]) { case 0x01:return 5; break; case 0x02:return 6; break; case 0x08:return 7; break; case 0x10:return 8;

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档