伊莉討論區

標題: 有人可以幫寫89S51控制LED閃爍的程式嗎? [打印本頁]

作者: i75564    時間: 2012-5-17 01:44 PM     標題: 有人可以幫寫89S51控制LED閃爍的程式嗎?

[attach]75632634[/attach]

作者: mikebowencheng    時間: 2012-5-18 12:51 AM

哈哈哈,
1 用一個0.5ms timer, isr timer++
2. 主程式
p0.5=~p0.5
if ((timer % 2) ==0)p0.8=~p0.8
if ((timer % 3) ==0)p0.7=~p0.7
...

自己去改吧
作者: i75564    時間: 2012-5-18 04:04 PM

mikebowencheng 發表於 2012-5-18 12:51 AM
哈哈哈,
1 用一個0.5ms timer, isr timer++
2. 主程式

請問可以給我完整的程式嗎?
因為我完全不會寫程式=.=
拜託!!
作者: alice871289    時間: 2012-5-18 11:18 PM

本帖最後由 alice871289 於 2012-5-18 11:19 PM 編輯

類似的程式仿間很多書店的程式設計都有不然上網找一下八,那麼懶要人家直接給.自己不會寫那還要這東西幹嘛.....交作業嗎-.-
作者: mikebowencheng    時間: 2012-5-19 08:55 PM

i75564 發表於 2012-5-18 04:04 PM
請問可以給我完整的程式嗎?
因為我完全不會寫程式=.=
拜託!!

重點不是程式吧,重點是你8051 的硬體看起都不會
我寫出去不一定有用A
作者: 1xnswitch    時間: 2012-5-22 02:23 PM

最近在玩8051,看到你的題目跟一般書上提到的亮燈方式不同,先給你assembly的碼.
要調時間自己接示波器了.寫得不好不要鞭我,這是我第一隻assembly程式.
  1.         ORG        0000H
  2.         AJMP        MAIN
  3.         ORG        000BH
  4.         AJMP        TIMER0_INT
  5. MAIN:
  6.         MOV        TMOD,#00000000B
  7.         MOV        TL0,#(8192-5000) MOD 32
  8.         MOV        TH0,#(8192-5000)/32
  9.         MOV        R0,#00
  10.         MOV        DPTR,#TABLE
  11.         MOV        R1,#00
  12.         MOV        P1,#11111101B
  13.         SETB        ET0
  14.         SETB        EA
  15.         SETB        TR0

  16. LOOP: AJMP LOOP       
  17. ;

  18. ST0:
  19.         CJNE        R0,#1,ST1
  20.         ACALL        LED2
  21. ST1:
  22.         CJNE        R0,#2,ST2
  23.         ACALL        LED2
  24. ST2:
  25.         CJNE        R0,#4,ST3
  26.         ACALL        LED2
  27. ST3:       
  28.         CJNE        R0,#10,ST4
  29.         ACALL        LED1
  30. ST4:
  31.         CJNE        R0,#12,ST5
  32.         ACALL        LED1
  33. ST5:
  34.         CJNE        R0,#16,ST6
  35.         ACALL        LED1
  36. ST6:
  37.         CJNE        R0,#18,ST7
  38.         ACALL        LED1
  39. ST7:       
  40.         CJNE        R0,#24,ST8
  41.         ACALL        LED1
  42. ST8:       
  43.         CJNE        R0,#30,ST9
  44.         ACALL        LED1
  45. ST9:       
  46.         CJNE        R0,#48,ST10
  47.         ACALL        LED1
  48. ST10:
  49.         CJNE        R0,#64,ST11
  50.         ACALL        LED2
  51. ST11:       
  52.         CJNE        R0,#82,ST12
  53.         ACALL        LED2
  54. ST12:       
  55.         CJNE        R0,#100,ST13
  56.         ACALL        LED2
  57. ST13:       
  58.         CJNE        R0,#106,ST14
  59.         ACALL        LED2
  60. ST14:       
  61.         CJNE        R0,#124,ST15
  62.         ACALL        LED2
  63.         MOV        R0,#0
  64.         MOV        R1,#0
  65. ST15:
  66.         RETI
  67. //       AJMP        LOOP

  68. TIMER0_INT:
  69.         MOV        TL0,#(8192-5000) MOD 32
  70.         MOV        TH0,#(8192-5000)/32
  71.         INC        R0
  72.         ACALL         ST0
  73.         RETI
  74. ;
  75. LED2:
  76.         MOV        A,R1
  77.         MOVC        A,@A+DPTR
  78.         MOV        P2,A
  79.         INC        R1
  80.         RET
  81. ;
  82. LED1:
  83.         MOV        A,R1
  84.         MOVC        A,@A+DPTR
  85.         MOV        P1,A
  86.         INC        R1
  87.         RET
  88. ;


  89. TABLE:        DB        11101111B        ;P2.4 0.5MS
  90.         DB        01111111B        ;P2.7 1MS
  91.         DB         10111111B         ;P2.6 2MS
  92.         DB        11111100B        ;P1.0 & P1.1 5MS
  93.         DB        11111001B        ;P1.2 & P1.1 6MS
  94.         DB        11110101B        ;P1.3 & P1.1 8MS
  95.         DB        11101101B        ;P1.4 & P1.1 9MS
  96.         DB        10111101B        ;P1.6 & P1.1 12MS
  97.         DB        01111101B        ;P1.7 & P1.1 15MS
  98.         DB        11011101B        ;P1.5 & P1.1 24MS
  99.         DB        11111110B        ;P2.0 32MS
  100.         DB        11110111B        ;P2.3 41MS
  101.         DB        11111101B        ;P2.1 50MS
  102.         DB        11011111B        ;P2.5 53MS
  103. OVER:        DB        11111011B        ;P2.2 62MS
  104. ;
  105.         END
複製代碼

作者: 盛夏芒果冰    時間: 2012-5-29 12:58 AM

我是沒有很深入的去研究8051
但買一本書來參考應該有很大的幫助
好像8051是用那個什麼M的程式所撰寫然後在用燒錄器燒進去的
因為8051的指令比較特別




歡迎光臨 伊莉討論區 (http://a14.eyny.com/) Powered by Discuz!