标题: 这是我用edsim51做的仿真,动态显示1234,如果要实现同时显示1234,怎么做 [打印本页]

作者: BSq    时间: 2020-3-17 20:08
标题: 这是我用edsim51做的仿真,动态显示1234,如果要实现同时显示1234,怎么做
ORG 0100
TABLE: DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H ;表:共阳数码管 0-9
ORG 0000H
LJMP MAIN
ORG 0200H
MAIN: MOV DPTR,#TABLE
M1: SETB P3.3
SETB P3.4                ;选择千位数码管
MOV A,#1                 ;千位显示1,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P1口,显示相应的0-9
MOV P1,A
LCALL DELAY         ;延时,停留一会,让人眼感触到它的亮度
MOV P1,#0FFH         ;清除数码管显示,因是共阳型,所以不是0
CLR P3.3           ;关闭千位数码管,选择百位数码管
MOV A,#2           ;百位显示2,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P1口,显示相应的0-9
MOV P1,A
LCALL DELAY         ;延时,停留一会,让人眼感触到它的亮度
MOV P1,#0FFH         ;清除数码管显示,因是共阳型,所以不是0
CLR P3.4
SETB P3.3                 ;关闭百位数码管,选择十位数码管
MOV A,#3                 ;十位显示3,显示数值可以自己改,0-9
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P1口,显示相应的0-9
MOV P1,A
LCALL DELAY             ;延时,停留一会,让人眼感触到它的亮度
MOV P1,#0FFH         ;清除数码管显示,因是共阳型,所以不是0
CLR P3.3                     ;关闭十位数码管;选择个位数码管
MOV A,#4                 ;个位显示4
MOVC A,@A+DPTR ;查表输出定义好的数码管段值到P0口,显示相应的0-9
MOV P1,A
LCALL DELAY             ;延时,停留一会
MOV P1,#0FFH                ;清除数码管显示
LJMP M1      ;循环扫描输出,不扫描则不显示或显示不正确,即为动态显示,
DELAY: MOV R5,#10             ;此次延时子程序不用很长时间
DJNZ R5,$
RET
END


作者: wulitouaaaa    时间: 2020-3-31 03:07
你好 请问你有安装包吗
作者: Y_G_G    时间: 2020-3-31 08:54
;我这个共阴的,你可以参考一下,硬件不一样可以在程序开始的伪指令那改一下
;共阴的扫描要把显示部分的位选改一下
;程序没有进行过仿真.是直接烧录在开发板的,实际验证过了
;=========================================================================================
;名称:1234显示程序
;作者:=
;日期:2020-03-31
;最后更新日期:2020-03-31
;MCU:STC8A4K32S2
;使用片上24MHZ时钟,
;=========================================================================================
COM0                        EQU                P2.3
COM1                        EQU                P2.2
COM2                        EQU                P2.1
COM3                        EQU                P2.0        ;数码管的4个位选端口
S1                                BIT                P1.5        ;按键
OUT                                EQU                P0                ;PO用于显示
P2M0                        EQU                096H        ;
P2M1                        EQU                095H        ;控制P2端口输出模式的两个寄存器
;===========================================================================
LED_1                        DATA        030H        ;
LED_10                        DATA        031H        ;
LED_100                        DATA        032H        ;
LED_1000                DATA        033H        ;
                                ORG         0000H
                                LJMP         MAIN
                                ORG         0200H
MAIN:                         MOV                LED_1,#1
                                   MOV                LED_10,#2
                                   MOV                LED_100,#3
                                   MOV                LED_1000,#4                ;先把四个清除
                                MOV         DPTR,#TABLE
                                CALL        DISPLAY
                                JMP                MAIN
;===========================================================================
;显示子程序                                               
DISPLAY:        MOV                A,LED_1
                                CLR                COM0                        ;打开位选
                                CALL        DISP_LED                ;数码管通过查表显示
                                SETB        COM0                        ;关闭位选
                                ;===================================================
                                MOV                A,LED_10
                                CLR                COM1                        ;打开位选
                                CALL        DISP_LED                ;数码管通过查表显示
                                SETB        COM1                        ;关闭位选
                                ;===================================================
                                MOV                A,LED_100
                                CLR                COM2                        ;打开位选
                                CALL        DISP_LED                ;数码管通过查表显示
                                SETB        COM2                        ;关闭位选
                                ;===================================================
                                MOV                A,LED_1000
                                CLR                COM3                        ;打开位选
                                CALL        DISP_LED                ;数码管通过查表显示
                                SETB        COM3                        ;关闭位选
                                ;===================================================
RET
;=================================================================================================
;数码管查表显示
DISP_LED:                MOV         DPTR,#TABLE
                                MOVC         A,@A+DPTR
                                MOV         OUT,A                         ;
                                CALL        DELAY1MS                ;延时1mS
RET       
;==================================================================================================
DELAY1MS:                PUSH         30H
                                PUSH         31H
                                MOV         30H,#32
                                MOV         31H,#39
NEXT:                        DJNZ         31H,NEXT
                                DJNZ         30H,NEXT
                                POP         31H
                                POP         30H
RET
;===================================================================================               
;TABLE:         DB                 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H ;表:共阳数码管 0-9
TABLE:                DB 0FCH,060H,0DAH,0F2H,066H,0B6H,0BEH,0E0H,0FEH,0F6H;       ;表:共阴数码管 0-9
;===================================================================================
END


作者: BSq    时间: 2020-3-31 09:29
wulitouaaaa 发表于 2020-3-31 03:07
你好 请问你有安装包吗

请问你是指edsim51的安装包吗






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1