找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2931|回复: 0
打印 上一主题 下一主题
收起左侧

来大侠帮我.asm转成.c文件,万分感谢,急用

[复制链接]
跳转到指定楼层
楼主
ID:162112 发表于 2017-3-1 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;脚功能定义
        SMG_q EQU P1.0        ;定义数码管阳级控制脚,千位
        SMG_b EQU P1.1        ;定义数码管阳级控制脚,百位
        SMG_s EQU P1.2        ;定义数码管阳级控制脚,十位
        SMG_g EQU P1.3        ;定义数码管阳级控制脚,个位       
        KEY1 EQU P3.7        ;定义按键1
        KEY2 EQU P3.6        ;定义按键2
       
;定义数据RAM空间
        LMS EQU 37H        ;定义一个变量存放计数值毫秒
        LMIAO EQU 38H        ;定义一个变量存放计数值秒
;数据存放
ORG 0100
TABLE:        DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H       
                        ;表:共阳数码管 0-9

ORG 0000H
LJMP MAIN
ORG 000BH        ;中断入口
LJMP TIMER

ORG 0200H
MAIN:        MOV TMOD,#01H        ;设置定时器1为1模式,即16位计算模式
        MOV TH0,#0D8H        ;给计数寄存器赋值,10毫秒时间
        MOV TL0,#0F0H
        MOV IE,#82H        ;开总中断和T0中断
        CLR TR0                ;
        CLR A
        MOV LMS,A        ;计数缓冲清0
        MOV LMIAO,A
M01:        JB KEY1,M02        ;按下1键启动计数
        CLR A
        MOV LMS,A
        MOV LMIAO,A        ;
        SETB TR0        ;
        SJMP M1
M02:        JB KEY2,M1        ;按下2键停止计数
        CLR TR0                ;
M1:        MOV A,LMS
        CJNE A,#100,M2        ;以10毫秒计数,100次即为1秒
        MOV LMS,#0
        MOV A,LMIAO        ;
        INC A
        MOV LMIAO,A        ;
        CJNE A,#100,M2        ;如果加到100秒,则清0
        MOV LMIAO,#0
M2:        LCALL DISPLAY        ;显示
        LJMP M01       


TIMER:        INC LMS                ;定时中断产生,以10毫秒计数加1
        MOV TH0,#0D8H        ;重新装入定时器值10毫秒
        MOV TL0,#0F0H
        RETI               


DISPLAY:MOV DPTR,#TABLE        ;数码管显示子程序
        MOV A,LMIAO        ;
        MOV B,#10
        DIV AB
        CLR SMG_q        ;千位数码管
        MOVC A,@A+DPTR        ;
        MOV P0,A
        LCALL DELAY        ;
        MOV P0,#0FFH        ;
        SETB SMG_q        ;

        CLR SMG_b        ;百位数码管
        MOV A,B                ;
        MOVC A,@A+DPTR        ;
        ANL A,#0X7F        ;加入小数点
        MOV P0,A
        LCALL DELAY        ;
        MOV P0,#0FFH        ;
        SETB SMG_b        ;

        MOV A,LMS        ;
        MOV B,#10
        DIV AB
        CLR SMG_s        ;十位数码管
        MOVC A,@A+DPTR        ;
        MOV P0,A
        LCALL DELAY        ;
        MOV P0,#0FFH        ;
        SETB SMG_s        ;

        CLR SMG_g        ;个位数码管
        MOV A,B                ;
        MOVC A,@A+DPTR        ;
        MOV P0,A
        LCALL DELAY        ;
        MOV P0,#0FFH        ;
        SETB SMG_g        ;
        RET

DELAY:        MOV R7,#10        ;延时子程序
        DJNZ R7,$
        RET
END


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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