找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2913|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

求程序,哪位大神幫幫忙 利用51單片機設(shè)計一個4*4矩陣鍵盤

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:294610 發(fā)表于 2018-3-24 20:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用51單片機設(shè)計一個4*4矩陣鍵盤,當(dāng)按下A時,顯示學(xué)號后四位,當(dāng)按下B時,顯示DAC輸出值(0-255),在B狀態(tài)中,矩陣鍵盤值C與D調(diào)整顯示的DAC值的十位,E與F調(diào)整DAC值的個位。
求助各位大神該怎么寫程序,有沒有類似的例子。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:82765 發(fā)表于 2018-3-24 21:09 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復(fù)

使用道具 舉報

板凳
ID:111634 發(fā)表于 2018-3-24 21:44 | 只看該作者
也就是普通的4*4矩陣鍵盤,不過是顯示內(nèi)容不同而已而已而已!愿顯示什么就去顯示好了!
回復(fù)

使用道具 舉報

地板
ID:296540 發(fā)表于 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( );
//延時
delay( );
}
void delay10ms (void) ;
//延時函數(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ù)參見例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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

5#
ID:294610 發(fā)表于 2018-3-24 23:06 | 只看該作者
cjjcjj1 發(fā)表于 2018-3-24 21:09
你好!這個程序要求比較奇怪。。?隙]有現(xiàn)成的;
還有 DA 用的什么芯片?是實物還是仿真?

用的是DAC0832,是進(jìn)行仿真的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表