单片机编程!!

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-30
单片机编程

我给你一个用0804做的吧,程序和protues仿真都有,你看行不?

锁存器中的锁存是指我们可以通过控制锁存器的锁存端与输入端的数据状态来决定输出状态。
位锁存是指控制哪个数码管;段锁存是指让受控数码管显示什么数字。
例子中:P0=0xFe是指控制P0.0所接数码管;然后P0=0x4F是让此数码管显示“3”

很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。

先说说单片机,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编MCS-51单片机应用设计》,是哈尔滨工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。

有了单片机学习板之后你就要多练习,最好是自己有台电脑,一天少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干二净,是不是?你学到什么了?但是我告诉你单片机一旦学会,永远不会忘了。另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用C语言编单片机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。

总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事。

步骤:1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出书的。(三天)

2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书。 (二十天)

3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。 (十天)

4.自己完全设计具有个人风格的电路,产品,。。。你已经是高手了。 。。。。

看到了吗?下功夫一个多月你就能成为高手,我就讲这么多了,学不学得会,下不下得了功夫就看你的了。

一般的单片机都支持c编程
从一定意义上说
c比汇编要实用一些
特别是大的程序
用汇编很难完成
虽然c的代码比汇编可能复杂一点
但完全不影响使用
所以
如果你想从事单片机的话
c是必要的
你可以去www.avrw.com综合电子论坛看看
这里面的资料很多

8051系列的单片机 肯定可以用C编程

但是最原始的都是用汇编,编译器的作用可以把C语言翻译成汇编。

每一条汇编指令在编译时都把它变成了二进制代码,毕竟单片机和
电脑都是只认二进制的啊。

可以用C语言,你下一个keil c ,那是专门为C语言设计用来单片机编程的,不过刚开始建议用汇编,高手都是从汇编开始的

我觉得吧,单片机不能用高级语言编程
只是随便说说,没根据的,哈哈

可以啊
不过c后也还得转变成汇编,再成机器代码是2进制的

  • 单片机中==是什么意思
    答:在单片机编程中,使用==符号是用来进行相等判断的。其原理是比较运算符左边和右边的值是否相等,如果相等则返回真(1),否则返回假(0)。因此,使用==符号可以帮助程序员判断两个变量或者常量是否相等,从而确保程序的正确性和稳定性。在单片机中,==符号区别于单精度比较符号==,后者用来比较两个浮点...
  • 0XC0在单片机用C编程时是什么意思
    答:0XC0在单片机用C编程时意思是16进制值C0,对应的二进制是11000000B。十六进制数到二进制数的转换,将每位十六进制数用4位二进制表示即可。以0x开始的数据表示16进制,计算机中每位的权为16,即(16进制)C0=(2进制)1100,0000。
  • 单片机C语言编程p1, undefined identifier什么意思啊?
    答:undefined identifier是未定义的标志符,在程序内使用了没有被定义的标志符或者变量。具体解决办法:找到未定义的标志符,对其进行赋值即可。定义的是unsigned char num,在使用的时候,写成了NUM,也会出现同样的错误p1,undefined identifier:英文意思就是p1未定义,找不到p1编译出错。
  • 单片机c语言编程实例大全
    答:学习单片机,//实例1:用单片机控制第一个灯亮更多单片机学习视频教程,protues仿真电路图,keil程序免费下载网址:http://mxroom.com/forum.php?mod=forumdisplay&fid=110#include//包含51单片机寄存器定义的头文件voidmain(void){P1=0xfe;//P1=11111110B,即P1.0输出低电平}//实例2:用单片机控制一...
  • 单片机烧录是什么意思?
    答:单片机烧录是指将软件程序通过编程工具(如编程器)烧录到单片机内部的存储器中,让单片机根据程序代码执行指定的任务。单片机烧录也被称为单片机编程,是设计和制造单片机系统的必要步骤之一。单片机烧录需要通过特定的硬件和软件进行。一般来说,烧录步骤包括以下几个方面。首先,准备好需要烧录的程序代码和编程...
  • 求解单片机编程题目
    答:一、将(0~99)的100个连续十进制数,依次存入首地址为2000H的RAM区的存储单元中去。MOV DPTR, #2000H MOV A, #0 MOV R1, #100 LOOP:MOVX @DPTR, A INC A INC DPTR DJNZ R1, LOOP SJMP 二、定时/计数器进行初始化编程。MOV TMOD, #01010001B MOV TH1, #(...
  • 单片机C51编程(C语言):实现学号的显示(学号是10位数字)
    答:你用什么驱动数码管呢?不同的驱动,程序写法不同。如果直接用I/O口驱动,8位数码管就这样写:wei=位选 duan=段选 //断码表 uchar code shuzi[12]={0xc0,0xf9,0xa4,0xb0,0x99,//0,1,2,3,4,0x92,0x82,0xf8,0x80,0x90,//5,6,7,8,9,0x00,0xff};void led_scan(void){ ucha...
  • 为什么在用单片机汇编编程时,开头都要写上 ORG 0000H AJMP MAIN ORG 0...
    答:ORG是伪指令,告诉编译器,程序从ROM的0000开始存放程序,但是AJMP MAIN是一条无条件跳转指令,也就是说,单片机上电之后首先从0000处开始执行程序,但是,AJMP直接将程序跳转到MAIN标号指向的存储区域开始取指令,并执行,而一般MAIN标号是放在语句ORG 0030之后的,也即,主程序是从0030这个地址开始存放的...
  • 单片机可以用Java编程吗?
    答:感谢您关注单片机编程和千锋教育的培训课程。下面我们来探讨一下单片机是否可以使用Java进行编程。更系统全面的学习资料,点击查看单片机是一种嵌入式系统,通常使用C或汇编语言进行编程。而Java作为一种高级编程语言,在嵌入式系统中使用相对较少。主要原因是,嵌入式系统通常对资源利用效率要求较高,并且需要更...
  • 单片机(编程)
    答:1)将外部RAM 2000H-2010H 中大于127的单元的内容增1。共17个字节.MOV DPTR, #2000H MOV R2, #17 DDDD:MOVX A, @DPTR JNB ACC.7, NEXT ;大于等于128转移.ADD A, #1 MOVX @DPTR, A NEXT:INC DPTR DJNZ R2, DDDD SJMP 2)将外部RAM 3000H-3010中非0单元的数据...