找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4952|回复: 40
收起左侧

再谈我对单片机编程的理解

  [复制链接]
ID:460466 发表于 2019-1-25 21:34 | 显示全部楼层 |阅读模式
要对单片机写入程序必须要有“地址”(就是写在哪里的问题),还要有数据(也就是程序的组成部分),还要能变化不同的地址(例如二进位的0001,0010,0011,,,)还要有数据写入后的固定。最后写入程序的读出要有时序控制(有节奏的输出写入的程序)。
回复

使用道具 举报

ID:96682 发表于 2019-1-26 00:35 | 显示全部楼层
楼主需要找的是这货么,好像市面上很难找到现货,要玩转它还需下点功夫
回复

使用道具 举报

ID:123289 发表于 2019-1-26 08:55 | 显示全部楼层
六不搭对!
计算机含单片机,是由众多的逻辑电路构成,
逻辑电路是:对应于一组输入就产生一组输出(狭义的)。
CPU会沿既定的路径(存储区)依序取出数据(指令),并把这个数据看成是逻辑电路的“输入”【取指】,于出就产生出一组“输出”【执行】,也就是“取指”与“执行”。
做完一组再取下一组,永远不息直至掉电(没有休眠,休眠可以看作是时钟频率=0,实际上也是这么做的:休眠是切断了时钟通道)。
所谓【编程】:就是将特定的、有目的代码(可以认为是数据、可以认为是指令、其实就是0101……这样一串串的字节)有序放在CPU要取指的路径上(对于51单片机来说,就是从0000H单元开始的程序区),让CPU一条一条的取指执行。
用任何语言写的程序,最终都会被编译平台(如:KELL)翻译成这样的代码,放入(以51为例)从0000H开始的存储区中。
明白这个道理,就会知道:C语言为何必须要知道是采用的什么芯片了,实际就是告诉平台,让它按照用什么指令,放在什么地方。(不同的类型的单片机,指令系统可能不同,程序的也可能起点不同。)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:149451 发表于 2019-1-26 10:10 | 显示全部楼层
坐地板上听课..................
回复

使用道具 举报

ID:471066 发表于 2019-1-26 12:35 | 显示全部楼层
你对单片机还处在一种入门级的认识中,当你后面接触更多的类型的单位片机,你的认识就会加深。如果认大家现在就给你定一个认识标准都 是不合理的。因为大家学的用的单片机各不相同,光论坛里就的51,PIC,AVR,
STM.不在上面的有合泰,义隆,松翰,NEC等等。每家都有自身的特点

评分

参与人数 2黑币 +30 收起 理由
Sawardeakar + 15 很给力!
shuisheng + 15 赞一个!

查看全部评分

回复

使用道具 举报

ID:96682 发表于 2019-1-26 15:53 | 显示全部楼层
楼主说的这货属于网友们说的“上古时期”产物,成本低但电路复杂且还需自制,关键是没点基础还真的玩不转
能把玩的也就早期几款芯片有点鸡肋,真是实力派看不上而土豪金又不屑一顾的物色
缺的是有意愿又有动手能力的玩家

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-26 16:46 | 显示全部楼层
yzwzfyz 发表于 2019-1-26 08:55
六不搭对!
计算机含单片机,是由众多的逻辑电路构成,
逻辑电路是:对应于一组输入就产生一组输出(狭义 ...

“用任何语言写的程序,最终都会被编译平台(如:KELL)翻译成这样的代码,放入(以51为例)从0000H开始的存储区中。”----------也就是说单片机只能识别0和1呀!这不就完了吗?我就是要用0和1和它对话。
回复

使用道具 举报

ID:96682 发表于 2019-1-26 18:25 | 显示全部楼层
海阔天空8 发表于 2019-1-26 16:46
“用任何语言写的程序,最终都会被编译平台(如:KELL)翻译成这样的代码,放入(以51为例)从0000H开始 ...

看样子楼主已有更好更新解决途径和办法了,能不能和大伙们分享一下
回复

使用道具 举报

ID:155507 发表于 2019-1-26 23:20 | 显示全部楼层
海阔天空8 发表于 2019-1-26 16:46
“用任何语言写的程序,最终都会被编译平台(如:KELL)翻译成这样的代码,放入(以51为例)从0000H开始 ...

        这程序翻译成这样的代码用0和1 你能识别用什么指令吗?
        0b01110101, 0b10110000, 0b00000000,
        0x01111001, 0b11111111,
        0b01111000, 0b11111111,
        0b11011000, 0b11111110,
        0b11011001, 0b11111100,
        0b01110101, 0b10110000, 0b00000001,
        0x01111001, 0b11111111,
        0b01111000, 0b11111111,
        0b11011000, 0b11111110,
        0b11011001, 0b11111100,
        0b10000000, 0b11101000
       


汇编语言编程


start:  mov   0xb0, #0x00     ; //I/O P3.0 口特殊功能寄存器
l1:     mov   r1, #0xff       ;   延时程序 ;向R1寄存器中载入十六进制数FFH
        mov   r0, #0xff        ;向R0寄存器中载入十六进制数FFH
l2:     djnz  r0, l2
        djnz  r1, l1
        mov   0xb0, #0x01
l3:     mov   r1, #0xff       ;   延时程序 ;向R1寄存器中载入十六进制数FFH      
        mov   r0, #0xff        ;向R0寄存器中载入十六进制数FFH
l4:     djnz  r0, l4
        djnz  r1, l3
        sjmp  start    ;/ 跳start执行循环体





对应的汇编程序翻译成这样的代码
    0x75, 0xb0, 0x00, // mov 0xb0, 0x00
    0x79, 0xff,       // mov r1, 0x10
    0x78, 0xff,       // mov r0, 0xff
    0xd8, 0xfe,       // djnz r0, -2
    0xd9, 0xfc,       // djnz r1, -4
    0x75, 0xb0, 0x01, // mov  0xb0, 0x01
    0x79, 0xff,       // mov r1, 0x10
    0x78, 0xff,       // mov r0, 0xff
    0xd8, 0xfe,       // djnz r0, -2
    0xd9, 0xfc,       // djnz r1, -4   
    0x80, 0xe8,       // sjmp   -24

评分

参与人数 1黑币 +100 收起 理由
admin + 100 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-27 10:50 | 显示全部楼层
angmall 发表于 2019-1-26 23:20
这程序翻译成这样的代码用0和1 你能识别用什么指令吗?
        0b01110101, 0b10110000, 0b00000000,
        0x011 ...

我不懂
回复

使用道具 举报

ID:460466 发表于 2019-1-27 10:53 | 显示全部楼层
wc86110 发表于 2019-1-26 18:25
看样子楼主已有更好更新解决途径和办法了,能不能和大伙们分享一下

我理解这就是用0和1与单片机对话的办法,可是我不懂:
编程步骤.jpg
回复

使用道具 举报

ID:96682 发表于 2019-1-27 13:44 | 显示全部楼层
海阔天空8 发表于 2019-1-27 10:53
我理解这就是用0和1与单片机对话的办法,可是我不懂:

被楼主整成小白了
回复

使用道具 举报

ID:473159 发表于 2019-1-27 18:20 | 显示全部楼层
wc86110 发表于 2019-1-27 13:44
被楼主整成小白了

同一个不想下水的人谈游泳就是扯!

评分

参与人数 8黑币 +148 收起 理由
zhengchong60 + 12
sheng7533967 + 12
钻牛尖滴刘尖尖 + 12
站着说话不腰疼 + 12
Trump1438 + 15
shuisheng60 + 35
shuisheng + 15 赞一个!
jinsheng7533967 + 35 很给力!

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-28 19:05 | 显示全部楼层
yoxi 发表于 2019-1-27 18:20
同一个不想下水的人谈游泳就是扯!

不对!单片机就得先下水,你们都上岸了,忘了水下了。^_^,,,,,,,,,,,
回复

使用道具 举报

ID:472242 发表于 2019-1-28 21:43 | 显示全部楼层
下什么水了、你去看数模电路教程,单片机教程,C语言教程了么......?整天的在那里纠结对单片机的理解。

评分

参与人数 4黑币 +97 收起 理由
areyouok + 35
yoxi + 15
Sawardeakar + 35 淡定
Trump1438 + 12

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-29 08:54 | 显示全部楼层
shuisheng60 发表于 2019-1-28 21:43
下什么水了、你去看数模电路教程,单片机教程,C语言教程了么......?整天的在那里纠结对单片机的理解。

怎么就没遇到一位能讲明白硬件如何接线的呢!什么C语言?C语言不也是单片机出现以后才有的吗?没有C语言单片机就不能动了吗?
回复

使用道具 举报

ID:472242 发表于 2019-1-29 17:35 | 显示全部楼层
接线去看模电数电。C语言真不是单片机出现以后才有!你有这功夫用在该用的地方。

评分

参与人数 8黑币 +192 收起 理由
shuisheng + 35
刀刀见红 + 10
sheng7533967 + 12
Trump1438 + 15
#include51.h + 15
Sawardeakar + 35
areyouok + 35 批评的很对!
jinsheng7533967 + 35 很给力!

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-29 18:14 | 显示全部楼层
shuisheng60 发表于 2019-1-29 17:35
接线去看模电数电。C语言真不是单片机出现以后才有!你有这功夫用在该用的地方。

C语言真不是单片机出现以后才有!那C语言在单片机之前是干什么的?
回复

使用道具 举报

ID:155507 发表于 2019-1-29 20:17 | 显示全部楼层
海阔天空8 发表于 2019-1-29 18:14
C语言真不是单片机出现以后才有!那C语言在单片机之前是干什么的?

C语言在单片机之前是编程大型计算机的.

评分

参与人数 1黑币 +35 收起 理由
jinsheng7533967 + 35 很给力!

查看全部评分

回复

使用道具 举报

ID:460466 发表于 2019-1-29 21:45 | 显示全部楼层
angmall 发表于 2019-1-29 20:17
C语言在单片机之前是编程大型计算机的.

还是先有计算机呀
回复

使用道具 举报

ID:155507 发表于 2019-1-30 07:27 来自手机 | 显示全部楼层
海阔天空8 发表于 2019-1-29 21:45
还是先有计算机呀

沒有人之前,还有谁会说人话。

评分

参与人数 1黑币 +4 收起 理由
就你**** + 4 这也是人说的话?

查看全部评分

回复

使用道具 举报

ID:466578 发表于 2019-1-30 09:24 | 显示全部楼层
海阔天空8 发表于 2019-1-26 16:46
“用任何语言写的程序,最终都会被编译平台(如:KELL)翻译成这样的代码,放入(以51为例)从0000H开始 ...

曾经,我遇见一个奇人,小学都没毕业,凭着自己对单片机的爱好执着,写程序只用机器码(16进制)就搞定,一般51单片机的烧录文件(bin文件),不用反汇编,直接在bin文件上修改代码添加功能.看来这位兄台想走这条路了,加油
回复

使用道具 举报

ID:111634 发表于 2019-1-30 12:04 | 显示全部楼层
钻牛角尖!若你是个聪明人,钻钻也罢!若你不是个聪明人,就是浪费时间!
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:07 | 显示全部楼层
本帖最后由 海阔天空8 于 2019-1-30 15:31 编辑
angmall 发表于 2019-1-30 07:27
沒有人之前,还有谁会说人话。

您说得没错!有人之后才有得人话,很多不同种类的话,C语言也差不多是这个意思,但C语言绝不是唯一的和计算机对话的语言,,,,,,,,我的办法更直观:就像手指着一个苹果说“苹果”(中文),APPLE(外文),XXXX(他国文字),,,“苹果”也好,“APPLE”也好,“XXXX”也好都是和嘴对话(吃)的!^_^,,,,,,,,,,,
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:10 | 显示全部楼层
佛云 发表于 2019-1-30 09:24
曾经,我遇见一个奇人,小学都没毕业,凭着自己对单片机的爱好执着,写程序只用机器码(16进制)就搞定,一般51 ...

您说的大概就是这个意思吧!我时间不多了,不学什么C语言了,就想用0和1(电位的H,L)对单片机的引脚进行交流,,,,,,,,
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:11 | 显示全部楼层
zl2168 发表于 2019-1-30 12:04
钻牛角尖!若你是个聪明人,钻钻也罢!若你不是个聪明人,就是浪费时间!

^_^,我现在有的就是时间!希望有高人把话说明白(哪跟哪接不就完了吗?绕不完的圈子还真是浪费时间!)
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:24 | 显示全部楼层
yzwzfyz 发表于 2019-1-26 08:55
六不搭对!
计算机含单片机,是由众多的逻辑电路构成,
逻辑电路是:对应于一组输入就产生一组输出(狭义 ...

您说得太专业!还是听不懂。谢谢,真的谢谢。
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:40 | 显示全部楼层
yzwzfyz 发表于 2019-1-26 08:55
六不搭对!
计算机含单片机,是由众多的逻辑电路构成,
逻辑电路是:对应于一组输入就产生一组输出(狭义 ...

我承认我对基础知识一知半解(半解也不到),逻辑电路还有时序逻辑电路吧?好像是“对应一组输入不一定有一组输出”?是这个意思吗?您下面的我一点也不懂了,,,,,,
回复

使用道具 举报

ID:460466 发表于 2019-1-30 15:44 | 显示全部楼层
shuisheng60 发表于 2019-1-28 21:43
下什么水了、你去看数模电路教程,单片机教程,C语言教程了么......?整天的在那里纠结对单片机的理解。

我就是想用0和1于单片机对话。在一定的各引脚设置成特定电位状态下,向哪些引脚加上什么电位,怎么写入0和1的问题,,,,,,,,,,
回复

使用道具 举报

ID:155507 发表于 2019-1-30 16:57 | 显示全部楼层

因为人们不懂用机器语言0和1代码和它(计算机)对话,所以使用了汇编语言, c语言 来编程
你要用0和1和它对话。你就要懂机器语言用0和1的代码。
回复

使用道具 举报

ID:429805 发表于 2019-1-30 21:05 | 显示全部楼层
对单片机还处在一种入门级的认识中,当你后面接触更多的类型的单位片机,你的认识就会加深。如果认大家现在就给你定一个认识标准都 是不合理的。加油!
回复

使用道具 举报

ID:474232 发表于 2019-1-30 22:12 | 显示全部楼层
本帖最后由 钻牛尖滴刘尖尖 于 2019-1-31 05:03 编辑

努力!努力!再努力!努力........地钻下去!
回复

使用道具 举报

ID:472268 发表于 2019-1-30 22:24 | 显示全部楼层
围观围观,靖彩的独角戏!戏别停!
回复

使用道具 举报

ID:474670 发表于 2019-2-18 23:17 | 显示全部楼层
这是关于二进制的好话题,续继..................
回复

使用道具 举报

ID:280876 发表于 2019-2-22 19:56 | 显示全部楼层
兄弟,建议多看看相关的书再学单片机吧
回复

使用道具 举报

ID:477932 发表于 2019-2-22 23:48 | 显示全部楼层
wushiye54 发表于 2019-2-22 19:56
兄弟,建议多看看相关的书再学单片机吧

楼主只是感兴趣,在家维修个家电,有经济来源,单片机完全是好玩而己,劝多了也皮了。
回复

使用道具 举报

ID:460466 发表于 2019-2-23 21:53 | 显示全部楼层
static 发表于 2019-2-22 23:48
楼主只是感兴趣,在家维修个家电,有经济来源,单片机完全是好玩而己,劝多了也皮了。

为什么不少人都把单片机神秘化了?包括写书的!怎么就不会说明白话呢?小孩子都能玩单片机,大人们却说不了明白话!?
回复

使用道具 举报

ID:96682 发表于 2019-2-24 03:56 | 显示全部楼层
海阔天空8 发表于 2019-2-23 21:53
为什么不少人都把单片机神秘化了?包括写书的!怎么就不会说明白话呢?小孩子都能玩单片机,大人们却说不 ...

楼主抱怨啥呢,做个换颅手术不就能秒懂了么
回复

使用道具 举报

ID:460466 发表于 2019-2-24 08:38 | 显示全部楼层
static 发表于 2019-2-22 23:48
楼主只是感兴趣,在家维修个家电,有经济来源,单片机完全是好玩而己,劝多了也皮了。

懂不懂与我没什么实际意义了。算精神生活的组成吧。矛盾之所以存在主要是双方没有“交集”,我问我的你答你的距离较远,还会产生误解,确有隔靴搔痒之感,,,,,,,,,,,,,

评分

参与人数 2黑币 +12 收起 理由
春风十里吹 + 8 说的很透明了
yoxi + 4 天天蹭热度讲废话!找.....

查看全部评分

回复

使用道具 举报

ID:469932 发表于 2019-2-24 17:37 | 显示全部楼层
海阔天空8 发表于 2019-2-23 21:53
为什么不少人都把单片机神秘化了?包括写书的!怎么就不会说明白话呢?小孩子都能玩单片机,大人们却说不 ...

跟不下水的人谈水就是扯呗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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