微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机实现简单的电子表中遇到的问题,求大神解答

51单片机实现简单的电子表中遇到的问题,求大神解答

时间:10-02 整理:3721RD 点击:


这是老师给我们下达的课程设计要求,图中的7SEG是共阳极的
但是因为我们学校今年采购的7SEG是共阴极,现在我不知道具体电路该怎么画……
还有,在PROTEUS中放太多东西的话,会提示CPU EXCESSIVE LOAD,7SEG根本就刷新不过来,直接就没显示了


这是我现在的电路图,去掉了多余的电阻和三极管,等焊接的时候会加上去的
求教大神:
1.PROTEUS中的三极管反应太慢了怎么办?
2.三极管是正向放大,我如果再在后面加上一个74LS04非门(因为7SEG是共阴极),还用不用加其他的电阻什么了?
3.放太多组件PROTEUS提示 CPU EXCESSIVE LOAD后7SEG就没显示了,去掉组件就能正常显示,这是我的代码问题还是大家都这样?
4.有没有办法在不加74LS04的情况下用三极管实现反向放大驱动?

最后~拜谢各路大神……

共阳极是P0口驱动位码,P1口驱动段码就好,不用加放大。共阴极就要加放大,不加直接驱动会很暗。共阴极的这个应该是位码接低电平,段码接高电平时,选中某一位亮,应该在段码加三极管放大吧。

1.PROTEUS数码管如果用扫描方式的话占CPU100%,这个问题一直在伴随着,我平时仿真的时候通常把晶振调到1M以下就可明显好转
2.位扫描不用加74LS04非门,直接把IO口接到数码管上,不加电阻;段扫描保持现状,但程序字段码要变成共阴的。
3.问题同1,请注意数码管不要放在main函数里执行,放中断里效果能好些
4.问题同2。
希望能帮到你。

晶振1Hz也会提示Excessive loaded啊>.<
现在老师规定一定要用三极管,请问我该怎么连呢?B,E,C分别该怎么连啊= =  我不是电气专业的……只是这学期开了单片机课程
数码管的刷新代码要不停重复执行的啊……不然怎么在每个位置显示不同的数字呢?
奉上我的代码,求大神指正
        ORG        0000H
        AJMP        INITSYSTEM
        ORG        000BH
        AJMP        TICK
        ORG        0050H
INITSYSTEM:
        SW        EQU        P1.7
        DP        EQU        P2
        EN        EQU        P3
        NUM_1        EQU        20H
        NUM_2        EQU        21H
        NUM_3        EQU        22H
        NUM_4        EQU        23H
        NUM_5        EQU        24H
        NUM_6        EQU        25H
        COUNT        EQU        R1
        HOURH        EQU        R2
        HOURL        EQU        R3
        MINH        EQU        R4
        MINL        EQU        R5
        SECH        EQU        R6
        SECL        EQU        R7
        MOV        TMOD,#01H        ;设定计时器
        MOV        TH0,#3CH
        MOV        TL0,#0B0H
        SETB        TR0
        SETB        EA
        SETB        ET0
        ACALL        RESET
        MOV        DPTR,#NUM
        AJMP        READY
READY:
        JB        SW,$
MAIN:
        MOV        A,#01H
FLASHLED:;DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_1
        RL        A
        MOV        EN,#0H
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_2
        RL        A
        MOV        EN,#0H
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_3
        RL        A
        MOV        EN,#0H
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_4
        RL        A
        MOV        EN,#0H
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_5
        RL        A
        MOV        EN,#0H
        MOV        DP,#0H
        MOV        EN,A
        MOV        DP,NUM_6
        RL        A
        MOV        EN,#0H                       
        AJMP        READY
TICK:
        INC        COUNT
        CJNE        COUNT,#0AH,TICKOVER
        MOV        COUNT,#0H
        INC        SECL
        CJNE        SECL,#0AH,TICKOVER
        MOV        SECL,#0H
        INC        SECH
        CJNE        SECH,#06H,TICKOVER
        MOV        SECH,#0H
        INC        MINL
        CJNE        MINL,#0AH,TICKOVER
        MOV        MINL,#0H
        INC        MINH
        CJNE        MINH,#06H,TICKOVER
        MOV        MINH,#0H
        CJNE        HOURH,#02H,NOT20
        INC        HOURL
        CJNE        HOURL,#04H,TICKOVER
        ACALL        RESET
        SJMP        TICKOVER
NOT20:
        INC        HOURL
        CJNE        HOURL,#0AH,TICKOVER
        MOV        HOURL,#0H
        INC        HOURH
TICKOVER:
        MOV        A,HOURH
        MOVC        A,@A+DPTR
        MOV        NUM_1,A
        MOV        A,HOURL
        MOVC        A,@A+DPTR
        MOV        NUM_2,A
        MOV        A,MINH
        MOVC        A,@A+DPTR
        MOV        NUM_3,A
        MOV        A,MINL
        MOVC        A,@A+DPTR
        MOV        NUM_4,A
        MOV        A,SECH
        MOVC        A,@A+DPTR
        MOV        NUM_5,A
        MOV        A,SECL
        MOVC        A,@A+DPTR
        MOV        NUM_6,A
        RETI
RESET:
        MOV        HOURH,#0H
        MOV        HOURL,#0H
        MOV        MINH,#0H
        MOV        MINL,#0H
        MOV        SECH,#0H
        MOV        SECL,#0H
        RET
NUM:
        DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
        END

复制下来!自己好好学习!


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top