標(biāo)題:
求程序,哪位大神幫幫忙 利用51單片機(jī)設(shè)計(jì)一個(gè)4*4矩陣鍵盤
[打印本頁]
作者:
GTY123
時(shí)間:
2018-3-24 20:39
標(biāo)題:
求程序,哪位大神幫幫忙 利用51單片機(jī)設(shè)計(jì)一個(gè)4*4矩陣鍵盤
利用51單片機(jī)設(shè)計(jì)一個(gè)4*4矩陣鍵盤,當(dāng)按下A時(shí),顯示學(xué)號后四位,當(dāng)按下B時(shí),顯示DAC輸出值(0-255),在B狀態(tài)中,矩陣鍵盤值C與D調(diào)整顯示的DAC值的十位,E與F調(diào)整DAC值的個(gè)位。
求助各位大神該怎么寫程序,有沒有類似的例子。
作者:
cjjcjj1
時(shí)間:
2018-3-24 21:09
提示:
作者被禁止或刪除 內(nèi)容自動屏蔽
作者:
zl2168
時(shí)間:
2018-3-24 21:44
也就是普通的4*4矩陣鍵盤,不過是顯示內(nèi)容不同而已而已而已!愿顯示什么就去顯示好了!
作者:
Hello_beibei
時(shí)間:
2018-3-24 22:21
#include<reg51.h>
#define uchar uns igned char
#define uint unsigned int
void main(void)
{
uchar key;
while(1) //調(diào)用鍵盤掃描函數(shù),返回的鍵值送到變量key
{
key= keyscan( );
//延時(shí)
delay( );
}
void delay10ms (void) ;
//延時(shí)函數(shù)
{
uchar i;
for(i=0;i<200;i++){ }
}
//鍵盤掃描函數(shù)
uchar key scan (void)
{
//行掃描值
uchar code h;
//列掃描值
uchar code 1;
//P1.0~P1.3行線輸出都為0,準(zhǔn)備讀列狀態(tài)
P1=0xf0;
if((P1&f0) !=0xf0)
{
//如果P1.4~P1.7 不全為1,可能有鍵按下
//延時(shí)去抖動,延時(shí)函數(shù)參見例5-11
delay10ms (void) ;
//重讀P1.4~P1.7,若還是不全為1,定有鍵按下
if( (P1&f0) !=0xf0)
// P1.0 行線置為0,開始行掃描
code h=0xfe;
while ((code_h&0x10) !=0xf0) ;//判斷是否掃描到最后一行,若不是,繼續(xù)掃描
{
//P1口輸出行掃描值
P1= code h;
if( (P1&f0) !=0xf0) ;
{
//如果P1.4~P1.7 不全為1,該行有鍵按下
code_l=(P1&0xf010x0f) ;//保留P1口高4 位,低4 位變?yōu)?,作為列值
return( (~code_h )+ (~code_l) ); //鍵值=行掃描值+列掃描值,鍵值返主程序
/ /若該行無鍵按下,往下執(zhí)行
}
else
code h= (code_h<<1) 10x01;
/行掃描值左移,準(zhǔn)備掃描下一行
}}}
//無鍵按下,
return (0);}
返回0
作者:
GTY123
時(shí)間:
2018-3-24 23:06
cjjcjj1 發(fā)表于 2018-3-24 21:09
你好!這個(gè)程序要求比較奇怪。。?隙]有現(xiàn)成的;
還有 DA 用的什么芯片?是實(shí)物還是仿真?
用的是DAC0832,是進(jìn)行仿真的
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1