打印

单片机大作业不会要挂科,求大神

[复制链接]
楼主: 899000
手机看帖
扫描二维码
随时随地手机跟帖
61
Pony279| | 2013-1-8 10:50 | 只看该作者 回帖奖励 |倒序浏览
记得半个月前在 stackoverflow 社区上见到类似的帮做作业的问题,
结果老外们的一致回复是自己完成, 不要成为几年后被我开除的那个人!

使用特权

评论回复
62
Pony279| | 2013-1-8 11:08 | 只看该作者
本帖最后由 Pony279 于 2013-1-8 11:13 编辑
ghyktv521 发表于 2013-1-7 17:45
现在单片机很少用汇编?
大虾一定是用上位机的多吧?
如果小单片机才1KROM/2KROM/4KROM


现在的编译器对代码的优化能力强过大部分程序员, 很多时候甚至是程序员做不到的
编译期常数自动优化, 为代码量自动优化, 跨模块优化, 这些结果我都有反汇编看过的,
还有空间分配, 你手工能在写C的两倍的时间内做的比编译器自动做的好? BUG 更少?

使用特权

评论回复
63
jiangzhe8525| | 2013-1-8 11:24 | 只看该作者
自己完成, 不要成为几年后被我开除的那个人!

使用特权

评论回复
64
604603487| | 2013-1-8 11:49 | 只看该作者
我不会汇编

使用特权

评论回复
65
a273076066| | 2013-1-8 14:34 | 只看该作者
汇编好久都没用了

使用特权

评论回复
66
ghyktv521| | 2013-1-8 14:45 | 只看该作者
Pony279 发表于 2013-1-8 11:08
现在的编译器对代码的优化能力强过大部分程序员, 很多时候甚至是程序员做不到的
编译期常数自动优化, 为 ...

没见过哪个单片机的编译器做得很好的!!!

使用特权

评论回复
67
liusensen| | 2013-1-8 15:16 | 只看该作者
link8001 发表于 2013-1-7 08:20
初始化中断,0~F存入80H开始的16个单元,
MOV R0,#80H
MAIN:

看不懂这是个什么意思   也学过一些汇编  就只记的 mov  loop 这些了 哈哈  

使用特权

评论回复
68
1638574407| | 2013-1-8 17:44 | 只看该作者

使用特权

评论回复
69
jiayicumt| | 2013-1-8 19:24 | 只看该作者
楼上link8001的思想很好,不过你要把
MOV R0,#80H
MAIN:
MOV A,@R0
INC R0
LACALL DELAY
CJNE A,#0FH,LOOP
MOV R0,#80H
LOOP:
SJMP MAIN

INT0:
MOV R0,#80H
RETI
里面的
CJNE A,#0FH,LOOP
改成 CJNE A,#8FH


并且要要加入子程序Deley的时间程式,还有一些程序开始于中断的入口地址即可

希望对你有帮助····

使用特权

评论回复
70
Pony279| | 2013-1-8 21:38 | 只看该作者
本帖最后由 Pony279 于 2013-1-8 22:14 编辑
ghyktv521 发表于 2013-1-8 14:45
没见过哪个单片机的编译器做得很好的!!!


oh? really?
你这么关注性能? 那么对编译器的优化能力你了解多少? 你经常反汇编看 C 代码的结果?
在 KEIL C51 上的局部变量是分配在栈上还是编译器自动利用 call tree 分配来为 51 优化?
C51 上怎么设置就可以让链接器自动剔除不调用的函数 ?
编译器的数据流分析是什么?
mdk 跨模块优化的时候编译器会不会跨模块直接内联而省去函数调用的步骤, 进而让代码模块在逻辑上分离而实际让编译器去优化?
只调用1次的函数什么时候会被自动内联 ? 如何强制让编译器进行内联 ?
编译器会不会利用一些架构的特别的指令(如CM3的BFI)进行代码优化 ?
在进行速度优化的时候编译器会不会自动展开次数可以在编译期确定的循环体 ?
在进行代码量优化的时候编译器会不会自动把相同的几个代码块变成1个循环体 ?
gcc 下会不会自动产生判断栈溢出的代码 ?

使用特权

评论回复
71
ygzjyh| | 2013-1-9 11:31 | 只看该作者
以下程序供参考,应该可以满足你的题意要求。
ORG        0000H
        LJMP        MAIN
        ORG        0003H
        LJMP        ZD_INT0
        ORG        0030H
MAIN:        CLR        P2.0
        SETB        EA
        SETB        EX0
        CLR        00H
        MOV        DPTR,#TAB
LOOP1:        MOV        R7,#16
        MOV        R0,#00H
        MOV        A,R0
        MOVC        A,@A+DPTR
        MOV        P0,A
LOOP:        ACALL        DELAY
        JBC        00H,MAIN
        INC        R0
        MOV        A,R0
        MOVC        A,@A+DPTR
        MOV        P0,A
        DJNZ        R7,LOOP
        AJMP        LOOP1
DELAY:        MOV        R6,#200
DELAY_1:        MOV        R5,#200
DELAY_2:        NOP
        NOP
        NOP
        NOP
        JB        00H,DELAY_END
        DJNZ        R5,DELAY_2
        DJNZ        R6,DELAY_1
DELAY_END:        RET
ZD_INT0:        SETB        00H
        RETI
TAB:        DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,088H,083H,0C6H,0A1H,086H,08EH
        END

使用特权

评论回复
72
shenyudong| | 2013-1-9 16:45 | 只看该作者
路漫漫啊:$

使用特权

评论回复
73
hongdan0714jin| | 2013-1-10 16:50 | 只看该作者
NE5532 发表于 2013-1-7 09:11
挂科重修收费多少?拿来做报酬哇?

80一学分,单片机估计2.5个学分的样子。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则