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

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

QQ登錄

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

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

請(qǐng)各位大神幫忙,138譯碼器如何同時(shí)8個(gè)數(shù)碼管從0到8顯示

[復(fù)制鏈接]
ID:218360 發(fā)表于 2018-1-20 23:08 | 顯示全部樓層 |閱讀模式
在學(xué)習(xí)51匯編程序,實(shí)驗(yàn)板用的138譯碼器,位選為P1.0---P1.1---.P1.2三個(gè)口,138的使能腳硬件置0,段選為P0口,如何讓8個(gè)數(shù)碼管同時(shí)顯示0再媳滅1再媳滅再顯示2如此循環(huán),那位大神幫我寫下這個(gè)程序給我看看,學(xué)習(xí)學(xué)習(xí),最好注釋下

1.jpg
2.jpg
3.jpg
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2018-1-21 10:26 | 顯示全部樓層

  1. // 138譯碼器如何實(shí)現(xiàn)同時(shí)8個(gè)數(shù)碼管從0到8顯示
  2. // 讓8個(gè)數(shù)碼管同時(shí)顯示0再媳滅1再媳滅再顯示2如此循環(huán)
  3. #include "reg52.h"                         //此文件中定義了單片機(jī)的一些特殊功能寄存器

  4. typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  5. typedef unsigned char u8;


  6. sbit LSA=P1^0;  //控制138譯碼器
  7. sbit LSB=P1^1; //位選為P1.0---P1.1---.P1.2三個(gè)口
  8. sbit LSC=P1^2;

  9. u8 code smgduan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  10.   0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//顯示0~F的值
  11. u8 d=0;
  12. /*******************************************************************************
  13. * 函 數(shù) 名         : delay
  14. * 函數(shù)功能         : 延時(shí)函數(shù),i=1時(shí),大約延時(shí)10us
  15. *******************************************************************************/
  16. void delay(u16 i)
  17. {
  18.   while(i--);       
  19. }

  20. void delayms(void)   //延時(shí) ms
  21. {      
  22.   unsigned char a,b,c;     
  23.   for(c=1;c>0;c--)         
  24.   for(b=142;b>0;b--)            
  25.   for(a=2;a>0;a--);
  26. }

  27. /*******************************************************************************
  28. * 函 數(shù) 名       : DigDisplay
  29. * 函數(shù)功能      : 數(shù)碼管動(dòng)態(tài)掃描函數(shù),循環(huán)掃描8個(gè)數(shù)碼管顯示
  30. *******************************************************************************/
  31. void DigDisplay()
  32. {
  33.   u8 i;
  34.   for(i=0;i<8;i++)
  35.   {
  36.     switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  37.     {
  38.       case(0):
  39.       LSA=0;LSB=0;LSC=0; break;//顯示第0位
  40.       case(1):
  41.       LSA=1;LSB=0;LSC=0; break;//顯示第1位
  42.       case(2):
  43.       LSA=0;LSB=1;LSC=0; break;//顯示第2位
  44.       case(3):
  45.       LSA=1;LSB=1;LSC=0; break;//顯示第3位
  46.       case(4):
  47.       LSA=0;LSB=0;LSC=1; break;//顯示第4位
  48.       case(5):
  49.       LSA=1;LSB=0;LSC=1; break;//顯示第5位
  50.       case(6):
  51.       LSA=0;LSB=1;LSC=1; break;//顯示第6位
  52.       case(7):
  53.       LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  54.     }
  55.     P0=smgduan[d];//發(fā)送段碼 段選為P0口
  56.     delay(100); //間隔一段時(shí)間掃描       
  57.     P0=0x00;//消隱
  58.   }
  59.   
  60. }

  61. /*******************************************************************************
  62. * 函 數(shù) 名          : main
  63. * 函數(shù)功能        : 主函數(shù)
  64. * 輸    入           : 無(wú)
  65. * 輸    出            : 無(wú)
  66. *******************************************************************************/
  67. void main()
  68. {       
  69.   u16 y=0;
  70.   u8 d1=0;
  71.   while(1)
  72.   {       
  73.     DigDisplay();  //數(shù)碼管顯示函數(shù)       
  74.     delayms();
  75.     y++;

  76.     if (y>=100)
  77.     {
  78.       d1++; //段碼顯示函數(shù)
  79.       y=0;
  80.       if(d1 >8) //顯示0~8。
  81.       d1=0;
  82.       
  83.     }
  84.     d = d1; //段碼顯示函數(shù)
  85.    
  86.     if (y>=50) // 段碼媳滅
  87.     {
  88.       d = 17; //段碼媳滅函數(shù)
  89.     }
  90.   }               
  91. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:218360 發(fā)表于 2018-1-21 12:02 來(lái)自觸屏版 | 顯示全部樓層
angmall 發(fā)表于 2018-1-21 10:26

你好。大神,我需要的匯編程序。C我大概知道
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2018-1-21 22:35 | 顯示全部樓層
  1. ; 138譯碼器如何實(shí)現(xiàn)同時(shí)8個(gè)數(shù)碼管從0到8顯示
  2. ; 讓8個(gè)數(shù)碼管同時(shí)顯示0再媳滅1再媳滅再顯示2如此循環(huán)

  3.                   ORG 00H
  4. JMP START
  5. ORG 0BH
  6. y        EQU        20H
  7. d        EQU        22H
  8. d1        EQU        23H
  9. i        EQU        24H

  10.   LSA BIT P1.0 ;控制138譯碼器
  11.   LSB BIT P1.1
  12.   LSC BIT P1.2

  13.         ORG        0100H
  14. ; FUNCTION main (BEGIN)
  15. START:
  16.           CLR     A
  17.           MOV     y,A
  18.           MOV     y+01H,A
  19.           MOV     d1,A
  20. ?C0001:
  21.           LCALL   DigDisplay
  22.           LCALL   delayms
  23.           INC     y+01H
  24.           MOV     A,y+01H
  25.           JNZ     ?C0033
  26.           INC     y
  27. ?C0033:
  28.           CLR     C
  29.           SUBB    A,#064H
  30.           MOV     A,y
  31.           SUBB    A,#00H
  32.           JC      ?C0003
  33.           INC     d1
  34.           CLR     A
  35.           MOV     y,A
  36.           MOV     y+01H,A
  37.           MOV     A,d1
  38.           SETB    C
  39.           SUBB    A,#08H
  40.           JC      ?C0003
  41.           CLR     A
  42.           MOV     d1,A
  43. ?C0003:
  44.           MOV     d,d1
  45.           CLR     C
  46.           MOV     A,y+01H
  47.           SUBB    A,#032H
  48.           MOV     A,y
  49.           SUBB    A,#00H
  50.           JC      ?C0001
  51.           MOV     d,#011H
  52.           SJMP    ?C0001
  53. ; FUNCTION main (END)

  54. ; FUNCTION DigDisplay (BEGIN)
  55. DigDisplay:                                                          
  56.            CLR     A
  57.           MOV     i,A
  58. ?C0007:
  59.           MOV     A,i
  60.            CJNE    A,#08H,?C0034
  61. ?C0034:
  62.           JNC     ?C0010
  63.           MOV     DPTR,#?C0035
  64.           MOV     R0,A
  65.           ADD     A,R0
  66.           ADD     A,R0
  67.           JMP     @A+DPTR
  68. ?C0035:
  69.           LJMP    ?C0011
  70.           LJMP    ?C0012
  71.           LJMP    ?C0013
  72.           LJMP    ?C0014
  73.           LJMP    ?C0015
  74.           LJMP    ?C0016
  75.           LJMP    ?C0017
  76.           LJMP    ?C0018
  77. ?C0011:
  78.            CLR     LSA
  79.            SJMP    ?C0037
  80. ?C0012:
  81.            SETB    LSA
  82. ?C0037:
  83.            CLR     LSB
  84.            CLR     LSC
  85.            SJMP    ?C0010
  86. ?C0013:
  87.            CLR     LSA
  88.            SJMP    ?C0038
  89. ?C0014:
  90.            SETB    LSA
  91. ?C0038:
  92.            SETB    LSB
  93.            CLR     LSC
  94.            SJMP    ?C0010
  95. ?C0015:
  96.            CLR     LSA
  97.            SJMP    ?C0039
  98. ?C0016:
  99.            SETB    LSA
  100. ?C0039:
  101.            CLR     LSB
  102.            SETB    LSC
  103.            SJMP    ?C0010
  104. ?C0017:
  105.            CLR     LSA
  106.            SJMP    ?C0040
  107. ?C0018:
  108.            SETB    LSA
  109. ?C0040:
  110.            SETB    LSB
  111.            SETB    LSC
  112. ?C0010:
  113.           MOV     A,d
  114.           MOV     DPTR,#smgduan
  115.           MOVC    A,@A+DPTR
  116.           MOV     P0,A
  117.           MOV     R7,#064H
  118.           MOV     R6,#00H
  119.           LCALL   _delay
  120.           CLR     A
  121.           MOV     P0,A
  122.           INC     i
  123.           MOV     A,i
  124.           CLR     C
  125.           SUBB    A,#08H
  126.           JC      ?C0007
  127. ?C0019:
  128.            RET     
  129. ; FUNCTION DigDisplay (END)
  130.                         USING   1
  131. ; FUNCTION _delay (BEGIN)
  132. _delay:                                                          
  133. ?C0020:
  134.            MOV     A,R7
  135.            DEC     R7
  136.            MOV     R4,AR6
  137.            JNZ     ?C0036
  138.            DEC     R6
  139. ?C0036:
  140.            ORL     A,R4
  141.            JNZ     ?C0020
  142. ?C0021:
  143. ?C0022:
  144.            RET     
  145. ; FUNCTION _delay (END)

  146. ; FUNCTION delayms (BEGIN)
  147. delayms:
  148.            MOV     R7,#01H
  149. ?C0023:
  150.            MOV     R6,#08EH
  151. ?C0026:
  152.            MOV     R5,#02H
  153. ?C0029:
  154.            DJNZ    R5,?C0029
  155. ?C0028:
  156.            DJNZ    R6,?C0026
  157. ?C0025:
  158.            DJNZ    R7,?C0023
  159. ?C0032:
  160.            RET     
  161. ; FUNCTION delayms (END)

  162. smgduan:          DB    3FH   ;0
  163.                         DB    06H   ;1
  164.                         DB    5BH   ;2
  165.                         DB    4FH   ;3
  166.                         DB    66H   ;4
  167.                         DB    6DH   ;5
  168.                         DB    7DH   ;6
  169.                         DB    07H   ;7
  170.                         DB    7FH   ;8
  171.                 DB 06FH,077H,07CH,039H,05EH,079H,071H,00H,00H
  172.                
  173.    END

復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:218360 發(fā)表于 2018-1-24 22:05 | 顯示全部樓層

謝謝大神。。。。。好好去理解消化,真的太感謝了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人a∨高清免费观看 老司机午夜性大片 | 91.色| 久久999| 成人国产在线观看 | 久草久草久草 | 久久久www成人免费无遮挡大片 | 欧美一区二区三区在线观看视频 | 男人天堂手机在线视频 | 国产999精品久久久久久绿帽 | 午夜视频在线免费观看 | 新91 | 拍拍无遮挡人做人爱视频免费观看 | 91精品国产91久久久久游泳池 | 九九热免费看 | 亚洲成人免费电影 | 在线播放中文字幕 | 日韩a在线 | 黄色网址免费在线观看 | 亚洲人在线播放 | 特黄色一级毛片 | 国产精品精品3d动漫 | 国内自拍偷拍视频 | 91视频88av| 国产美女精品视频 | 欧美午夜视频 | 国产精品一区二区三区在线 | 久久99精品久久久久久秒播九色 | 在线视频 亚洲 | 久久国产精品久久久久久 | 国产美女网站 | 美女天堂 | 欧美精品福利视频 | 久久亚洲国产精品日日av夜夜 | 国产精品久久久久久久久久久久冷 | 国产在线视频一区二区董小宛性色 | 亚洲精品无人区 | 狠狠的日 | 极品电影院 | 91成人午夜性a一级毛片 | 日韩成人中文字幕 | 爱爱视频在线观看 |