注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 |
首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 |
选择分类:当前分类——小说笑话 相关联或者相类似的文章: 你的电脑声卡支持用电容话筒吗?(432) 天才造句(431) 利用TL431作大功率可调稳压电源(430) MSComm控件使用详解 (427) 105W卤素灯用可调光电子变压器(426) 一款简单的热水器控制电路设计(426) 检查晶闸管的触发能力四种方法(425) PM50系列智能语音芯片(423) 硬件设计鸡毛蒜皮之一: 低功耗设计(423) 步进电机工作原理(423) 26. 点阵式LED简单图形显示技术(423) 人最长寿命能活多少年? (422) ss570122的雕刻机制作过程(7)(422) 译码集成块PT2272的应用(421) 我不是处女(420) TDA2004的详细资料:10W+10W立体声功率放大器(415) ++ 相片暴光定时器&(415) 魔之妩媚(415) 双路计数器加比较程序(413) 电子基础知识--半导体(412) 首页 前页 后页 尾页 本站推荐: | stc2052-clock.asm org 00h jmp config ORG 03H JMP TE0 ORG 0BH JMP TT0 ORG 13H JMP TE1 ORG 1BH JMP TT1 config: MOV TMOD,#00010010B;T0工作在8位自动重装计数器模式 mov th0,#8 setb tr0 setb et0 setb et1 setb ea mov 3fh,#1;定时总路数,默认为第1路 mov 92h,#11111111b;大电流输出 mov 0b2h,#11111111b;大电流输出 mov 39h,#00;工作模式0=走时模式1=校时模式2=定时模式3=误差模式 mov r2,#0;设定默认的闪动模式 mov r1,#15;设定长按键的时间 mov r3,#30;设定不按键的最长时间 mov a,3eh cjne a,#51,setup jmp main setup: mov 36h,#12;时默认值 mov 37h,#00;分默认值 mov 38h,#00;秒默认值 mov r0,#80h;定时默认值24:30 dsmr:inc r0 mov @r0,#30 inc r0 mov @r0,#24 cjne r0,#0f0h,dsmr main:mov 3eh,#51 call clock call cup call hled call disp ;LED数码显示 call key call run jmp main tt0: inc r7 cjne r7,#168,t0end mov r7,#0 setb 55h t0end:reti clock: jnb 55h,cend;检查中断计数标志 clr 55h cpl 56h jnb 56h, cend;一次延时 cpl 57h jnb 57h, cend;二次延时 cpl p3.7 jnb p3.7, cend;三次延时 inc 38h ;时钟程序秒加1 mov r6,38h cjne r6,#60,cend mov 38h,#0 ck1:inc 37h mov r6,37h cjne r6,#60,cend mov 37h,#0 ck2:inc 36h mov r6,36h cjne r6,#24,cend mov 36h,#0 cend:ret tt1: CLR TR1 MOV TL1,3eh MOV TH1,3dh SETB TR1 reti te0: reti te1: reti cup: mov 3ah,36h mov 3bh,37h mov 3ch,38h mov a,39h cjne a,#20,ms1up mov 3ah,3fh mov a,#80h add a,3fh add a,3fh mov r0,a mov 3bh,@r0 inc r0 mov 3ch,@r0 ms1up:cjne a,#30,msup mov 3ch,55h msup:mov a,3ch mov b,#10 div ab ;将秒计算后送入显示缓存 mov 30h,b mov 31h,a mov a,3bh mov b,#10 div ab ;将分计算后送入显示缓存 mov 32h,b mov 33h,a mov a,3ah mov b,#10 div ab ;将小时计算后送入显示缓存 mov 34h,b mov 35h,a ret hled: mov a,39h cjne a,#10,ms1 jb 56h,ms1 cjne r2,#0,h1 mov 35h,#11 mov 34h,#11 h1:cjne r2,#1,h2 mov 33h,#11 mov 32h,#11 h2:cjne r2,#2,ms1 mov 31h,#11 mov 30h,#11 ms1:cjne a,#20,ms2 jnb 57h,ms2 cjne r2,#0,h21 mov 35h,#11 mov 34h,#11 h21:cjne r2,#1,h22 mov 33h,#11 mov 32h,#11 h22:cjne r2,#2,ms2 mov 31h,#11 mov 30h,#11 ms2:cjne a,#30,hend cjne r2,#0,h31 mov 35h,#12 mov 34h,#12 mov 33h,#12 mov 32h,#12 h31:cjne r2,#1,hend mov 35h,#13 mov 34h,#13 mov 33h,#13 mov 32h,#13 hend:ret disp: mov p1,#10000000b setb p3.0 setb p3.1 setb p3.2 setb p3.3 setb p3.4 setb p3.5 cjne r5,#6,ds0;r5等于显示的当前LED,r5的值不能随意改变 mov r5,#0 ds0:inc r5 cjne r5,#1,ds1 clr p3.5 mov a,30h call ledtab ds1:cjne r5,#2,ds2 clr p3.4 mov a,31h jmp ledtab ds2:cjne r5,#3,ds3 clr p3.1 mov a,32h jmp ledtab ds3:cjne r5,#4,ds4 clr p3.3 mov a,33h jmp ledtab ds4:cjne r5,#5,ds5 clr p3.2 mov a,34h jmp ledtab ds5:cjne r5,#6,edisp clr p3.0 mov a,35h jmp ledtab edisp: ret ledtab: jb p1.7, kk ;检查按键是否按下 mov 40h,r5 ;按键按下取键值 kk:mov dptr,#table movc a,@a+dptr mov p1,a jmp edisp key: cjne r5,#1,scan1 mov 40h,#0 jmp kend scan1: cjne r5,#6,kend mov r6,40h cjne r6,#0,kset;不等于0说明有按键按下,分别设定有键无键的最长时间 mov r1,#20;设定长按键时间一般为2-3秒 clr 51h;按键放开中 jmp ksetend kset:mov r3,#200;设定不按键的最长等待时间,一般为10-30秒 setb 51h;按键中 mov a,39h add a,r6 mov r4,a; ksetend: djnz 56h,kend;检查长按键延时用 ;mov 56h,#250;根据时钟频率来确定延时程度 cjne r6,#0,long1;不等于0说明有按键按下,分别求出有键按和无键按的时间 djnz r3,kend mov 39h,#0;10秒钟长时间没有键按下时模式回到正常走时 ;clr p3.7 jmp kend long1: djnz r1,kend mov a,39h add a,#10 mov 39h,a;有按键长按2秒以上模式加10 mov r2,#0 ;setb p3.7 kend: kendd: ret skey: jmp kend run:jb 51h,gotoend;按键是否放开,不放开不执行按键程序 jmp run0 gotoend:jmp runend run0:cjne r4,#16,run1;校时模式 inc r2;调校时分秒三种情况选择 cjne r2,#3,run1 mov r2,#0 run1:cjne r4,#13,run2;校时加数模式 cjne r2,#0,jj1 inc 36h mov a,36h cjne a,#24,jj1 mov 36h,#0 jj1:cjne r2,#1,jj2 inc 37h mov a,37h cjne a,#60,jj2 mov 37h,#0 jj2:cjne r2,#2,run2 inc 38h mov a,38h cjne a,#60,run2 mov 38h,#0 run2:cjne r4,#14,run3;校时减数模式 cjne r2,#0,jg1 dec 36h mov a,36h cjne a,#255,jg1 mov 36h,#23 jg1:cjne r2,#1,jg2 dec 37h mov a,37h cjne a,#255,jg2 mov 37h,#59 jg2:cjne r2,#2,run3 dec 38h mov a,38h cjne a,#255,run3 mov 38h,#59 run3:cjne r4,#26,run4;定时模式 inc r2;定时模式的R2表示选择路数、设定小时和分钟的情况 cjne r2,#3,run4 mov r2,#0 run4:cjne r4,#23,run5;定时模式的加模式 dsjia:cjne r2,#0,dsjia1 inc 3fh mov a,3fh cjne a,#17,dsjia1;最大的定时路数 mov 3fh,#1 dsjia1:cjne r2,#1,dsjia2 inc 3bh mov a,3bh cjne a,#25,dsup11 mov 3bh,#0 dsup11:call dsup dsjia2:cjne r2,#2,run5 inc 3ch mov a,3ch cjne a,#60,dsup22 mov 3ch,#0 dsup22:call dsup run5:cjne r4,#24,run6;定时模式的减模式 dsjian:cjne r2,#0,dsjian1 dec 3fh mov a,3fh cjne a,#0,dsjian1 mov 3fh,#16;最大的定时路数 dsjian1:cjne r2,#1,dsjian2 dec 3bh mov a,3bh cjne a,#0ffh,dsup33 mov 3bh,#24 dsup33:call dsup dsjian2:cjne r2,#2,run6 dec 3ch mov a,3ch cjne a,#0ffh,dsup44 mov 3ch,#59 dsup44:call dsup run6:cjne r4,#36,run7;误差模式 inc r2;误差模式的调快还是调慢模式 cjne r2,#2,run7 mov r2,#0 run7:cjne r4,#33,run8;误差模式 inc 55h;误差系数的加法 mov a,55h cjne a,#100,run8 mov 55h,#0 run8:cjne r4,#34,run9;误差模式 dec 55h;误差系数的减法 mov a,55h cjne a,#255,run9 mov 55h,#99 run9:cjne r4,#46,run10;到正常模式 mov 39h,#0 run10:cjne r4,#43,run11;到正常模式 mov 39h,#0 run11:cjne r4,#44,rund;到正常模式 mov 39h,#0 rund:mov r4,#0 runend:ret dsup:;保存定时时间 mov a,#80h add a,3fh add a,3fh mov r0,a mov @r0,3bh inc r0 mov @r0,3ch ret table: db 11110111b,11000001b,10111011b,11101011b,11001101b,11101110b,11111110b db 11000011b,11111111b,11101111b,00000000b,00000000b,10001000b,10101010b end 1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。 2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! |
本站协议 |
版权信息 |
关于我们 |
本站地图 |
营业执照 |
发票说明 |
付款方式 |
联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |