微信小程序添加闹钟代码

微信小程序添加闹钟代码,第1张

微信小程序可以添加闹钟代码。

整个闹钟项目的代码分为3部分,分别是:闹钟主页、闹钟记录、闹钟设置;

A. 闹钟主页的功能有点类似番茄闹钟,它由一个倒计时工具构成,只要客户点击按钮,就会开始倒计时;

B. 闹钟记录主要记录了客户每次的点击 *** 作,有点类似日志;

C. 闹钟设置可以自定义设置一些参数,包括设置工作时长、休息时长、背景音乐、背景图片。

利用8位数码管显示时间,原理与4位数码管显示的基本一样

仿真图:

程序源代码:

本程序已经通过在线软件仿真和硬件制作.

  org 0000h   程序开始入口地址

  sjmp main   跳转至主程序

  org 000bh   T0中断入口地址

  ljmp inti0  跳转至T0中断程序

  org 001bh   T1中断入口地址

  ljmp inti1  跳转至T1中断程序

  org 0030h

main:mov tmod,#11h  设T0、T1为模式1

     mov ie,#8ah  开T0、T1允许中断

  mov th0,#4ch  赋T0 50ms初值

  mov tl0,#00h

  mov th1,#4ch  赋T1 50ms初值

  mov tl1,#00h

  mov sp,#60h   设置堆栈指针

  mov 38h,#00 闹钟分初值

  mov 39h,#00 闹钟时初值

  mov 31h,#00 时间秒初值

  mov 32h,#00 时间分初值

  mov 33h,#00 时间时初值

  setb tr0  启动定时器T0

  setb tr1    启动定时器T1

loop:lcall display 调用时间显示程序

     lcall keysan 调用时间调节按钮

  lcall keynz 调用闹钟控制按钮

     ajmp loop

inti0:push psw   压入堆栈指针,保护现场

      push acc

   clr ea  关中断

   mov th0,#4ch 重赋T0定时初值

   mov tl0,#00h

   inc 3ah 3ah为50ms计数单元

   mov a,3ah

   cjne a,#20,out 1秒计数是否到

   mov 3ah,#00 清50ms计数初值

   inc 31h   秒加1

   mov a,31h

   cjne a,#60,out   60秒计数是否到

   mov 31h,#00

   inc 32h  分加1

   mov a,32h

   cjne a,#60,out 60分计数是否到

   mov 32h,#00

   inc 33h    时加1

   mov a,33h

   cjne a,#24,out   24时计数是否到

   mov 33h,#00

out: setb ea 开中断

     pop acc d出堆栈指针,恢复现场

  pop psw

  reti    中断返回

inti1:push psw  压入堆栈指针,恢复现场

      push acc

   clr ea

   mov th1,#4ch  重赋T1定时初值

   mov tl1,#00h

   inc 71h   71h为50ms计数单元

   mov a,71h

   cjne a,#20,out1

   mov 71h,#00

   mov a,32h  闹钟判断

      cjne a,38h,out1  闹钟时间分判断

   mov a,33h

   cjne a,39h,out1 闹钟时间时判断

   clr p1.0    到闹钟时间,清p1.0

 out1:setb ea   开中断

       pop acc

    pop psw

    reti    中断返回

display:mov a,31h  秒显示

  mov b,#10

  div ab

     mov 20h,a  将十位放入20h单元

  mov 21h,b  将个位、余数放入21h单元

disp1:  mov a,20h 秒十位显示

        mov dptr,#table

  movc a,@a+dptr  将A的内容+table内容,结果回存给A

  mov p0,a  将A给P0口

  clr p2.6  清p2.6,点亮第7位数码管

  lcall del1ms 调用1ms延时子程序

  setb p2.6  灭第7位数码管

disp2:  mov a,21h 秒个位显示

        mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.7

  lcall del1ms

  setb p2.7

disp4:  mov a,32h 分显示

        mov b,#10

  div ab

  mov 22h,a

  mov 23h,b

disp5:  mov a,22h 分十位显示

        mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.3

  lcall del1ms

  setb p2.3

disp6:  mov a,23h  分个位显示

        mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.4

  lcall del1ms

  setb p2.4

disp7:  mov a,33h   时显示

        mov b,#10

  div ab

  mov 24h,a

  mov 25h,b

disp8:  mov a,24h    时十位显示

        mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.0

  lcall del1ms

  setb p2.0

disp9:  mov a,25h  时个位显示

        mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.1

  lcall del1ms

  setb p2.1

disp10: mov 34h,#0bfh  "-"显示

        mov a,34h

        mov p0,a

  clr p2.5

  lcall del1ms

  setb p2.5

disp11: mov 35h,#0bfh  "-"显示

        mov a,35h

  mov p0,a

  clr p2.2

  lcall del1ms

  setb p2.2

  ret

display1:mov a,38h   闹钟分显示

         mov b,#10

   div ab

   mov 26h,a

   mov 27h,b

      d1:mov a,26h    闹钟分十位显示

         mov dptr,#table

   movc a,@a+dptr

   mov p0,a

   clr p2.3

   lcall del1ms

   setb p2.3

      d2:mov a,27h    闹钟分个位显示

      mov dptr,#table

   movc a,@a+dptr

   mov p0,a

   clr p2.4

   lcall del1ms

      setb p2.4

dispnz: mov a,39h  闹钟时显示

        mov b,#10

  div ab

  mov 28h,a

  mov 29h,b

 d5: mov a,28h   闹钟时十位显示

     mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.0

  lcall del1ms

  setb p2.0

 d6: mov a,29h   闹钟时个位显示

     mov dptr,#table

  movc a,@a+dptr

  mov p0,a

  clr p2.1

  lcall del1ms

  setb p2.1

        mov 35h,#0bfh  "-"显示

        mov a,35h

  mov p0,a

  clr p2.2

  lcall del1ms

  setb p2.2 

   ret  

table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h   数字0—9               

del1ms:mov r7,#10   1ms延时子程序

del1: mov r6,#50

del2:djnz r6,del2

     djnz r7,del1

  ret

del20ms:mov r5,#40    20ms延时子程序

del3: mov r4,#250

del4: djnz r4,del4

      djnz r5,del3

   ret

keysan:jnb p3.1,key1 秒加1按钮

       jnb p3.2,key2 分加1按钮

    jnb p3.3,key3 时加1按钮

      

    sjmp keyout

key1: lcall del20ms

      jb p3.1,keyout

   jnb p3.1,$

   inc 31h  秒加1

   mov a,31h

   cjne a,#60,keyout

   mov 31h,#00

   sjmp keyout

key2:lcall del20ms

     jb p3.2,keyout

  jnb p3.2,$

  inc 32h  分加1

  mov a,32h

  cjne a,#60,keyout

  mov 32h,#00

  sjmp keyout

key3:lcall del20ms

     jb p3.3,keyout

  jnb p3.3,$

  inc 33h 时加1

  mov a,33h

  cjne a,#24,keyout

  mov 33h,#00

  sjmp keyout

keyout:ret

keynz:jnb p3.4,keynz4 显示闹钟并可修改和显示当前时间

    jnb p3.7,keynz5

    jnb p3.5,nz3

    jnb p3.6,nz4

    sjmp nzout

nzout:ret

nz2:lcall display1

    jnb p3.5,nz3

 jnb p3.6,nz4

keynz4:jnb p3.4,nz2

  sjmp nzout

nz3:lcall del20ms

    jb p3.5,nzout

 jnb p3.5,$

    inc 38h

 mov a,38h

 cjne a,#60,nzout

 mov 38h,#00

 sjmp nzout

nz4:lcall del20ms

    jb p3.6,nzout

 jnb p3.6,$

 inc 39h

 mov a,39h

 cjne a,#24,nzout

 mov 39h,#00

 sjmp keyout

keynz5:jb p3.7,nzout

     jnb p3.7,$

  setb p1.0

 sjmp nzout

end

代码: http://www.3lian.com/flash/flashclock/clock160.swf" width="100%" height="400" type="application/x-shockwave-flash" />http://3456xw.blog.163.com/"> http://3456xw.blog.163.com/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12159143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存