久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我想問問這個(gè)proteus里 單片機(jī)和點(diǎn)陣為什么要這樣接線?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:666870 發(fā)表于 2019-12-18 00:27 | 只看該作者 |只看大圖 回帖獎勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. 程序#include<reg51.h>     //51系列單片機(jī)頭文件

  2. #defineuchar unsigned char     //宏定義
  3. #defineuint unsigned int       //宏定義

  4. /******************************************************
  5.                      基礎(chǔ)定義
  6. *******************************************************/
  7. ucharm=0,n=0;
  8. ucharo,p,d;
  9. uchartime=0;
  10. ucharcode table[]={0x01,0x04,0x08,0x02,0x40,0x10,0x80,0x20};
  11. /******************************************************
  12.                      數(shù)碼顯示數(shù)據(jù)定義
  13. *******************************************************/
  14. ucharcode taba[]={
  15. 0xff,0xef,0xef,0xef,0xab,0xc7,0xef,0xff};      //編碼定義↓

  16. ucharcode tab1[]={
  17. 0xff,0xef,0xcf,0xef,0xef,0xef,0xef,0xc7};      //編碼定義1

  18. ucharcode tab2[]={
  19. 0xff,0xc7,0xbb,0xfb,0xf7,0xcf,0xbf,0x83};      //編碼定義2

  20. ucharcode tab3[]={
  21. 0xff,0xc7,0xbb,0xfb,0xe7,0xfb,0xbb,0xc7};      //編碼定義3

  22. ucharcode tab4[]={
  23. 0xff,0xf7,0xe7,0xd7,0xb7,0xb7,0x83,0xf7};      //編碼定義4

  24. ucharcode tab5[]={
  25. 0xff,0x83,0xbf,0x87,0xfb,0xfb,0xbb,0xc7};      //編碼定義5

  26. ucharcode tab6[]={
  27. 0xff,0xe7,0xdf,0xbf,0x87,0xbb,0xbb,0xc7};      //編碼定義6

  28. /******************************************************
  29.                      延時(shí)
  30. *******************************************************/
  31. voiddelay(uchar n)     //延時(shí)子函數(shù)
  32. {
  33.     uchar i,j;
  34.     for(i=n;i>0;i--)
  35.     {
  36.         for(j=255;j>0;j--);
  37.     }
  38. }
  39. /********************************************************************
  40. * 名稱 : ucharChangeFor(uchar dat)
  41. * 功能 : 交換一個(gè)字節(jié)位的位置,用于數(shù)碼管顯示
  42. * 輸入 : 需要改變的數(shù)
  43. * 輸出 : 改變后的數(shù)
  44. ***********************************************************************/
  45. #defineLED_a       4   //數(shù)碼管段選的a段接在段選IO口的第0位
  46. #defineLED_b       3
  47. #defineLED_c       1
  48. #defineLED_d       5
  49. #defineLED_e       0
  50. #defineLED_f       6
  51. #defineLED_g       7
  52. #defineLED_dp      2

  53. ucharChangeFor(uchar dat)
  54. {
  55.     uchar temp=0;
  56.     if(dat&0x01)       //判斷數(shù)據(jù)的第一位是否為1
  57.         temp|=0x01<<LED_a;//如果為1,放到控制數(shù)碼管a段的位置
  58.     if(dat&0x02)
  59.         temp|=0x01<<LED_b;
  60.     if(dat&0x04)
  61.         temp|=0x01<<LED_c;
  62.     if(dat&0x08)
  63.         temp|=0x01<<LED_d;
  64.     if(dat&0x10)
  65.         temp|=0x01<<LED_e;
  66.     if(dat&0x20)
  67.         temp|=0x01<<LED_f;
  68.     if(dat&0x40)
  69.         temp|=0x01<<LED_g;
  70.     if(dat&0x80)
  71.         temp|=0x01<<LED_dp;
  72.     return temp;
  73. }

  74. /******************************************************
  75.                     T/C0中斷服務(wù)程序入口
  76. *******************************************************/
  77. timer0()interrupt 1 using 1        //定時(shí)器0工作方式1
  78. {
  79.     TH0 = (65536-50000)/256;       //賦初值
  80.     TL0 = (65536-50000)%256;       //賦初值
  81.    
  82.     if(o>p)//if語句一般處理兩個(gè)分支,處理多個(gè)分支用if-else-if結(jié)構(gòu)
  83.     {
  84.         d=1;
  85.     }
  86.     else if(o<p)
  87.     {
  88.         d=2;
  89.     }
  90.     else
  91.     {
  92.         d=0;
  93.     }
  94.     time++;

  95.     if(time==1)
  96.     {
  97.         n=~(1<<(p+1));   
  98.     }
  99.     else if(time==5)
  100.     {
  101.         if(d==0)
  102.         {
  103.            n=~(1<<(p+1));
  104.         }
  105.         else if(d==1)
  106.         {
  107.            p++;
  108.            n=0xfe;
  109.         }
  110.         else if(d==2)
  111.         {
  112.            p--;
  113.            n=0xfd;
  114.         }
  115.     }
  116.     else if(time==20)
  117.     {
  118.         time = 0;
  119.     }
  120. }

  121. /******************************************************
  122.                      定時(shí)器T/C0初始化
  123. *******************************************************/
  124. voidcom_initialize(void)      //定時(shí)器初始化
  125. {
  126.     TMOD = 0x01;//設(shè)定定時(shí)器0為工作方式1
  127.     TH0 = (65536-50000)/256;    //裝初值
  128.     TL0 = (65536-50000)%256;    //裝初值
  129.     EA = 1;         //開總中斷
  130.     ET0 = 1;        //開定時(shí)器0中斷
  131.     TR0 = 1;        //啟動定時(shí)器0
  132. }

  133. /******************************************************
  134.                          主函數(shù)
  135. *******************************************************/
  136. voidmain() //主函數(shù)
  137. {
  138.     uchar i=0,j=0,k=0;
  139.     uchar tmp=0;
  140.     uchar om=0;

  141.     d=0;
  142.     m=0;
  143.     o=1;
  144.     p=1;

  145.     n=0xff;

  146.     com_initialize();

  147.     while(1)       //主循環(huán)
  148.     {
  149.         for(i=0;i<8;i++)
  150.         {   
  151.            P1=0xff;
  152.            P0=table[ i];  //[ i]刷新

  153.            if(++k==50)  //延時(shí)
  154.            {
  155.                k=0;   
  156.            }

  157.            m=P1;   //記錄按鍵

  158.            if(m != 0xff && d==0&& m!=om)
  159.            {
  160.                om=m;   

  161.                switch(m)      //開關(guān)語句
  162.                {
  163.                    case 0xfb:
  164.                        tmp=1;break;
  165.                    case 0xf7:
  166.                        tmp=2;break;
  167.                    case 0xef:
  168.                        tmp=3;break;
  169.                    case0xdf:
  170.                        tmp=4;break;
  171.                    case 0xbf:
  172.                        tmp=5;break;
  173.                    case 0x7f:
  174.                        tmp=6;break;
  175.                    default:
  176.                        tmp=o;break;
  177.                }
  178.    
  179.                if(o!=tmp)
  180.                {
  181.                    p=o;
  182.                    o=tmp;
  183.                    time=0;
  184.                }

  185.                n=m;

  186.            }

  187.            if(n==0xfe)   //識別按鍵值
  188.            {
  189.                if(k==0)
  190.                    j=++j%8;

  191.                P2=ChangeFor(taba[7-(i+j)%8]);
  192.            }
  193.            else if(n==0xfd)
  194.            {
  195.                if(k==0)
  196.                {
  197.                    if(j>0)
  198.                        j--;
  199.                    else
  200.                        j=7;
  201.                }
  202.                P2=ChangeFor(taba[(i+j)%8]);
  203.            }
  204.            else if(n==0xfb)
  205.            {
  206.                P2=ChangeFor(tab1[ i]);
  207.            }
  208.             elseif(n==0xf7)
  209.            {
  210.                P2=ChangeFor(tab2[ i]);
  211.            }
  212.            else if(n==0xef)
  213.            {
  214.                P2=ChangeFor(tab3[ i]);
  215.            }
  216.            else if(n==0xdf)
  217.            {
  218.                P2=ChangeFor(tab4[ i]);
  219.            }
  220.            else if(n==0xbf)
  221.            {
  222.                P2=ChangeFor(tab5[ i]);
  223.            }
  224.            else if(n==0x7f)
  225.            {
  226.                P2=ChangeFor(tab6[ i]);
  227.            }

  228.            delay(5);
  229.         }
  230.     }
  231. }




復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:584814 發(fā)表于 2019-12-19 21:56 | 只看該作者
16點(diǎn)陣8橫8縱,分別各接一P口(0-7)。話說電燈2根線并成一根會省線,但燈不會亮。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产小u女发育末成年 | 成人自拍视频网站 | 亚洲精品18 | 国产网站在线免费观看 | 亚洲一二视频 | 久久91av | 伊人在线 | 国产欧美精品 | 国产精品国产成人国产三级 | 久久久久久天堂 | 国产激情三区 | 欧美一级片在线 | 国产精品日韩一区二区 | 欧美一区二区在线 | 天堂一区二区三区 | 91网站在线看 | 日韩精品一区二区三区中文字幕 | 国产一区二区三区四区三区四 | 久久久久久久久中文字幕 | 中文字幕成人在线 | 羞羞午夜| 亚洲在线免费观看 | 亚洲一区二区三区福利 | 免费黄色在线观看 | 91精品久久久久久久久久 | 一区二区三区免费在线观看 | 国产精品久久久久久婷婷天堂 | 国产午夜精品一区二区三区嫩草 | 国产成人一区二区三区久久久 | 精品免费国产视频 | 久久久久国产精品一区二区 | 在线观看国产www | 99热精品久久 | 日韩精品成人av | 美女黄18岁以下禁止观看 | 国产伦精品一区二区三区高清 | av网站免费 | 色在线看 | 国产一区亚洲 | 亚洲精品一区二区三区中文字幕 | 国产婷婷精品av在线 |