有一点郁闷,用595驱动简单的数码管,用汇编能成功,用C却不能成功。 (已解决,低级错误,不

2020-02-04 09:37发布

能成功的汇编代码:

汇编代码 (原文件名:汇编代码.jpg)
能成功的汇编结果:

汇编结果 (原文件名:汇编.jpg)

不能成功的C代码:

C代码 (原文件名:C代码.jpg)
C仿真结果:

C结果 (原文件名:C.jpg)

工程打包:

打包ourdev_721139R336YF.rar(文件大小:66K) (原文件名:595.rar)


我应该是能理解595的时序的,不然汇编是不能成功的,大家帮我看看C的问题在哪?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
renwocai
1楼-- · 2020-02-04 10:28
 精彩回答 2  元偷偷看……
OTD_WIND
2楼-- · 2020-02-04 15:47
ds=CY;

是这句的问题吧,你在仿真里看了C的编译后的汇编代码了吗?
godfooker_back
3楼-- · 2020-02-04 20:16
楼上加1,应该是c移位时不带进位标志,电脑没有keil,无法编译。楼下继续
godfooker_back
4楼-- · 2020-02-04 23:33
改成这样试试

main()
{
        uchar a,M=0xc0;
                for(a=0;a<8;a++);
                {
                        sh=0;
                        ds=bit(M&0x80);                ///       
                        M<<=1;
                        sh=1;
                }       
        st=0;
        st=1;
        while(1);       
}
downtoearth
5楼-- · 2020-02-05 04:50
我觉得st = 1 ;时前面应延时一会。
renwocai
6楼-- · 2020-02-05 05:41
 精彩回答 2  元偷偷看……

一周热门 更多>