单片机编程入门里seg是什么

周热销排行
用户评论(1)
在此可输入您对该资料的评论~
添加成功至
资料评价:8051单片机模块化编程技巧
查看: 1255|
摘要:   目前在8051 单片机应用开发中主要有两种编程语言:汇编语言和C51 语言。C51 语言是一种结构化的编程语言,采用C51 编写的应用程序结构清晰、模块化程度高、可读性强、并容易移植。但C51 语言也有缺点,就是编译 ...
  目前在8051 应用开发中主要有两种编程语言:和C51 语言。C51 语言是一种结构化的编程语言,采用C51 编写的应用程序结构清晰、模块化程度高、可读性强、并容易移植。但C51 语言也有缺点,就是编译后生成的目标代码空间要比汇编的大。
  而且目前单片机的教材还是侧重于汇编语言。因此学习用单片机汇编语言程序进行结构化设计还是很有必要的。我们知道C51 语言是函数式语言,其程序由函数构成,每一个源程序有且只有一个主函数main() 和若干个函数组成。其中每一个函数都用于完成某一特定任务。也就是说,一个项目若具有几个功能,实现这些功能就会需要由若干个任务来完成,那么它的源程序中就会有若干个或以上的函数。而在汇编语言中,源程序中只有程序和子程序。那么我们能否以子程序为基本单位,用一个子程序实现一种功能来做到模块化编程呢?实践证明是可行的。但在编制程序中不要忘记汇编语言的特点,注意子程序之间对单片机资源的使用,避免不同子程序交叉共用同一资源引起程序的错误执行。子程序嵌套调用的级数等。本文以“60秒倒计时电路”为例谈一谈51 单片机汇编语言模块化编程的一点技巧。
  一、60秒倒计时电路及编程
  1. 功能要求
  所谓倒计时,就是首先给定一个初始值,然后对初始值进行减“1”操作,直到该值为“0”为止。60 秒倒计时就是对给定的初始值“60”每隔1 秒钟对其进行减“1”,一直减到该值为“0”为止。
  该倒计时电路要求有两个按钮。一个是“复位”按钮,按下按钮设置倒计时初始值,并把指示灯熄灭;另一个是“开始”按钮,按下按钮开始倒计时。并用两位LED 数码管显示当前倒计时值。计时时间到,指示灯点亮。
  2. 电路组成
  实现上述功能要求的单片机接口电路如图1 所示。
图1&单片机接口电路&
  图中用按钮SB1 作为“置初值”按钮,按钮SB2 作为“开始”按钮。按下SB1 按钮,将显示值设置为“60”。
  按下按钮SB2,每隔一秒显示值减“1”,直到值为“0”
  停止计数。按钮和指示灯接在P0 口上,P0.0 为初始按钮,P0.1 为开始按钮,P0.7 为指示灯。十位LED 数码管接P2 口,个位LED 数码管接P1 口。图2 为单片机基本系统电路。
图2 单片机基本系统电路
  3. 功能分析
  根据60 秒倒计时的功能要求,需要单片机完成以下任务:
  ⑴ 按键扫描。用来判断有没有键被按下,是哪个键被按下?根据不同的键,给出相应的键值。
  ⑵ 计时显示。这里时间值使用的是两位数,故需要将被显示的时间值取出个位数和十位数,然后才能进行显示。
  ⑶ 被显示数转换成7 段码。由于单片机中的数据都是以二进制形式存放或运算的。而这里输出显示使用了两位LED 数码管来显示计时数值的,一个被显示的数要点亮数码管的某几段才能显示出这个数,不同的数需要点亮数码管的不同段。因此需要将被显示的这个数转换成相应的显示段码,才能被正确显示出来。
  ⑷ 延时。包括1秒钟延时和按键消抖的10毫秒延时。
  ⒋ 程序编制
  程序按实现功能采用模块化结构,有一个主程序和若干个子程序组成。每个子程序分别是完成某个任务的独立模块,有时会用到调用参数。本实例共有5 个子程序,分别是按键扫描子程序、10ms 延时子程序、1s 延时子程序、显示子程序、取段码子程序。
  ⑴ 按键扫描子程序
  按键扫描子程序完成对按键进行扫描,确定有没有键被按下,当有键被按下并抬起后将相关键值返回给主程序的任务。其流程如图3 所示。该子程序没有入口参数,但有一个出口参数,即按键的键值,存放在寄存器R3 中。寄存器R3 中的值为“60H”表示SB1 键被按下;寄存器R3 中的值为“00H”表示SB2 键被按下。
图3 按键扫描子程序流程图
  按照图3 的流程图和51 单片机的指令系统编制的子程序如下:
  ;----------- 按键扫描描--------------
  ; 出口参数键值存放在寄存器R3 中,用于识别哪个键。
  ;R3=60H, 说明SB1 被按下;R3=00H, 说明SB2 被按下
  key_scan: jnb kb_init, k1 SB1 按下转移
  jnb kb_begin, k2 SB2 按下转移
  k1check: acall del10 ; 调用毫秒延时,去抖
  jb kb_init, 干扰,返回
  jnb kb_init,$ ; 等待按键释放
  mov r3, #60h; 是SB1,键值“60H”送寄存器R3
   是,不进行任何操作返回
  k2check: acall del10 ; 调用毫秒延时,去抖
  jb kb_begin, 干扰,返回
  jnb kb_begin,$ ; 等待按键释放
  mov r3, #00h; 是SB2,键值“00H”送寄存器R3
  ksr: 返回
  ;---------------------------------
  ⑵ 显示子程序
  显示子程序完成从被显示值中取出十位数将其转换成显示断码,并送单片机的P2 口;从被显示值中取出个位数将其转换成显示断码,并送单片机的P1 口任务。其流程如图4 所示。该子程序有一个入口参数,即被显示的值,存放在寄存器R2 中。
图4 显示子程序流程图
  按照图4 的流程图和51 单片机的指令系统编制的子程序如下:
  ;------------ 显示子程序------------
  ; 入口参数存放在寄存器R2 中
  display:mov a, r2 ; 取被显示值
  mov b, #10; 取被显示值的十位数
  acall seg7; 调用转换子程序,取显示断码
  mov p2, 十位数段码送P2 口
  mov a, 取个位数
  acall seg7 ; 调用转换子程序,取显示断码
  mov p1, 个位数段码送P1 口
  ;---------------------------------
  ⑶ 取段码子程序
  取段码子程序完成将被显示的数转换成7 段共阳LED 数码管对应数的段码的任务。其流程如图5 所示。
图5 取段码子程序流程图
  该子程序有一个入口参数和一个出口参数。入口参数就是被显示的数,出口参数就是该数的段码(相应位=0表示亮),都存放在累加器A 中。
  按照图5 的流程图和51 单片机的指令系统编制的子程序如下:
  ;-------------- 取段码--------------
  ; 对累计器A 中的值由查表得到显示断码
  ; 入口和出口参数存放在累计器A 中
  seg7: 取被显示数,累加器A 加1
  movc a, @a+ 查表
  db 0c0h,0f9h,0a4h,0b0h;0123
  db 99h,92h,82h,0f8h;4567
  db 80h,90h,88h,83h;89AB
  db 0c6h,0a1h,86h,8cdEF
  ;---------------------------------
  ⑷ 延时子程序
  延时子程序完成一定的延时时间任务。这里有两个延时时间不同的子程序(也可以调用100 次10mS 做1S 延迟),其流程如图6 所示。延时子程序没有入口和出口参数。
图6 延时子程序流程图
  按照图6 的流程图和51 单片机的指令系统编制的子程序如下;
  ;----------- 延时10ms 程序----------
  ; 用到寄存器组1 中的R6 和R7 寄存器
  del10: setb psw.3 ; 切换至第1 组寄存器
  mov r7, #0
  dl1: mov r6, #0
  dl2: djnz r6, dl2 ;
  djnz r7, dl1;
  clr psw.3 ; 切换至第0 组寄存器
  ;---------------------------------
  ;------------- 延时1s 程序-----------
  ; 用到寄存器组1 中的R1、R2 和R3 寄存器
  del1s: setb psw.3 ; 选用寄存器区1
  mov r1 , #46; 立即数46 送寄存器R1
  del0: mov r2 , #100; 立即数100 送寄存器R2
  del1: mov r3 , #100 ; 立即数100 送寄存器R3
  djnz r3 , $ ; 寄存器R3 中的内容减1,不为零转移到当
  前指令
  djnz r2 , del1; 寄存器R2 中的内容减1,不为零转移到
  djnz r1 , del0; 寄存器R1 中的内容减1,不为零转移到
  clr psw.3 ; 选用寄存器区0
   子程序返回
  ;---------------------------------
  ⑸ 主程序编制
  主程序需要实现的功能是:完成单片机端口定义;初始化任务;调用键扫描子程序,根据按键状态实现置初值或进行倒计时,并调用显示子程序等。其流程如图7 所示。
图7 主程序编制流程图
  按照图7 的流程图和51 单片机的指令系统、以上编制的各子程序,主程序如下:
  ;**********************************************************
  ; 文件名:counter.asm 功能:60 秒倒计时
  ; 说明:p2 和p1 口分别接一个LED 数码管, 显示两位
  十进制数。
  ; p0.0 和p0.1 口接置初值按钮和开始倒计时按钮,p0.7
  接提示LED。
  ; 晶振频率11.0592MHz.
  ;**********************************************************
  ;------------ 端口定义--------------
  kb_init bit p0.0 ; 置初值按钮定义
  kb_begin bit p0.1 ; 开始按钮定义
  warn bit p0.7 ; 提示
  ;---------------------------------
  org 0000h
  ajmp begin
  ;============ 主程序===============
  org 00b0h
  begin:
  mov sp, #50 初始化
  mov p0, #0ffh
  mov p1, #0ffh
  mov p2, #0ffh
  mov r2, #60
  mov r3, #0ffh
  lcall key_ 按扫描键
  mov a, r3 ; 取返回值
  cjne a, #60h, lp1 ; 非SB1 按键转移
  mov r2, #60 ; 初值送寄存器R2
  setb p0.7 ; 清指示灯
   调显示子程序
  lp1: mov a, r3 ; 取返回值
  cjne a, #00h, 非SB2 按键转移
  setb p0.7
  mov r2, #60
  lp2: acall display
  acall del1 调用1 秒延时子程序
  dec r2
  cjne r2, #00h,lp2
  acall display
  clr p0.7
  mov r3, #0ffh
  ajmp main
  ;=================================
  二、Keil C 中编译
  1. 新建项目
  打开“Keil C”软件,新建一个项目。项目名也不妨为“counter”。
  点击桌面上的图标 ,进入Keil C51 μVision2集成开发环境。在主界面上点下拉菜单“Project”,选“New Project?”命令。在弹出的对话框中将项目命名为“counter”。点“保存”按钮,选“Atmel”下的“AT89S52”后返回。
  2. 添加源程序
  打开已建立的文件“counter.asm”;并将该文件添加到“Source Group 1”中。
  在μVision2 主界面上点击打开文件按钮 ,在弹出的对话框内找到刚才新建并保存的文件“counter.asm”。点“打开”按钮打开。
  在中间左边的“项目空间(Project Workspace)”内,点击“+”展开。再用右键点击“Source Group 1”文件夹,在弹出的菜单命令中选“Add Files to group‘Source Group 1’”。
  3. 参数设置
  在“Options for Target‘ Target 1’”中的“Output”标签页上进行设置。
  点下拉菜单“Project”, 选“Options for Target‘Target 1’”。在弹出对话框上的“Target”标签页内,把单片机的运行频率调整为11.0592MHz。在“Output”标签页上,点“Create HEX File”前的复选框,使其内出现“√”,这样编译后就能生成目标文件了。点“确定”按钮返回。
  4. 程序编译
  点编译和建立目标文件,得到“counter.hex”文件。
  在μVision2 主界面上点重新编译按钮,对源程序文件进行编译,结果如图8 所示。
  三、Preteus仿真
  ISIS 仿真图如图9 所示。设置CPU:89C51 的特性,加载counter.HEX 代码加载,运行仿真。将光标移至按钮SB1,使光标变成一只“手”时,点击鼠标左键,使按钮按下。按钮释放后,数码管显示值加“60”,如图9 所示。启动倒计时。将光标移至按钮SB2,使光标变成一只“手”时,点击鼠标左键,使按钮按下。按钮释放后倒计时开始。原文来自www.dqjsw.com.cn
图9ISIS 仿真图
  四、基本系统上运行
  用单片机基本系统板来验证程序,首先准备好实验用器材基本系统板、下载器、和万能板及所需。然后按下面步骤进行操作。
  ⒈在应用实验板上按图1 焊接好电阻、、数码管和接插件、按钮等。
  ⒉拔去最小系统板上的跳线J101、J102、J103,插上AT89S52 芯片。将下载线的接口板插入的并口上,连接电缆把最小系统与接口板连好,再在最小系统上接上电源。如图10 所示。
  ⒊打开下载软件,并设置好有关参数;加载待写文件“counter.hex”;点“编程”按钮下载程序。必要时须先对芯片进行“擦写”( 若该芯片中曾烧录过程序)。
  ⒋完成上面的操作后,关闭电源,拔下连接电缆,插上跳线J101,接上实验电路。
  ⒌上电验证程序,按下按键SB1 置初值,按下按键SB2 开始倒计时。若不符合要求则进行修改(可以先在μVision2 进行调试或Proteus 中仿真)。
  ⒍重复上述步骤直到实现要求的功能。
  五、结束语
  用汇编语言编制应用程序时虽然要考虑单片机的硬件资源的分配,且实现相同功能时的语句可能比C51 编程更多,汇编的模块按结构化编程,同样也能编制出结构清晰、功能明确、可读性强、的应用程序。
上一篇:下一篇:
看过《8051单片机模块化编程技巧》的人还看了以下文章:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:在数码管动态显示里面有一句是unsigned char code
seg[]={0,1,2,3,... - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
在数码管动态显示里面有一句是unsigned char code
seg[]={0,1,2,3,...
10:38:03  
在数码管动态显示里面有一句是unsigned char code&&seg[]={0,1,2,3,4,5,6,7},我想问0,1,2,3,4,5,6,7代表什么,同时为什么又会是这几个数字去表示,是怎么来的,感谢各位帮忙回答,谢谢!
11:47:43  
动态显示里有段码,还有位选,你看看程序
15:17:06  
icewu521 发表于
动态显示里有段码,还有位选,你看看程序
这个我知道,但是主要是0,1,2这些是怎么来的,为什么不用16进制表示?
15:58:05  
你这行代码是显示段选还是位选的???
助理工程师
17:34:19  
要整个程序地去看
13:03:35  
Anennzxq 发表于
你这行代码是显示段选还是位选的???
13:08:54  
CrazyMCU 发表于
要整个程序地去看
首先定义的是unsigned char const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值
然后在定义unsigned char code&&seg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮,即位码&&
& &在dofly[]里面代表的是数码管显示0-7,而数组里面每个元素都是16进制,而seg[]里面则用十进制表示0-7,假设将0-7用和dofly[]数组的方式表示也就是16进制,就是将0-7转化为16进制,那么而只会显示八位数码管的后4位,即所以我想问0-7是如何去表示的,而0-7能否在转化为16进制来表示??
而在后面&&P0=dofly;//取显示数据,段码
& & P2=seg;&&//取位码
& && &seg表示的是每个数码管的位码,而dofly[]则表示每个数码管里面显示的数。
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司早在2016年11月,经过3GPP RAN1 87次会议讨论,华为主推……
各行业芯片自主问题备受关注。然而,谁知被冠以“中国特……
日的谷歌I/O大会已经召开完毕,颇具戏剧性的是……
多年前,日本电产新建总公司大楼,日本电产的永守重信董……
物联网、智能硬件、汽车电子、工业4.0等的发展,给传感器……
演讲人:卢柱强时间: 10:00:00
演讲人:曾伟权时间: 10:00:00
演讲人:黄科涛时间: 10:00:00
预算:¥20000预算:¥15000
广东省上海市
单片机常用接口电路及其编程
[导读]在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器引入:还记得我们小时候玩的&火柴棒游戏&吗,几根
在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。本文引用地址:
八段LED显示器
引入:还记得我们小时候玩的&火柴棒游戏&吗,几根火柴棒组合起来,可以拼成各种各样的图形,LED显示器实际上也是这么一个东西。
八段LED显示器由8个发光二极管组成。基中7个长条形的发光管排列成&日&字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如下图所示。`
共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字形代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示&P&字符,即对于共阴极LED显示器,&P&字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示&P&字符的字形代码应为CH)。这里必须注意的是:很多产品为方便接线,常不按规则的方法去对应字段与位的关系,这时字形码就必须根据接线来自行设计了,后面我们会给出一个例子。
静态显示接口
在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。
MCS-51单片机串行口方式押为移们寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,公一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1&Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hg---a各段对应的引脚上。关于74LS164还可以作如下的介绍:所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,不管这个脉冲是怎么来的,比如,我们用根电线,一端接T,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在74LS164获得时钟脉冲的瞬间(再讲清楚点,是在脉冲的沿),如果数据输入端(第1,2引脚)是高电平,则就会有一个1进入到74LS164的内部,如果数据输入端是低电平,则就会有一个0进入其内部。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一个人,前面必须要从前面走出去一个人才行。
搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74LS164中。有个问题,在第一个脉冲到来时,除了第一片74LS164中接收数据外,其他各片在干吗呢?它们也在接收数据,因为它们的时钟端都是被接在一起的,可是数据还没有送到其他各片呢,它们在接收什么数据呢?。。。。。。其实所谓数据不过是一种说法而已,实际就是电平的高低,当第一个脉冲到来时,第一片164固然是从单片机接收数据了,而其它各片也接到前一片的Q8上,而Q8是一根电线,在数字电路中它只可能有两种状态:低电平或高电平,也就是&0&和&1&。所以它的下一片74LS164也相当于是在接收数据啊。只是接收的全部是0或1而已。这个问题放在这儿说明,可能有朋友不屑一顾,而有的朋友可能还是不清楚,这实际上涉及到数的本质的问题,如果不懂的,请仔细思考,并找一些数字电路的数,理解164的工作原理,再来看这个问题,或者去看看我的另一篇文章《初学单片机易掌握的概念》。务必搞懂,搞懂了这一点,你的级别就高过初学者,可谓入门者了。
入口:把要显示的数分别放在显示缓冲区60H-65H共6个单元中,并且分别对应各个数码管LED0-LED5。
出口:将预置在显示缓冲区中的6个数成相应的显示字形码,然后输出到显示器中显示。
显示程序如下:
DISP: MOV SCON,#00H ;初始化串行口方式0
MOV R1,#06H ;显示6位数
MOV R0,#65H ;60H-65H为显示缓冲区
MOV DPTR,#SEGTAB ;字形表的入口地址
MOV A,@R0 ;取最高位的待显示数据
MOVC A,@A+DPTR ;查表获取字形码
MOV SBUF,A ;送串口显示
DELAY: JNB TI,DELAY ;等待发送完毕
CLR TI ;清发送标志
DEC R0 ;指针下移一位,准备取下一个待显示数
DJNZ R1,LOOP ;直到6个数据全显示完。
SETTAB: ;字形表,前面有介绍,以后我们再介绍字形表的制作。
DB 03H 9FH 27H 0DH 99H 49H 41H 1FH 01H 09H 0FFH
; #9; 0 1 2 3 4 5 6 7 8 9 消隐码
测试用主程序
AJMP START
START: MOV SP,#6FH
MOV 65H,#0
MOV 64H,#1
MOV 63H,#2
MOV 62H,#3
MOV 61H,#4
MOV 60H,#5
LCALL DISP
如果按图示数码管排列,则以上主程序将显示的是543210,想想看,如果要显示012345该怎样送数?
下面我们来分析一下字形表的制作问题。先就上述&标准&的图形来看吧。写出数据位和字形的对应关系并列一个表如下(设为共阳型,也就是相应的输出位为0时笔段亮)
如何,字形表会做了吧,就是这样列个表格,根据要求(0亮或1亮)写出相应位的0和1,就成了。做个练习,写出A-F的字形码吧。
如果为了接线方便而打乱了接线的顺序,那么字形表又该如何接呢?也很简单,一样地列表啊。以新实验板为例,共阳型。接线如下:
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
C E H D G F A B
则字形码如下所示:
作为练习,大家写出A-F的字形代码。
本来这里是讲解显示器的静态接口的,到此应当可算结束了,但是我还想接着上面讲到的数的本质的问题再谈一点。单片机中有一些术语、名词本来是帮助我们理解事物的,但有时我们会被这些术语的相关语义所迷惑,以致不能进一步认清他们的本质,由此往往陷入困惑的境界。只有深入地了解了74LS164的工作特性,才能真正理解何谓串行的数据。有兴趣的朋友还可以再看看我网站上&其他资料&中的&银行利率屏的设计&一文。
软件开发是一个动态的领域。新的编程语言、框架和技术陆续出现,流行,然后消失。开发者需要不断学习新技能,掌握企业发展所需要的新技术。......关键字:
我编程的时间,已超过 20 年了。截至目前,我开的编程入门课,也有六七门了。传授编程的总时间,大约也有 1000 小时了。下面这些话,没有特别的前后顺序,我对自己学员不止说过一次。......关键字:
在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情!成为优秀的程序员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料。但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段。......关键字:
老实说,我在 20 岁时可没打算这样。我编程就是为了挣钱。只要编程还能挣钱,我就愿意一直这样挣下去,差不多就是这样。......关键字:
你觉得最好的,并不一定适合所有人。同样的,语言也一样。在某种特定的问题之下,咱们得说解决什么问题。你解决驱动的问题,你只能是会汇编和 C 语言,你解决后台的问题用汇编肯定就不合适了。相当于拿一个小剃刀盖一栋大楼房。不合适。所以没有最好的语言......关键字:
我 要 评 论
热门关键词单片机编程中pragma data: code什么意思
单片机编程中pragma data: code什么意思
08-09-11 &匿名提问

我要回帖

更多关于 单片机编程用什么语言 的文章

 

随机推荐