单片机编程学习
会员登录
客服热线
星星电子网
www.c-cnc.com/dz
电子首页 | 会员注册 | 会员登录 | 我要销售 | 我要采购 | 我要求职 | 我要招聘 | 电子论坛 | 展会联盟 | 中数休闲
供应信息 | 求购信息 | 企业名录 | 产品大全 | 求职信息 | 招聘信息 | 人力资讯 | 新闻中心 | 电子工艺 | 帮助中心
您现在的位置:星星电子网 >> 新闻中心 >> 电子新闻
单片机编程学习
星星电子网2006-9-9 阅读:1361次
【字体:大 中 小】
一、前言
科技的进步需要技术不断的提升。一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。
二、单片机简介
我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜索,将会看到上万个介绍单片机的网站,这还不包括国外的。与它相应的专业杂志现在也有很多,比如由单片机界的权威何立民主编的《单片机与嵌入式系统应用》杂志现以风靡电子界,在2003年7月,91student.com(91猎头网)在上海、广州、北京等大城市所做的一次专业人才需求报告中,单片机人才的需求量位居第一。
一块小小的片子,为何有这样的魔力?
我们首先从它的构成说起:单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口
(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,
元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。据统计,我国的单片机年容量已达1——3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。特别是沿海地区的玩具厂等生产产品多数用到单片机,并不断地辐射向内地。所以,学习单片机在我国是有着广阔前景的。
学习单片机,推广单片机,做现代生活的领航人,你还在等什么呢?
①流水灯②数码显示
③AD转换④波形输出
⑤编程接口⑥PC通讯接口
⑦遥控解码接收头⑧功能扩展插槽
⑨编程插座⑩程序运行插座
四、I/O口功能实例
4.1流水灯
程序介绍:利用P1口通过一定延时轮流产生低电平输出,以达到发光二极管轮流亮的效果。实际应用中例如:广告灯箱彩灯、霓虹灯闪烁。
程序实例(LAMP.ASM)
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVA,#00H
MOVP1,A;灭所有的灯
MOVA,#11111110B
MAIN1:
MOVP1,A;开最左边的灯
ACALLDELAY;延时
RLA;将开的灯向右边移
AJMPMAIN;循环
DELAY:
MOV30H,#0FFH
D1:MOV31H,#0FFH
D2:DJNZ31H,D2
DJNZ30H,D1
RET
END
4.2方波输出
程序介绍:P1.0口输出高电平,延时后再输出低电平,循环输出产生方波。实际应用中例如:波形发生器。
程序实例(FAN.ASM):
ORG0000H
MAIN:;直接利用P1.0口产生高低电平地形成方波//////////////
ACALLDELAY
SETBP1.0
ACALLDELAY
CLRP1.0
AJMPMAIN
;//////////////////////////////////////////////////
DELAY:
MOVR1,#0FFH
DJNZR1,$
RET
END
五、定时器功能实例
5.1定时1秒报警
程序介绍:定时器1每隔1秒钟将p1.o的输出状态改变1次,以达到定时报警的目的。实际应用例如:定时报警器。
程序实例(DIN1.ASM):
ORG0000H
AJMPMAIN
ORG000BH
AJMPDIN0;定时器0入口
MAIN:
TFLAGEQU34H;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒
MOVTMOD,#00000001B;定时器0工作于方式1
MOVTL0,#0AFH
MOVTH0,#3CH;设定时时间为0.05秒,定时20次则一秒
SETBEA;开总中断
SETBET0;开定时器0中断允许
SETBTR0;开定时0运行
SETBP1.0
LOOP:AJMPLOOP
DIN0:
;是否到一秒////////////////////////////////////////
INCC:INCTFLAG
MOVA,TFLAG
CJNEA,#20,RE
MOVTFLAG,#00H
CPLP1.0
;//////////////////////////////////////////////////
RE:
MOVTL0,#0AFH
MOVTH0,#3CH;设定时时间为0.05秒,定时20次则一秒
RETI
END
5.2频率输出公式
介绍:f=1/ts51使用12M晶振,一个周期是1微秒使用定时器1工作于方式0,最大值为65535,以产生200HZ的频率为例:200=1/t:推出t=0.005秒,即5000微秒,即一个高电平或低电平的时间为2500微秒。这样,定时值应设为65535-2500=63035,将它转换为十六进制则为:F63B。
具体程序请看f200.asm
频率递增:
200HZ:63035:F63B
250HZ:63535:F82F
300HZ:63868:F97C
5.3200HZ频率输出程序介绍:利用定时器定时,在P1.0口产生200HZ的频率输出。实际应用例如:传感器前级推动。
程序实例(F200.ASM):
ORG0000H
AJMPMAIN
ORG001BH
AJMPDIN0
MAIN:
CLRP1.0;产生一个低电平,实际上是从p1.0口产生频率
MOVTMOD,#00010000B;定时器1工作于方式0
MOVTH1,#0F6H
MOVTL1,#3BH;频率产生的时间,详细请见频率公式
SETBEA;开总中断
SETBTR1;开定时器1运行
SETBET1;开定时器1允许
LOOP:AJMPLOOP;无限循环
DIN0:CPLP1.0;产生一个高电平,
下次来就是低电平(因为取反),一个高电平和一个低电平形成一个周期
MOVTH1,#0F6H
MOVTL1,#3BH;重置频率产生时间
RETI;返回
END
5.4200——250HZ变化频率输出
程序介绍:利用定时器定时时间的变化,由P1.0口产生200——250HZ变化的频率。实际应用例如:传感器前级推动、频率发生器。
程序实例(F250.ASM):
ORG0000H
AJMPMAIN
ORG001BH
AJMPDIN1
MAIN:
;定义频率200和300//////////////////////////////////
F2HEQU30H
更多阅读
初学者怎样学习编程?
对于刚刚接触编程的人来说,怎样学习编程?学习编程要注意哪些方面?学习编程要从哪些方面着手才能更快进入编程世界?怎样做才是掌握了编程的要义呢?这一系列的问题都是一名编程初学者最关心的问题,今天,笔者从7个方面分析如何学习编程。初学
怎么学习编程
怎么学习编程——简介学习编程是一门苦差事,尤其是刚入门的时候,对着哪些它认识你,你不认识它的代码别提是多么痛苦的一件事情了,很多朋友可能受不了这种痛苦从而放弃了学习,因为很多人没有那个耐心和毅力。当然学习编程除了耐心和毅力之
如何学习C语言编程
如何学习C语言编程——简介6 部分:准备工作 变量的使用 使用条件语句 学习循环语句 使用函数 不断学习诞生于上世纪70年代的C语言是一门古老的语言了, 但作为一门底层语言,时至今日它仍然非常强大。学习C语言能够为学习其他更复杂
Windows编程学习日志一
Windows子系统开关从今天起开始我的windows学习心得的日志,有兴趣的网友可以随时交流啊!Windows支持两种类型的应用程序,一种是图形界面的,简称GUI,另一种是控制台程序,简称CUI。GUI拥有前端界面,用户通过图形界面与操作系统进行交互,一般是
数控编程技巧 cnc编程学习
一、数控机床坐标系规定数控坐标系是以刀具相对静止工件运动为原则数控机床坐标系采用的是右手笛卡尔直角坐标系,其基本坐标轴为X、Y、Z直角坐标,如下图所示,规定了X、Y、Z三个直角坐标轴的方向,这个坐标系的各个坐标轴与机床的主要