找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2365|回復(fù): 0
收起左側(cè)

51單片機8279芯片構(gòu)成8行2列鍵盤接口電路+Proteus仿真

[復(fù)制鏈接]
ID:1025094 發(fā)表于 2022-5-10 19:50 | 顯示全部樓層 |閱讀模式
注意:在總線上加入標號AD[0..7]和RL[0..7],另外在導(dǎo)線上也要加上標號AD0~AD7和RL0~RL7
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
1.png

單片機源程序如下:
  1. #include<reg51.h>
  2. #include<ABSACC.H>

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define com XBYTE[0x7fff] //A15=0(cs=0),A14=1(A0=1),命令狀態(tài)口
  6. #define dat XBYTE[0x3fff] //A15=0(cs=0),A14=0(A0=0),數(shù)據(jù)口

  7. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //共陰極字型碼
  8. uchar temp;
  9. bit key;

  10. void delay(uint z){
  11. uint x,y;
  12. for(x=z;x>0;x--)
  13. for(y=110;y>0;y--);
  14. }

  15. int main(void){
  16. temp=0;
  17. EA=1;
  18. EX0=1;
  19. IT0=0;
  20. delay(10);
  21. com=0xd2;  //11010010,清除RAM
  22. delay(10);
  23. com=0x00;  //00000000,8位字符顯示——左邊輸入,編碼掃描鍵盤,雙鍵鎖定
  24. delay(10);
  25. com=0x34;  //00110100,時鐘編碼命令,20分頻,晶振12MHz,ALE輸入2MHZ,8279經(jīng)20分頻后得到100KHz工作頻率
  26. delay(10);
  27. com=0x90;  //從單元0開始寫要顯示的數(shù)據(jù),每次寫完后自動地址加1
  28. delay(10);
  29. com=0x70;  //從單元0開始讀要顯示的數(shù)據(jù),每次讀完后自動地址加1
  30. key=0;
  31. while(1){  //等中斷
  32. if(key){
  33. com=0x40;  //01000000,讀FIFO/傳感器RAM命令字
  34. delay(1);
  35. temp=dat&0x3f;  //去鍵盤數(shù)據(jù)低6位,即為鍵值
  36. dat=table[temp];  //送數(shù)碼管顯示
  37. key=0;  //按鍵標志復(fù)位
  38. }
  39. }
  40. }

  41. void time() interrupt 0{
  42. key=1;  //有鍵按下
  43. }
復(fù)制代碼

51hei.png

Keil5代碼與Proteus8.8仿真下載: 51單片機8279芯片構(gòu)成8行2列鍵盤接口電路.zip (96.95 KB, 下載次數(shù): 18)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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