C51单片机学习求助!

来自:    更新日期:早些时候
c51单片机程序求助!!!~

SEC_CNT EQU 30H
SEC_0X EQU 31H

ORG 0000H
SJMP MIAN
ORG 000BH
SJMP INT_T0
MIAN:
MOV SEC_CNT, #20
MOV SEC_0X, #00H

MOV TMOD, #01H
MOV TH0, #(65536-50000) / 256
MOV TL0, #(65536-50000) MOD 256
SETB TR0
SETB ET0
SETB EA
MOV DPTR, #TABLE
LOOP:
MOV A, SEC_0X
CJNE A, #100, DISP
MOV SEC_0X, #0
DISP:
MOV A, SEC_0X
MOV B, #10
DIV AB

MOVC A, @A + DPTR
MOV P0, A
CLR P2.6
SETB P2.6
CLR P2.6
MOV P0, #11011111B
CLR P2.7
SETB P2.7
CLR P2.7
DJNZ R7, $
DJNZ R7, $
MOV P0, #11111111B
CLR P2.7
SETB P2.7
CLR P2.7

MOV A, B
MOVC A, @A + DPTR
MOV P0, A
CLR P2.6
SETB P2.6
CLR P2.6
MOV P0, #11101111B
CLR P2.7
SETB P2.7
CLR P2.7
DJNZ R7, $
DJNZ R7, $
MOV P0, #11111111B
CLR P2.7
SETB P2.7
CLR P2.7

LJMP LOOP
TABLE:
DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH

INT_T0:
MOV TH0, #(65536-50000) / 256
MOV TL0, #(65536-50000) MOD 256
DJNZ SEC_CNT, NEXT
MOV SEC_CNT, #20
INC SEC_0X
NEXT:
RETI

END

#include
typedef unsigned int uint;
typedef unsigned char uchar;


sbit P1_0 = P1^0;
uchar data int0state,delaykey;
uint data times;


void INT0Fun() interrupt 0 //外部中断 设为下降沿触发
{
if(delaykey==0) //按扭可能有抖动,做防抖处理
{
int0state++;
if(int0state>=3)
int0state = 0;
times = 0;//重新开始计时
delaykey = 2;//delaykey个时间片内不再处理外部中断,误差0-1个时间片
}
}


void TIME0Fun() interrupt 1 //定时器0 模式1 10
{
TH0 = (uchar)((65536-10000)>>8);
TL0 = (uchar)(65536-10000); //focs 12M 定时10ms 每次溢出


if(delaykey) delaykey--;
times++;
switch(int0state)
{
case 0:
if(times>=500) times=0;
if(times<300) P1_0 = 1; else P1_0 = 0;
break;
case 1:
if(times>=900) times=0;
if(times<500) P1_0 = 0; else P1_0 = 1;
break;
case 2:
if(times>=400) times=0;
if(times<200) P1_0 = 0; else P1_0 = 1;
break;
default:
break;
}
}


void init() //初始化
{
TMOD= 0x01;
TH0 = (uchar)((65536-10000)>>8);
TL0 = (uchar)(65536-10000);//FOSC 12M 定时10ms
ET0 = 1; //定时计数0允许发生
EX0 = 1; //外部中断0允许发生
IT0 = 1; //下降沿触发
TR0 = 1; //计时器开始
//..... 添加初始化其它内容
EA = 1;
}
void main()
{
init();
while(1)
{
//TODO......添加你其它代码逻辑
;
}
}



/////无聊了,随手写一个,试试合不合用 排版乱了,懒得改了
//方波是不是高低电平时间一样长的? 改行做C51快1年了,概念一概不懂,汗

你如果是想学习ARM为最终目的,那我建议你就不必要去学习单片机了,因为单片机就算你达到精通,那也对你学习ARM没有太多帮忙,当然不能说没有帮忙,至少你可以知道一个大体的硬件框架,但这要付出的时间却是很多。但以你的实际情况来看
你是从事自动监控行业的,若是你现在的工作有部分涉及到单片机和ARM,那我还是建议你先学习单片机,因为单片机也可以让你在这行业上要作得得心应手,而且单片机的学习不像ARM那样复杂,单片机你可以在一个月的时间就可以学得差不多,但对于ARM,你没有一年时间是不可能学到什么的,我就是这样过来的。单片机我玩得很顺手,然后去学ARM,才发现那东西不像单片机那么容易上手,好在我还学过DSP,这才算是有点入门帮忙。
所以ARM的学习是不能急的。
单片机的学习,我想你就不必要去学习51了,直接学习AVR,你就算学了51,但对你学习AVR没有什么帮忙,因为这两个单片机相差太多了,我想51也要快过时了。
学习avr,最好你用AVR16或8来学习,这样比较有典型。
开发板吗,我想对初学者来说,用PROTUES这个软件就是最好的开发板,你可以试试,
现在都是用c来写代码的,你以前学过,现在要再拿起应该不是难。你在网上找几个C的例子来看一看就差不多可以上手,然后自己不看,重新写一次,重要的是要自己重写一次(千万别想当然)
用CVAVR这个软件吧,它是专门对AVR的
这个上手更加容易
最后再用soureinsigth这个软件编写

如果是个学生,想学好嵌入式,还是多多去吃透模拟电子和数学算法吧,
现在这个时代的嵌入式编程起点已经跟在计算机上修改一个网页一样简单了,如有认为自己会开车了,就对汽车很懂了,那就是笑话,
要做一个好的设计人员,必须有良好的理论基础,对行业的激情,以及对名利金钱的淡薄,
没事多去电子方面的论坛转转

单片机小精灵,要1.2版的……
关键不是这个,是你对实现的方法有没有想法,然后画成一个程序的流程图,分块去写, 做好接口设计……写注释……

不是说不好找工作,只要你实践能力强,工作是好找的,不过仅仅是学单片机的话,工资不高也就2、3K,还是学一学ARM好的(不推荐本科学DSP,很难掌握),工资也相对高点。学ARM的话就买个开发板吧,一般都配有很多资料,跟着学就对了(个人认为学ARM要好好地学一下操作系统的原理)

你可能说的这些会只是下几个现有程序编译下,单单点个液晶呀什么的,如果能够把这些组合在一起做几个项目的话,就可以说是会了,东西不是会的多就好,你这个会一点,那个会一点,都半桷水的话做工程是没什么用的,还不如把一样东西学精了


C51单片机学习求助!视频

相关评论:
  • 1367046422251单片机C51语言的几个问题。
    黎炒韵因此,sbit a=PP^2;是完全正确的。问题3:bit是单片机中的一个关键字,用于声明位变量。它的作用和bool类型相似,都是为了进行两种状态的判断,并且节省存储空间。因此,可以将bit理解为bool的另一种形式。

  • 1367046422251单片机该怎么学?
    黎炒韵硬件方面,首先是要有单片机,对于单片机有一点要注意, 51 单片机最好买 89S51 、 89S52 这两种型号,上面我所说的烧写程序是 ISP 方式,这两种单片机支持 ISP 下载,所以如果买其他型号的烧写程序可能会不太方便, AVR 单片机常用的就是 ATmega16L 其它型号的区别也不是很大,甚至有些兼容。至于单片机开发板,目前的价...

  • 13670464222C51单片机学习求助!
    黎炒韵你如果是想学习ARM为最终目的,那我建议你就不必要去学习单片机了,因为单片机就算你达到精通,那也对你学习ARM没有太多帮忙,当然不能说没有帮忙,至少你可以知道一个大体的硬件框架,但这要付出的时间却是很多。但以你的实际情况来看 你是从事自动监控行业的,若是你现在的工作有部分涉及到单片机和ARM...

  • 13670464222如何自学51单片机
    黎炒韵学51单片机,首先你安装两款软件,其中用来画图的是proteus仿真软件,一般的元器件,里面大都有,你去百度文库里,下一张proteus元器件名称,找到元器件,你就可以组成电路。2.proteus是制图软件,此时你还需要一款编写程序的软件,Keil C51软件,在这个平台上,你需要的就是编写51程序,主要就是在main.C...

  • 13670464222学习51单片机要做那些准备工作?
    黎炒韵1、学习C程序设计,数模电,单片机原理与技术;2、学习Keil C51编辑、编译环境;3、学习利用proteus等仿真软件进行电路、单片机程序仿真,可从网上下载仿真实例;(对学习51单片机有事半功倍的好处)第二阶段:1、购买51单片机开发板,照着开发板给的例程做实验;2、进一步学习各种元器件、各种电路,学习...

  • 13670464222想要很好的学好单片机C51,需具备哪些方面的知识?
    黎炒韵学习内部硬件结构 C51汇编 c语言 模电 数点 以上为基本条件,买个开发板,不是太贵,在练习过程中逐渐学习。

  • 13670464222C51单片机笔记(单片机的基本结构与引脚)
    黎炒韵单片机基本结构:80C51单片机配备8位CPU,8位运算器与数据总线,一次性处理与传输8位二进制。时钟信号由振荡与时序电路提供。80C51引脚功能图:包含基本功能引脚与并行口引脚。基本功能引脚:电源与复位,时钟相关,地址相关。电源与复位引脚:Vcc、Vss、RST。时钟相关引脚:XTAL1、XTAL2。地址相关引脚:EA(...

  • 1367046422251单片机C51语言的几个问题。
    黎炒韵问题二:sbit在问题1中说的很清楚了,就是为某一位起别名,sfr 这个关键字在reg52.h头文件中出现很多 它是单片机开发商把特殊功能寄存器的物理地址映射到一个宏上面,这样的话就可以对寄存器操作了,你自己可以改动,比如reg52.h中的sfr P0 = 0x80;你改为sfr PP=0X80; 那么单片机上的P1口(...

  • 13670464222在学习单片机c(C51)之前是不是必须对单片机的硬件知识有了解?_百度...
    黎炒韵另一类属于软件,也就是51的汇编语言。了解汇编对硬件的理解会有提高。不过由于你会C语言,这部分知识倒是可以先放放,有兴趣的话再学。至于键盘、显示,这块没什么难度,需要时再研究就是了。不过这里说句题外话:键盘显示属于信息输入输出接口,其实这就是C51(或者说单片机的C语言)与PC机C语言的最大...

  • 1367046422251单片机学习感觉很难上手,买的书本都是汇编语言,但是听说C语言更好...
    黎炒韵新学习任何一款单片机都不会简单,要从基础开始学习,C有C的优点,汇编有汇编的优点,不懂汇编的人成不了编程高手,C里面插入汇编则能充分利用两者的优点,学单片机没有捷径可走,必须学会基本理论,推荐你认真学一下《单片机原理与应用-基于汇编、C51及混合编程》一书,这本书中的例题和实际结合,这本...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网