磁动力电子网-雕刻机DIY论坛,单片机论坛,CNCDIY,DIYCNC

 找回密码
 加入磁动力

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 630|回复: 15

[51单片机] [原创diy]放在床头柜上的小数字表

  [复制链接]
发表于 2017-3-25 18:56:06 | 显示全部楼层 |阅读模式
应好友要求
做了几个放在床头柜上面用的小数字表
该表只为显示时间
没有其他任何花哨功能!


电路结构非常简单:
以AT89C2951/4051为核心
外加几只阻容即可
特别适合初学单片机的坛友仿制


在此特别郑重声明:
未经本人授权
严禁用于商业!!!

回复

使用道具 举报

 楼主| 发表于 2017-3-25 18:57:28 | 显示全部楼层
xszb2051aa.jpg xszb2051bb.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-25 18:57:54 | 显示全部楼层
xszb2051电路.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-25 18:58:26 | 显示全部楼层
本帖最后由 lxa0 于 2017-3-25 18:59 编辑

;at89c2051小数字表汇编代码
;6MHz晶振+AT89c2051+四位共阴数码管1个
;Lxa0最后修改于2017-3-27--V2.0
;int1脚为红外接收头

org 0000h
ajmp mm
org 000bh
ajmp ttxx
org 0013h
ajmp tt1            ;以上为主程序和中断子程序的入口设定

;主程序*********************************************************
org 0100h
mm:nop
clr p3.7
mov th0,#03ch         ;T0设初始值
mov tl0,#0b9h         ;TH0=3ch,TL0=bdh
mov tmod,#91h         ;T0设方式1
mov tcon,#14h         ;T0设控制方式
mov ie,#86h           ;设中断允许
mov ip,#04h           ;设中断优先级别
mov sp,#5fh           ;设堆栈入口
mov r6,#00h           ;备用
mov r7,#00h           ;备用
mov 08h,#2fh          ;解码转换用
mov 09h,#07h          ;解码转换用
mov 10h,#30h          ;读红外波头存放首址
mov 11h,#2fh          ;读红外波头48个
mov 20h,#00h          ;遥控解码标志
mov 21h,#00h          ;存放红外指令
mov 22h,#00h          ;保留
mov 23h,#00h          ;保留
mov 24h,#00h          ;保留
mov 25h,#00h          ;保留
mov 26h,#00h          ;保留
mov 27h,#00h          ;保留
mov 28h,#00h          ;0.1秒
mov 29h,#00h          ;0.5秒
mov 2ah,#00h          ;秒个位
mov 2bh,#00h          ;秒十位
mov 2ch,#00h          ;分个位
mov 2dh,#00h          ;分十位
mov 2eh,#00h          ;时个位
mov 2fh,#00h          ;时十位
m0:nop
acall xsz         ;主程序入口,先调用显示子程序
acall zh          ;调用Key扫描子程序
acall xsz         ;调用显示子程序
acall dz          ;调用要完成的动作子程序
acall xsz
sjmp m0

;显示xsz子程序<占用区0>********************************************
org 0020h
xsz:nop
push dph
push dpl
push acc
push psw             ;保护现场
mov dptr,#00f0h
mov a,2ch            ;取分个位数据
movc a,@a+dptr
mov p1,a
clr p3.0             ;送分个位
mov r6,#00h
s03:djnz r6,s03      ;延时约0.5mS
setb p3.0            ;关闭显示
mov a,2dh            ;取分十位数据
movc a,@a+dptr
mov p1,a
clr p3.1             ;送分十位
mov r6,#00h
s04:djnz r6,s04      ;延时约0.5mS
setb p3.1            ;关闭显示
mov a,2eh            ;取时个位数据
movc a,@a+dptr
mov p1,a
clr p3.2             ;送时个位
mov r6,#00h
s05:djnz r6,s05      ;延时约0.5mS
setb p3.2            ;关闭显示
mov a,2fh            ;取时十位数据
movc a,@a+dptr
mov p1,a
clr p3.4             ;送时十位
mov r6,#00h
s06:djnz r6,s06      ;延时约0.5mS
setb p3.4            ;关闭显示
s07:pop psw          ;回复现场
pop acc
pop dph
pop dpl
ret                  ;返回

org 00e0h
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;共阳
org 00f0h
DB 03FH,06H,05BH,04FH,066H,06DH,07DH,07H,07FH,06FH  ;共阴


; T0定时子程序<占区0>************************************************
org 0180h
ttxx:mov th0,#03ch      ;以下是T0刷新子程序
mov tl0,#0b9h     
push dph
push dpl
push acc
push psw
clr psw.3               ;进入第0组工作寄存器
clr psw.4
inc 28h
mov a,28h
cjne a,#05h,tt22        ;刷新5次
mov 28h,#00h
inc 29h                 ;延时500mS两次
cpl p3.7                ;冒号闪烁
mov a,29h
cjne a,#02h,tt22
mov 29h,#00h
inc 2ah                 ;刷新秒个位
mov a,2ah               ;刷新秒十位
cjne a,#0ah,tt22
mov 2ah,#00h
inc 2bh                 ;刷新秒十位
mov a,2bh
cjne a,#06h,tt22
mov 2bh,#00h
inc 2ch                 ;刷新分个位
mov a,2ch
cjne a,#0ah,tt22
mov 2ch,#00h
inc 2dh                 ;刷新分十位
mov a,2dh
cjne a,#06h,tt22
mov 2dh,#00h
inc 2eh                 ;刷新时个位
mov a,2eh
cjne a,#0ah,tt11
mov 2eh,#00h
inc 2fh                 ;刷新时十位
tt22:pop psw
pop acc
pop dpl
pop dph
reti
tt11:mov a,2eh
cjne a,#04h,tt22
mov a,2fh
cjne a,#02h,tt22
mov 2eh,#00h            ;到24点,时两位全清零
mov 2fh,#00h
sjmp tt22

end
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-25 19:00:45 | 显示全部楼层
上边的原代码仅供参考!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-25 19:03:23 | 显示全部楼层
调时间用的遥控手柄外观图见下:


我的遥控手柄图1.jpg 我的遥控手柄图2.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-26 20:04:26 | 显示全部楼层
xszb2051cc.jpg
回复 支持 反对

使用道具 举报

发表于 2017-3-27 10:04:47 | 显示全部楼层
不错
回复

使用道具 举报

发表于 2017-3-27 15:23:16 | 显示全部楼层
2051是通过外部晶振计时的,时间长了会不会误差比较大?我记得有专门的计时用的芯片的,那个比较准一点.
回复 支持 反对

使用道具 举报

发表于 2017-3-28 19:18:23 | 显示全部楼层
也需要回复才可见吗

点评

无须回复就可以看本帖子。  发表于 2017-3-29 19:06
回复 支持 反对

使用道具 举报

发表于 2017-3-28 19:24:51 | 显示全部楼层
赞一个                                                                                                                                       
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 19:07:27 | 显示全部楼层
tjh 发表于 2017-3-27 15:23
2051是通过外部晶振计时的,时间长了会不会误差比较大?我记得有专门的计时用的芯片的,那个比较准一点.

15元的成本
再多加芯片就没啥意思了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 19:08:46 | 显示全部楼层
多谢明兄加精!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 19:13:11 | 显示全部楼层
昨天测量了下功耗
整机工作电流20mA
那么:5VX0.02A=0.1W
计算下来416。67天消耗1读电!

因此本机的2个亮点浮出水面:
1。功耗极低
2。遥控调整时间
回复 支持 反对

使用道具 举报

发表于 2017-4-23 12:54:33 | 显示全部楼层
这个估计不会很准确!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入磁动力

本版积分规则

QQ|小黑屋|手机版|Archiver|www.cdle.net 磁动力电子网 2001-2017 ( 粤ICP备10098153号

粤公网安备 44040402000001号

GMT+8, 2019-3-23 20:56

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.