爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3521|回复: 19
收起左侧

这个8051的语音报时程序核心如果改成C166的该怎么写?

[复制链接]
发表于 2006-2-20 18:06:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
注解都在草稿上没有写上去。如果需要我加上。请教高手把这个语音报时在小8上实现。几点响几下。0点响12下,24点也响12下(响24下,大家都会晕吧。)最后一响时分同步变成00。
;ht1380,定闹钟        几点用几下嘀声报时.
;硬件定义:p1.4:数码管个位,p1.5管十位,P1.6:管百位,P1.7:管千位。P1.4-P1.7也是四个按键位
;ht1380:sck:p1.2,i\o:p1.3,rst:p3.5    beep:p3.4    
;HT1380接收到的数据放入@R1所指定的内存单元中,而发送的数据在@R0所指定的内存单元中
;       
        ledg bit p1.4
        leds bit p1.5
        ledb bit p1.6
        ledq bit p1.7
        sclk bit p1.2
        sdata bit p1.3
        srst  bit p3.5
        beep  bit p3.4
        leddian bit 00h
        beepbit   bit leddian+1     
    m59      bit  leddian+2   
        command equ 08h    ;命令
        bytecnt equ 09h    ;发送或接收的字节数
        bitcnt  equ 0ah    ;发送或接收的位数
        whmsdata equ 40h   ;写入1380的时,分,秒数据首址
        rhmsdata equ 0eh   ;读出1380的时,分,秒数据首址
        org 00h
        jmp main
        org 0bh
        jmp system
        org 30h
main:    mov sp,#70h
                 acall rest
                acall rest1380
                acall readhms
                 setb tr0
loop:         acall display
                 jmp loop
rest:     mov p3,#255
          clr srst       
           mov p1,#255
           mov scon,#0
                   mov r7,#200          ;1000MS用寄存器
                   mov r6,#30                        ;30s,用于定时读取1380的数据
                   setb leddian          ;秒点初始化
                   clr m59            
                   clr beepbit
                   mov tmod,#1          ;定时器T0工作于模式1定时状态
                   mov th0,#0f6h
                   mov tl0,#3ch                        ;定时5MS的初值
                   setb ea
                   setb et0
                   ret                 
system:  CLR TR0                          ;语音报时
                DJNZ R7,no1s
                mov r7,#200
                cpl leddian
                jnb beepbit,s30
                clr beep
                jmp s30
no1s:   cjne r7,#100,no1sout
                cpl leddian
                jnb beepbit,no1sout
                setb beep
no1sout: mov th0,#0f6h
              mov tl0,#49h
          SETB TR0
              RETI                                        
s30:    djnz r6,m59beep
                setb beep
                clr  beepbit
                acall readhms
        mov a,#59h            ;59分检测开始
        clr c
        cjne a,0fh,m59yesno
m59yesno:jc m59no
                 setb m59
                 mov r6,#60           ;修改R6为60秒
                 mov a,#240
                 anl a,0eh
                 swap a
                 mov b,#10
                 mul ab         ;压缩bcd码转换成十进制
                 mov b,a     
                 mov a,#15
                 anl a,0eh
                 add a,0f0h
                 inc a
         cjne a,#25,h13_0
         clr a
h13_0:   jnz h13_1                 
                 mov r5,#48
                 jmp m59out
m59no:   mov r6,#30
                 jmp no1sout
m59beep:jb beepbit,no1sout
                jnb m59,no1sout
                mov a,r5
                cjne a,6h,no1sout
                clr beep
                setb beepbit
                jmp no1sout                                         
h13_1:   clr c
                 cjne a,#13,h13_2
h13_2:   jc h13_3
         subb a,#12
h13_3:   mov r5,a
                 mov a,#60
                 clr c
                 subb a,r5
                 mov r5,a
m59out: mov th0,#0f6h
                mov tl0,#66h
        SETB TR0
            RETI
发表于 2006-2-20 18:15:59 | 显示全部楼层
如此一来,小8成了大挂钟了,有趣!等待中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 18:23:14 | 显示全部楼层
等待高手实现..............
回复 支持 反对

使用道具 举报

发表于 2006-2-20 18:25:59 | 显示全部楼层
关注
回复 支持 反对

使用道具 举报

发表于 2006-2-20 19:13:40 | 显示全部楼层
好功能,懂汇编的朋友出手吧.
回复 支持 反对

使用道具 举报

发表于 2006-2-20 20:45:24 | 显示全部楼层
太好了,强烈支持!
回复 支持 反对

使用道具 举报

发表于 2006-2-20 20:59:06 | 显示全部楼层
最最强烈的关注中。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-20 21:27:48 | 显示全部楼层

回复 #1 bausrpgf 的帖子

这个不是很看的明白
8051核心不同。。。

[ 本帖最后由 JunFeng 于 2006-2-20 21:45 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 21:35:09 | 显示全部楼层
可是思想是相通的。就象音乐一样
回复 支持 反对

使用道具 举报

发表于 2006-2-20 21:39:04 | 显示全部楼层
^&*
原理虽然可行

但是不同平台间的汇编移植比较费神

对了
兄弟要的at+cgsn命令

; 命令:
;AT+CGSN        读IMEI
;Display IMEI, as usual

;AT+CGSN:page,offset        读出128字节的数据
;Dump 128 bytes of memory starting at address page:offset

;AT+CGSN.page,offset,data        查找数据
;Search data on the given page, starting from offset.
;Data is a hexadecimal string without spaces.
;Offset is in range 0...3FFF.

;AT+CGSN*page,offset,data        写数据
;Write data to memory at address page:offset.
;Data is a hexadecimal string without spaces.

;AT+CGSN@seg,offset        执行手机ROM中的代码
;Inter-segment call to address seg:offset.
;On return, values of r14 and r15 will be displayed.
;Note that seg is the segment, not the page
;(eg. if you wrote procedure to 11:500, call it at 4:4500).
;Procedure should end with far return.
;If the procdure consumes much time,
;make sure to insert srvwdt instruction in its loop.
回复 支持 反对

使用道具 举报

发表于 2006-2-20 21:55:13 | 显示全部楼层
支持支持支持支持支持支持支持支持支持支持支持█████████支持支持支持
支持支持支持支持支持支持支持支持支持███████████████支持支持
支持支持支持支持支持支持支持无██████████████████支持支持
支持支持支持支持支持无████████████████支持支持支持支持支持
支持支持支持支持███████无███支持█████支持支持支持支持支持无
支持无████████████支持支持支持████支持支持支持支持支持支持
无██████████████支持支持支持████支持支持支持支持支持支持
无████████████支持支持支持无███████████支持支持支持
无████████████支持支持支持██████████████支持支持
支持██████████支持支持无██████支持无███████支持支持
支持支持支持支持████支持支持无████支持支持支持█████支持支持无
支持支持支持支持████支持支持████支持██支持无█████支持支持无
支持支持支持支持████支持支持████支持████无█████支持支持无
支持支持支持支持████支持支持████支持████无█████支持支持无
支持支持支持支持████支持支持████支持███支持█████支持支持无
支持支持支持支持████支持支持████支持███支持█████支持支持无
支持支持支持支持████支持支持████无████支持█████支持支持无
支持支持支持支持████支持支持████无████支持█████支持支持无
支持支持支持支持████支持支持████无████支持█████支持支持无
支持支持支持支持████支持支持████无████支持█████支持支持无
支持支持支持支持████支持支持███支持████支持█████支持支持无
支持██支持无█████支持支持███支持███支持无█████支持支持无
支持██████████支持支持无██支持██支持支持█████支持支持无
支持无█████████支持支持支持支持███支持支持无████支持支持无
支持支持无███████支持支持支持支持███无████支持支持支持支持无
支持支持支持██████支持支持支持无████支持█████支持支持支持无
支持支持支持支持无███支持支持支持█████支持无███████支持支持
支持支持支持支持支持支持支持支持██████支持支持无██████支持支持
支持支持支持支持支持支持支持无██████支持支持支持███████支持无
支持支持支持支持支持支持支持█████支持支持支持支持无██████支持无
支持支持支持支持支持支持无█████支持支持支持支持支持无████支持支持
支持支持支持支持支持支持███支持支持支持支持支持支持支持无███支持支持
回复 支持 反对

使用道具 举报

发表于 2006-2-20 22:36:22 | 显示全部楼层
是否可以检测分值和秒值,都为零的时候按时的倍数响?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 23:01:15 | 显示全部楼层
如果时分都为0了,才响就不能实现同步了(最后一响,时秒将同时变为00),60秒-小时(把24小时制变为12小时制)就是启动响铃的时间,响铃长度暂定为500MS
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-20 23:06:04 | 显示全部楼层
谢谢JUN兄的AT命令,祝JUN兄做出更多好补丁出来.
回复 支持 反对

使用道具 举报

发表于 2006-2-20 23:20:51 | 显示全部楼层

回复 #14 bausrpgf 的帖子

等着兄弟的补丁刷刷。。。

期待ing。。
回复 支持 反对

使用道具 举报

发表于 2006-2-21 08:17:58 | 显示全部楼层
支持一下。
回复 支持 反对

使用道具 举报

发表于 2006-2-21 09:20:39 | 显示全部楼层
强烈支持!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-21 18:58:35 | 显示全部楼层
:L:L:LJUN兄哪一定要有耐心哦。不过放心一定不会是天荒地老的哦。
回复 支持 反对

使用道具 举报

发表于 2006-2-21 19:11:05 | 显示全部楼层

回复 #18 bausrpgf 的帖子

^&^
放心,等你的话我是不会等到天老地荒的。。。
回复 支持 反对

使用道具 举报

发表于 2006-3-4 16:47:56 | 显示全部楼层
好功能,懂汇编的朋友出手吧.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-3 07:16

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表