8051???????黯??????
????????8051 ?????????????????????????????????????C51 ?????C51 ?????????????????????????C51 ??д????ó????????????黯??????????????????????????C51 ??????????????????????????????????????
?????????????????????????????????????????????????????????н???????????б????????????C51 ???????????????????????????????????????????????????????main???? ?????????????ɡ??????????????????????????????????????????????????м?????????????Щ???????????????????????????????????????о????????????????????????????????У??????????г?????????????????????????????????λ?????????????????????????????黯????????????????е?????????????в???????????????????????????????????????????????????湲????????????????????С??????????????????????????60???????·????????51 ??????????????黯????????ɡ?
???????60???????·?????
????1. ???????
??????ν?????????????????????????????????????м???1?????????????????0??????60 ????????????????????60?????1 ?????????м???1????????????????0??????
????????????·??????????????????????λ??????????°????????????????????????????????????????????????°??????????????????λLED ????????????????????????????????????
????2. ??·???
???????????????????????????·???1 ?????
?1 ?????????·
???????????SB1 ??????ó????????????SB2 ???????????????????SB1 ??????????????????60????
???????°??SB2????????????????1???????????0??
????????????????????????P0 ?????P0.0 ?????????P0.1 ?????????P0.7 ???????λLED ??????P2 ?????λLED ??????P1 ????2 ??????????????·??
?2 ?????????????·
????3. ???????
????????60 ????????????????????????????????
?????? ??????衣?????ж?????м??????????????????????????????????????????????
?????? ????????????????????????λ???????????????????????????λ?????λ??????????????????
?????? ????????????7 ?????????????е???????????????????????????????????????????????λLED ??????????????????????????????????????????????β??????????????????????????????????????Ρ???????????????????????????????????????????????????????
?????? ?????????1??????????????????10?????????
?????? ???????
???????????????????黯????????????????????????????ɡ?????????????????????????????飬???????????ò??????????????5 ??????????????????????10ms ????????1s ??????????????????????????
?????? ????????????
?????????????????????????????裬???????м???????????м??????????????????????????????????????????3 ????????????????????????????????????????????????????????????R3 ?С??????R3 ?е?????60H?????SB1 ??????????????R3 ?е?????00H?????SB2 ?????????
?3 ?????????????????
?????????3 ?????????51 ???????????????????????????
????;----------- ?????????--------------
????; ???????????????????R3 ?У???????????????
????;R3=60H, ???SB1 ???????R3=00H, ???SB2 ??????
????key_scan: jnb kb_init, k1check ; SB1 ???????
????jnb kb_begin, k2check ; SB2 ???????
????sjmp ksr ;
????k1check: acall del10 ; ???ú???????????
????jb kb_init, ksr ; ?????????
????jnb kb_init,$ ; ??????????
????mov r3, #60h; ??SB1???????60H????????R3
????sjmp ksr ; ??????????κβ???????
????k2check: acall del10 ; ???ú???????????
????jb kb_begin, ksr ; ?????????
????jnb kb_begin,$ ; ??????????
????mov r3, #00h; ??SB2???????00H????????R3
????ksr: ret ; ????
????;---------------------------------
?????? ????????
???????????????????????????λ????????????????????????????P2 ?????????????????λ????????????????????????????P1 ???????????????4 ??????????????????????????????????????????????R2 ?С?
?4 ?????????????
?????????4 ?????????51 ???????????????????????????
????;------------ ????????------------
????; ???????????????R2 ??
????display:mov a, r2 ; ???????
????mov b, #10; ??????????λ??
????div ab;
????acall seg7; ????????????????????
????mov p2, a ; ?λ????????P2 ??
????mov a, b; ???λ??
????acall seg7 ; ????????????????????
????mov p1, a ; ??λ????????P1 ??
????ret ; ????
????;---------------------------------
?????? ??????????
????????????????????????????????7 ?ι???LED ????????????????????????????5 ?????
?5 ???????????????
??????????????????????????????????????????????????????????????????????????????λ=0?????????????????????A ?С?
?????????5 ?????????51 ???????????????????????????
????;-------------- ?????--------------
????; ???????A ?е????????????????
????; ????????????????????A ??
????seg7: inc a ; ???????????????A ??1
????movc a, @a+pc ; ???
????ret ; ????
????db 0c0h,0f9h,0a4h,0b0h;0123
????db 99h,92h,82h,0f8h;4567
????db 80h,90h,88h,83h;89AB
????db 0c6h,0a1h,86h,8eh;cdEF
????;---------------------------------
?????? ????????
??????????????????????????????????????????????????????????????100 ??10mS ??1S ???????????????6 ????????????????????????????
?6 ?????????????
?????????6 ?????????51 ??????????????????????????;
????;----------- ???10ms ????----------
????; ??????????1 ?е?R6 ??R7 ?????
????del10: setb psw.3 ; ?л?????1 ??????
????mov r7, #0bh ;
????dl1: mov r6, #0ffh ;
????dl2: djnz r6, dl2 ;
????djnz r7, dl1;
????clr psw.3 ; ?л?????0 ??????
????ret ;
????;---------------------------------
????;------------- ???1s ????-----------
????; ??????????1 ?е?R1??R2 ??R3 ?????
????del1s: setb psw.3 ; ??ü??????1
????mov r1 , #46; ??????46 ??????R1
????del0: mov r2 , #100; ??????100 ??????R2
????del1: mov r3 , #100 ; ??????100 ??????R3
????djnz r3 , $ ; ?????R3 ?е??????1?????????????
????????
????djnz r2 , del1; ?????R2 ?е??????1???????????
????del1
????djnz r1 , del0; ?????R1 ?е??????1???????????
????del0
????clr psw.3 ; ??ü??????0
????ret ; ??????
????;---------------------------------
?????? ?????????
???????????????????????????????????壻???????????ü?????????????????????ó??????е???????????????????????????????7 ?????
?7 ??????????????
?????????7 ?????????51 ???????????????????????????????????????
????;**********************************************************
????; ???????counter.asm ?????60 ?????
????; ?????p2 ??p1 ????????LED ?????? ?????λ
?????????????
????; p0.0 ??p0.1 ????ó???????????????????p0.7
?????????LED??
????; ???????11.0592MHz.
????;**********************************************************
????;------------ ??????--------------
????kb_init bit p0.0 ; ?ó?????????
????kb_begin bit p0.1 ; ??????????
????warn bit p0.7 ; ???
????;---------------------------------
????org 0000h
????ajmp begin
????;============ ??????===============
????org 00b0h
????begin:
????mov sp, #50h ; ?????
????mov p0, #0ffh
????mov p1, #0ffh
????mov p2, #0ffh
????mov r2, #60
????mov r3, #0ffh
????main:
????lcall key_scan ; ??????
????mov a, r3 ; ??????
????cjne a, #60h, lp1 ; ??SB1 ???????
????mov r2, #60 ; ?????????R2
????setb p0.7 ; ??????
????acall display ; ??????????
????ajmp main ; ???
????lp1: mov a, r3 ; ??????
????cjne a, #00h, main ; ??SB2 ???????
????setb p0.7
????mov r2, #60
????lp2: acall display
????acall del1s ; ????1 ??????????
????dec r2
????cjne r2, #00h,lp2
????acall display
????clr p0.7
????mov r3, #0ffh
????ajmp main
????;=================================
????????Keil C ?б???
????1. ??????
???????Keil C????????????????????????????????counter????
????????????????? ??????Keil C51 ??Vision2?????????????????????????????????Project???????New Project??????䶮????????????н???????????counter?????????桱????????Atmel??????AT89S52??????
????2. ?????????
??????????????????counter.asm????????????????????Source Group 1???С?
???????Vision2 ?????????????????? ????????????????????????????????????counter.asm???????????????
???????м????????????Project Workspace????????????+???????????????????Source Group 1??????У???????????????????Add Files to group??Source Group 1??????
????3. ????????
???????Options for Target?? Target 1?????е??Output??????????????á?
???????????????Project???? ???Options for Target??Target 1????????????????????Target????????????????????????????11.0592MHz?????Output???????????Create HEX File???????????????????????????????????????????????????????????????
????4. ???????
??????????????????????????counter.hex???????
???????Vision2 ????????????±???????????????????б?????????8 ?????
?8
????????Preteus????
????ISIS ????????9 ?????????CPU:89C51 ???????????counter.HEX ???????????з??档????????????SB1?????????????????????????????????????????????????????????60???????9 ????????????????????????????SB2???????????????????????????????????????????????????????????www.dqjsw.com.cn
?9ISIS ?????
???????????????????
???????????????????????????????????????????????????塢?????????????????弰?????????????????沽????в?????
???????????????????1 ???????衢??????????????????????
???????????С???????????J101??J102??J103??????AT89S52 о??????????????????????????????????°???С??????????????????С??????????????10 ?????
?10
???????????????????????ú??й???????????д?????counter.hex????????????????????????????о????С???д???? ????о???????????????
?????????????????????????????????????????????J101??????????·??
??????????????????°???SB1 ?ó???????°???SB2 ???????????????????????????????????????Vision2 ???е????Proteus ?з??棩??
???????????????????????????????
?????塢??????
?????????????????ó???????????????????????????????????????????????????C51 ????????????鰴???????????????????????????????????????????????ó???

????admin ?????????2018-05-08