⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gydirt.asm

📁 本资源包含了单片机键盘、a/d、频率测试等源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                nop
                nop
                 acall delay10ms
                acall iicstart

                 mov a,#0a1h
                acall iicwbyte
                acall iicrbyte
                acall iicstop
                nop
                nop
                nop
                nop
               acall delay10ms
               mov tim5,a
               acall dispreal
                ret
qn1:          mov tim2,#0
              mov tim3,#0
              mov tim4,#0
              mov tim5,#0
              ret
;----------------------------------
;------------------------
clreprom :     clr write
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#01h

                acall iicwbyte
                mov  a,#00
                acall iicwbyte
                acall iicstop

                nop
                nop
                nop
                nop

               ; acall clryh
               ; acall dispreal
                acall delay10ms
                acall delay10ms

                ;;;;;2time

                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#02h

                acall iicwbyte
                mov  a,#00h
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop

                acall delay10ms
                acall delay10ms
                acall delay10ms
               ; acall clryh
               ; acall dispreal
                 ;;;;3time

                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#03h

                acall iicwbyte
                mov  a,#00h
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop

                acall delay10ms
                acall delay10ms
                acall delay10ms
               ;   acall clryh
               ; acall clryh
               ; acall dispreal
                 ;4time

                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#04h

                acall iicwbyte
                mov  a,#00h
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop

                acall delay10ms
                acall delay10ms
                acall delay10ms
               ;  acall clryh
               ; acall clryh
               ; acall dispreal
                 ;5time


                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#05h

                acall iicwbyte
                mov  a,#00h
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop
                 acall delay10ms
                 acall delay10ms
                 acall delay10ms
               ;  acall clryh
               ; acall clryh
               ; acall dispreal

         ret

;-----------write data to eeprom---

weeprom :       clr tr0
                clr write
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#01h

                acall iicwbyte
                mov  a,tim1
                acall iicwbyte
                acall iicstop

                nop
                nop
                nop
                nop
                setb tr0
               ; acall clryh
               ; acall dispreal
                acall delay10ms
                acall delay10ms
                acall dispreal
                ;;;;;2time
                jnb wr2,eepw3
                clr tr0
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#02h

                acall iicwbyte
                mov  a,tim2
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop
                setb tr0
                acall delay10ms
                acall delay10ms
                acall dispreal

               ; acall clryh
               ; acall dispreal
                 ;;;;3time
eepw3:          jnb  wr3,eepw4
                clr tr0
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#03h

                acall iicwbyte
                mov  a,tim3
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop
                setb tr0
                acall delay10ms
                acall delay10ms
                acall dispreal
               ;   acall clryh
               ; acall clryh
               ; acall dispreal
                 ;4time
eepw4:          jnb  wr4,eepw5
                clr tr0
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#04h

                acall iicwbyte
                mov  a,tim4
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop
                setb tr0
                acall delay10ms
                acall delay10ms
                acall dispreal
               ;  acall clryh
               ; acall clryh
               ; acall dispreal
                 ;5time
eepw5:         jnb  wr5,eepwed
                clr tr0
                acall iicstart
                mov a,#0a0h
                acall iicwbyte
                mov a,#05h

                acall iicwbyte
                mov  a,tim5
                acall iicwbyte
                acall iicstop
                nop
                nop
                nop
                nop
                 acall delay10ms
                 acall delay10ms
                 acall dispreal
               ;  acall clryh
               ; acall clryh
               ; acall dispreal
                setb tr0
eepwed:         ret
;--------------------------------

iicstart:      clr  SCL
               NOP
               nop
                setb SDA
               NOP
               nop
                setb SCL

                nop
                nop
                clr SDA
                nop
                nop

                clr SCL
                nop
                nop

                ;nop
                ;setb SDA
                ret

;/----------停止IIC总线--------/
iicstop:    clr SCL
            NOP
            nop
            clr SDA
            NOP
            nop

            setb SCL


            nop
            nop
            setb SDA
            nop
            nop

            clr SCL
            ret


;/--------向IIC总线写8bit数据--------/
iicwbyte:       nop
               mov r7,#8
               clr c
wnextbit:      clr SCL
               NOP
               NOP

               rlc a
               mov SDA,c
               nop
               nop

               setb SCL
               nop
               nop
               djnz r7,wnextbit
               nop
               nop
moreack:       clr SCL
               nop
               nop
               nop
               setb Scl
               nop
               nop

            ;   acall clryh
            ;   acall clryh
               nop
               nop
 ggk:       ;       acall dispreal
               jb sda,ggk
               nop
               nop

               clr SCL
               nop
               nop
               ret


;/------从IIC总线上读8bit数据子程序----/
iicrbyte:     ;mov a,#00h
              nop
              mov r7,#8

rnextbit:     clr scl
              nop
              nop
              nop
              setb SCL
              nop
              nop
              nop

              mov c,SDA
              rlc a
              nop
              nop

              djnz r7,rnextbit
              nop
              clr SCL
              nop
              nop
              setb SDA
              nop
              nop
              setb SCL
              nop
              nop
              nop

              ret

;---------counter subgram---
t0int:   push psw
         push acc
         clr tr0
         mov th0,#3ch
         mov tl0,#0bfh   ;50ms
         setb tr0
         inc   fifty1
         mov a,fifty1
         cjne  a,#100,t0end
         mov fifty1,#00h
         inc fifty2
         mov a,fifty2
         cjne a,#72,t0end
         mov fifty2,#00h
         setb write
         inc tim1
         mov a,tim1
         cjne a,#10,t0end
         mov tim1,#00h
         setb wr2
         inc tim2
         mov a,tim2
         cjne a,#10,t0end
         mov tim2,#00h
         setb wr3
         inc tim3
         mov a,tim3
         cjne a,#10,t0end
         mov tim3,#00h
         setb wr4
         inc tim4
         mov a,tim4
         cjne a,#10,t0end
         mov tim4,#00h
         setb wr5
         inc tim5
         mov a,tim5
         cjne a,#10,t0end
         mov tim5,#00h
t0end:   pop acc
         pop psw
         reti
;------------------------
delay2s: mov r3,#50
d3:      mov r2,#100
d2:      mov r4,#70
d1:      nop
         djnz r4,d1
         djnz r2,d2
         djnz r3,d3
         ret
clryh:    nop
          NOP
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          NOP
          nop
          nop
          nop
          nop
          nop
          nop
          nop
          ret
delay10ms: mov r3,#10
dd2:      mov r4,#20
dd1:      nop
         djnz r4,dd1
         djnz r3,dd2
         ret
tab:     db 03h,9fh,25h,0dh,99h,49h,41h,1fh,01h,09h


        end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -