历史上的今天
返回首页

历史上的今天

今天是:2024年12月06日(星期五)

正在发生

2019年12月06日 | zlg7289键盘和数码管驱动程序+应用电路

2019-12-06 来源:51hei

zlg7289应用电路图:

 

zlg7289资料:

zlg7289矩阵键盘的应用:

源程序:

/*该程序实现的功能是在小键盘按键,在LED上显示所按的键的数值*/ 

#include  

#include "hardware.h" 

#include "zlg7289.h" 

#define SDIO_CTRLIO      0X4  //PF2 

#define SDIOOUT()  (PDATF&=(~SDIO_CTRLIO)); 

#define SDIOIN()   (PDATF|=SDIO_CTRLIO); 


unsigned char keymap[]={  7,4,1,0,10,0,0,0,8,5, 

2,17,11,0,0,0,9,6,3,16, 

12,13,0,0,14,0,15,0,0,0, 

0,0,0,0,0, 0,0,0,0,0, 

                              0,0,0,0,0, 0,0,0,0,0, 

0,0,0,0,0, 0,0,0,0,0, 

0,0,0,0 

};        //键盘映射表 



void sendsiodata(unsigned char data) 

I_ISPC=0x10;         //中断挂起清零寄存器 清除未响应中断请求([4] INT_SIO = 1 为清除) 

SIODAT=data;        //给SIO数据寄存器赋值 

SIOCON|=(0x1<<3);        //SIO控制寄存器澹([3] = 1 为 SIO开始) 

while(!(INTPND&0x10));        //中断挂起寄存器([4] INT_SIO = 1 为请求) 

I_ISPC=0x10; 


unsigned char readsiodata() 

SDIOIN();        //端口F控制寄存器的PF2设置成Input 

sendsiodata(0);        

SDIOOUT();        //端口F控制寄存器的PF2设置成Output 

return SIODAT;        //返回SIO数据寄存器的值 


char getkey() 

char key,mykey; 

INTMSK|=(0X1<<26); 


while(PDATG&0x10); 


ZLG7289_ENABLE(); 

sendsiodata(ZLG7289_CMD_RDKEY); 

mykey=readsiodata();        //mykey的值为该键在键盘影射表中的位子 

ZLG7289_DISABLE(); 

INTMSK&=(~0X1<<26); 

key=keymap[mykey];         //查表得出该键的值 

printf("mykey is %dnreturn key is %dn",mykey,key); 

return key; 


static void Delay(int t)         //延时函数 

        int i; 

        for(;t>0;t--) 

                for(i=0;i<400;i++); 


int led_showdata(unsigned int a) 

int i=0; 

INTMSK|=(0X1<<26); 

ZLG7289_ENABLE(); 

sendsiodata(ZLG7289_CMD_RST);         //发送键盘的绝对值到SIODAT 

Delay(20); 


a%=100000000;         //为了避免a的值超出8 位数,如果超出8 位则将超出部分舍去 

//利用ZLG7289 将a 显示到LED上 

for(i=0;i<8 && a !=0 ;i++) 

sendsiodata(ZLG7289_CMD_DATA1|i); 

sendsiodata(a%10); 

a/=10; 

Delay(10); 

for(;i<8;i++) 

sendsiodata(ZLG7289_CMD_DATA0|i); 

sendsiodata(0xf); 

Delay(10); 


ZLG7289_DISABLE(); 

INTMSK&=(~0X1<<26); 

return 0; 


int main() 

printf("inputEnterExit!n"); 

while( (i = getkey()) != 15)        //当小键盘按到回车键时退出,其他情况则将键盘值显示到LED上 

led_showdata(i); 

Delay(2000); 

return 0; 

}



推荐阅读

史海拾趣

Chipcera Technology Co Ltd公司的发展小趣事

随着技术实力的不断增强,Chipcera开始将目光投向更广阔的市场。公司通过参加国际电子展会、与知名厂商合作等方式,积极推广自家产品。同时,公司还加大了对品牌建设的投入,通过提升产品质量、优化售后服务等措施,树立了良好的品牌形象。这些努力使得Chipcera的产品逐渐打入国际市场,成为行业内的佼佼者。

遨格芯微(AGM)公司的发展小趣事

作为电子行业的领先企业之一,AGM始终坚持以创新为核心竞争力。公司不断投入研发资源,加强与国际先进企业的合作与交流,积极引进和吸收新技术、新工艺和新材料。同时,AGM还注重人才培养和团队建设,打造了一支高素质、专业化的研发团队。这些努力为AGM在未来的发展中保持领先地位提供了有力保障,也为公司实现可持续发展奠定了坚实基础。

以上五个故事从不同角度展示了遨格芯微(AGM)公司在电子行业中的发展历程和取得的成就。通过不断的技术创新和市场拓展,AGM逐渐在可编程逻辑技术领域崭露头角,成为电子行业的佼佼者。未来,随着科技的不断进步和市场需求的不断变化,AGM将继续保持创新精神和敏锐的市场洞察力,为电子行业的发展贡献更多力量。

佰宏(BHFUSE)公司的发展小趣事

佰宏公司始终坚持开放合作的理念,与多家知名企业建立了战略合作伙伴关系。例如,与立讯精密、奋达科技等实力企业的合作,不仅为佰宏带来了更多的业务机会,也进一步提升了公司的品牌影响力和市场地位。这些合作不仅带来了经济效益,更为佰宏的长远发展奠定了坚实的基础。

Acopian Power Supplies公司的发展小趣事

佰宏公司始终将品质放在首位,通过严格的生产流程和质量控制体系,确保每一件产品的稳定性和可靠性。同时,公司还注重环保和可持续发展,积极采用环保材料和节能技术,努力为社会和环境做出贡献。

这五个故事只是佰宏公司发展历程中的一部分,但它们却生动地展现了佰宏公司从创立到发展的艰辛与辉煌。在未来的道路上,佰宏将继续秉承“创新、品质、合作、共赢”的理念,为电子行业的发展贡献更多的力量。

Eink公司的发展小趣事
2001年6月,E-Ink再次宣布技术突破,推出了“Ink-in-Motion”技术,使得电子纸上可以显示活动影像。这一技术为电子纸的应用开辟了新的领域,如动态广告、电子书等。
Embedded Artists公司的发展小趣事

在业务迅速发展的同时,Embedded Artists公司也始终关注环境保护和可持续发展。他们致力于采用环保材料和节能技术来生产产品,并通过优化生产流程来降低能源消耗和废物排放。此外,公司还积极参与公益活动,支持环保组织和项目。这些举措不仅提高了公司的社会形象,也为公司的长期发展奠定了坚实基础。

问答坊 | AI 解惑

这个数模转换器的地址怎么是E000H?

各位大哥大姐:下图中与8031单片机相连的数模转换器DAC0832的地址怎么会是E000H? 请各位大哥大姐指教!谢谢!…

查看全部问答>

针对工业级嵌入式应用开发的开发板

FLYSUN-ARM9200开发板由北京飞旭科技有限公司设计开发,主处理器基于Atmel公司的AT91RM9200 ARM处理器。AT91RM9200内嵌ARM920T核,带有全性能的MMU,具有高性能、低功耗、低成本、小体积等优点,广泛地应用在各种嵌入式系统中,如通信、军事、航空 ...…

查看全部问答>

论坛是信誉

像我这样的51菜鸟,初处单片机领域,所以好多东西不懂,不懂得就要问,就像串口线为什么要委托论坛代购,为什么不去中发知春直接搞定,一来对行情不了解,再者不知道什么样的线适合,所以还是喜欢委托论坛组织货源。什么事情还得慢慢来!希望大家互 ...…

查看全部问答>

菜鸟求助:wince内核写入SD卡

我用vs2005定制了一个wince6.0的内核。想把它写入到omap3530的sd卡上,让这个系统启动。网上看了一些类似的问题,不得法。请朋友们帮帮忙,说说该怎么做。本人菜鸟,步骤解释的越详细越好。谢谢。…

查看全部问答>

8279实现4X4键盘6位显示

呵呵,今天看单片机科本,有一道题不会做,就是8279实现4X4键盘6位显示,呵呵,本人菜鸟,请高人给指点下,C语言和汇编程序…

查看全部问答>

multisim10 怎么C51写头文件 (转)

要点亮LED,但出错,认为P0没有定义,multisim10中C51的头文件怎么写? void main() { /* Insert your code here. */    P0=1; } 出错信息 Multisim  -  2008-09-23 20:49:45 -------------------------- ...…

查看全部问答>

关于LSD-TEST430F22X4学习套件

我最近用LSD-TEST430F22X4学习套件,该套件没有外部晶振,然后就接了一个普通的32K晶振,感觉晶振没起振,想请教一下关于该套件的外部晶振问题…

查看全部问答>

1138板驱动程序下载问题

前几天用1138板还是好的,昨晚下载了几个程序后就出问题了,弹出下面这个对话框: 我以为是芯片锁了,就用ZLG的软件解锁,之后连驱动都安装不了,请问是什么原因呢?是Ft223d坏了,还是1138片子出问题了呢? 请大家帮帮忙,谢谢了! [ 本帖 ...…

查看全部问答>

MSP-430具体功能

话说我们这个板子具体可以做什么哟…

查看全部问答>

视频分享

嵌入式视频教程系列http://www.youku.com/playlist_show/id_3541073_as…

查看全部问答>