找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

虛擬HD7279的位移程序 利用單片機(jī)、4*4矩陣鍵盤(pán)和8位數(shù)碼管

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
利用單片機(jī)、4*4矩陣鍵盤(pán)和8位數(shù)碼管,虛擬HD7279部分輸入功能
按下數(shù)字鍵,將按下鍵對(duì)應(yīng)位置值(0-9)顯示在8位數(shù)碼管最右邊,原先內(nèi)容依次左移一位

仿真圖


源程序:
  1. #include<reg51.h>
  2. #define KEYPORT P1
  3. #define SEGPORT P0
  4. #define uchar unsigned char
  5. sbit TPORT=P3^0;
  6. sbit SPORT=P3^1;
  7. sbit FPORT=P3^2;
  8. uchar value;
  9. uchar flag=0;
  10. uchar one,two,three,four,five,six,seven,eight;
  11. void JKEY();
  12. void RKEY();
  13. void DISPLAY();
  14. void delay();
  15. void delay2ms();
  16. unsigned char code SEG[17]={
  17. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  18. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};                       
  19. void main()
  20. {
  21.         one=two=three=four=five=six=seven=eight=16;
  22.         while(1)
  23.         {
  24.                 RKEY();
  25.                 DISPLAY();
  26.         }
  27. }
  28. void JKEY(void)
  29. {
  30.         KEYPORT=0x0f;
  31.         if(KEYPORT!=0x0f)
  32.         {
  33.                 delay();
  34.                 if(KEYPORT!=0x0f)
  35.                 {
  36.                         KEYPORT=0x0f;
  37.                         switch(KEYPORT)
  38.                         {
  39.                                 case(0x07): value=0;break;
  40.                                 case(0x0b): value=1;break;
  41.                                 case(0x0d): value=2;break;
  42.                                 case(0x0e): value=3;break;
  43.                         }
  44.                         KEYPORT=0xf0;
  45.                         switch(KEYPORT)
  46.                         {
  47.                                 case(0x70): value=value;break;
  48.                                 case(0xb0): value=value+4;break;
  49.                                 case(0xd0): value=value+8;break;
  50.                                 case(0xe0): value=value+12;break;
  51.                         }
  52.                        
  53.                         while(KEYPORT!=0xf0)
  54.                         {
  55.                                 DISPLAY();
  56.                         }
  57.                                 flag=1;
  58.                 }
  59.         }
  60.        
  61. }

  62. void RKEY()
  63. {
  64.         JKEY();
  65.         if(flag)                //當(dāng)有按鍵按下 左移
  66.         {
  67.                 flag=0;
  68.                 one=two;
  69.                 two=three;
  70.                 three=four;
  71.                 four=five;
  72.                 five=six;
  73.                 six=seven;
  74.                 seven=eight;
  75.                 eight=value;
  76.         }
  77. }

  78. void DISPLAY()
  79. {
  80.         P2=0X00;
  81.         SEGPORT=SEG[one];
  82.         delay2ms();
  83.         P2=0X01;
  84.         SEGPORT=SEG[two];
  85.         delay2ms();
  86.         P2=0X02;
  87.         SEGPORT=SEG[three];
  88.         delay2ms();
  89.         P2=0X03;
  90.         SEGPORT=SEG[four];
  91.         delay2ms();
  92.         P2=0X04;
  93.         SEGPORT=SEG[five];
  94.         delay2ms();
  95.         P2=0X05;
  96.         SEGPORT=SEG[six];
  97.         delay2ms();
  98.         P2=0X06;
  99.         SEGPORT=SEG[seven];
  100.         delay2ms();
  101.         P2=0X07;
  102.         SEGPORT=SEG[eight];
  103.         delay2ms();
  104. }


  105. void delay(void)
  106. {
  107.     unsigned char a,b;
  108.     for(b=249;b>0;b--)
  109.         for(a=17;a>0;a--);
  110. }

  111. void delay2ms(void)  
  112. {
  113.     unsigned char a,b;
  114.     for(b=133;b>0;b--)
  115.         for(a=6;a>0;a--);
  116. }
復(fù)制代碼



仿真文件和與源碼下載:
虛擬HD7279.zip (119.95 KB, 下載次數(shù): 52)

評(píng)分

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

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

地板
ID:1134495 發(fā)表于 2024-11-3 00:40 | 只看該作者
可以!非常感謝大佬!
回復(fù)

使用道具 舉報(bào)

板凳
ID:289013 發(fā)表于 2021-4-27 23:02 | 只看該作者
好  但是我的沒(méi)有成功????
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:258520 發(fā)表于 2019-12-24 14:52 | 只看該作者
可以運(yùn)行!!!。。。。。。。。。。。!11
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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