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 ......
>>返回讨论的主题
|