导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[kyomen]在做课程设计时做的小程序,用于键盘扫描并



No.94635
作者:kyomen
邮件:vzai1985@yahoo.com.cn
ID:55321
登陆:43次
文章数:12篇
最后登陆IP:61.145.73.34
最后登陆:2008/6/14 9:18:10
注册:2006/6/13 20:00:25
财富:160
发帖时间:2006/6/13 20:07:01
发贴者IP:202.115.143.81
标题:kyomen:在做课程设计时做的小程序,用于键盘扫描并显示,有记数和定时两个功能,各位大虾献丑了
摘要:No.94635在做课程设计时做的小程序,用于键盘扫描并显示,有记数和定时两个功能,各位大虾献丑了 PS:因为是小弟的第一张贴子比较仓促没有注释,不过简单得很,一看就知道
PS:支持原创!
org  0000h
ljmp main
org 000bh
ljmp it0p
org 0200h
main:      mov 30h , #00h
           mov 31h , #00h
     mov 32h , #00h
     mov 33h , #00h
           mov p1 , #0fh
     lcall delay1
     mov a , p1
     cjne a , #0fh , q
     ljmp funtion1
q:     lcall  keyscan
     lcall  tran
     cjne   a  , #0eh , funtion0
     ljmp   count
funtion0:  cjne   a , #0fh , funtion1
           ljmp   tnt
funtion1:  lcall display
           ljmp main
     
count:    mov 30h , #00h
          mov 31h , #00h
    mov 32h , #00h
    mov 33h , #00h
q3:    mov p1 , #0fh
    lcall delay1
    mov a , p1
    cjne a, #0fh , q1
    ljmp q2
q1:    lcall keyscan
    lcall tran
    cjne a , #0ah , funtion00
    ljmp count1
funtion00: cjne a , #0bh , funtion11
          ljmp count2
funtion11:  mov 33h ,32h 
      mov 32h, 31h
      mov 31h , 30h
      mov 30h , a
q2:         lcall display
            ljmp q3
count1:        mov a , 30h
      inc a 
      mov 30h , a
      cjne a  , #0ah ,  q3
count10:    mov 30h ,#00h
               mov  a , 31h
               inc a 
      mov 31h , a
      cjne a , #0ah ,   q3 
count100:      mov 31h , #00h
               mov a , 32h
               inc a 
      mov 32h ,a 
      cjne a , #0ah , q3
count1000:      mov 32h , #00h
                mov a , 33h
                inc a 
    mov 33h , a
    cjne  a  , #0ah ,q3
                 lcall sound1
     mov 33h ,#00h
     ljmp q3
count2:        dec 30h
               mov a , 30h
      cjne a  , #0ffh ,  q3
count20:    mov 30h ,#09h
               dec 31h
      mov  a , 31h
      cjne a , #0ffh , q3 
count200:      mov 31h , #09h
               dec 32h
      mov a , 32h 
      cjne a , #0ffh  , q4
count2000:      mov 32h , #09h
                dec 33h
    mov  a , 33h
    cjne  a  , #0ffh ,q4
                 lcall sound1
     mov 33h ,#09h
q4:     ljmp q3
ret
tnt:      mov tmod , #01h
                mov 20h , #0ah
    clr a
    mov 40h , a
    mov 41h , a
    mov 42h , a
    mov 43h , a
    setb et0
    setb ea
    mov th0 , #3ch
    mov tl0 , #0b0h
    setb tr0
    mov 30h , #00h
    mov 31h , #00h
    mov 32h , #00h
    mov 33h , #00h
here:           lcall display
    ljmp here
ret
it0p:              mov th0 , #3ch
       mov tl0 , #0b0h
       djnz 20h , return
       mov 20h , #0ah
       lcall sound
       inc 40h
       mov 30h , 40h
       mov a , 40h
       cjne A , #0ah , return
       mov 40h , #00h
       mov 30h , 40h
       inc 41h
       mov 31h , 41h
       mov a , 41h
       cjne a , #07h , return
       mov 41h , #00h
       mov 31h , 41h
       inc 42h 
       mov 32h , 42h
       mov a , 42h
       cjne a, #0ah , return
       mov 42h , #00h
       mov 32h , 42h
       inc 43h
       mov 33h , 43h
       mov a  , 43h
       cjne a , #07h , return
       mov 43h , #00h
       mov 33h , 43h
return:            nop
                   reti
      

ljmp main
keyscan:   lcall keyscan1
     lcall delay1
     lcall keyscan1
     jnb p1.4 , value10
     jnb p1.5 , value20
     jnb p1.6 , value30
     jnb p1.7 , value40
  value10:   mov r1 , #01h
                    ljmp row
  value20:           mov r1 , #02h
                    ljmp row
  value30:           mov r1 , #03h
                    ljmp row
  value40:           mov r1 ,#04h
     row:   lcall keyscan2
                 jnb p1.0 , value100
     jnb p1.1 , value200
     jnb p1.2 , value300
     jnb p1.3 , value400
 value100:   mov r2 , #10h
                    ljmp value 
 value200:   mov r2 , #20h
                    ljmp value
 value300:   mov r2 , #30h
                    ljmp value
 value400:   mov r2 , #40h
   value:   mov a , r1
                    add a , r2
        lcall delay1
     lcall keyscan3
        ret
keyscan1:           mov p1 ,  #0f0h
    loop:           lcall delay
                    mov a , p1
                    cjne a , #0f0h  ,loop1
     ljmp loop
   loop1:         nop
                    ret
keyscan2:           mov p1 ,  #0fh
   loop3:           lcall delay
                    mov a , p1
                    cjne a , #0f0h  ,loop4
                    ljmp loop3
   loop4:         nop
                    ret
keyscan3:           mov p1  , #0fh
 loop5:             lcall delay
     mov a , p1
     cjne a  , #0fh , loop5
        lcall sound
     ret
   delay:           mov r7 , #25             _/*延时5 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:47毫秒 最大:7276毫秒 查询6次