基于89C51 单片机红外计数器分解Word格式文档下载.docx
- 文档编号:18252545
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:13
- 大小:345.34KB
基于89C51 单片机红外计数器分解Word格式文档下载.docx
《基于89C51 单片机红外计数器分解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于89C51 单片机红外计数器分解Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
2.2主控芯片简介
2.2.1单片机的发展及趋势
在计算机应用控制领域上,如工业控制、汽车、家电等很多控制场合,对控制系统的要求都比较苛刻。
例如需要智能高、体积小、成本低、功耗低、抗干扰能力强和可靠性高。
不仅传统电气设备无能为力,一般应用性PC机也不能胜任。
在这个背景下,单片机的设想才逐渐成型。
单片机就是将计算机的几个基本组成部分集成在单一的芯片上,体积相对较小,很好地满足了对控制系统体积的要求。
自从1975年美国德克萨斯公司开发生产出第一台单片机TMS-1000以来,单片机经历了4位→8位→16位→32位的发展过程。
最有代表性的Intel公司先后推出了三个系列:
MCS-48系列8位单片机、MCS-51系列高档8位单片机、MCS-96/98系列16位单片机。
很多控制场合并不需要单片机去完成复杂的数学计算,因此单片机在生产工艺上进行了简化,降低了制造成本。
同时采用大批量生产,成本进一步降低。
从目前市场上来看,其价格一般都在几元到几十元之间。
未来单片机技术的发展趋势将以8位单片机主流,并大力发展专用单片机。
很多单片机生产厂家充分考虑到用户的需求,将一些常用的功能部件,如ADC(模/数转换器)、DAC(数/模转换器)、PWN(脉冲产生器)以及LCD(液晶)驱动器等集成到芯片内部、尽量做到单片化;
同时,用户还可以提出要求,由厂家为其量身定做(SoC设计)或自主设计。
另外,随着科技发展,程序存储器的容量将进一步扩大。
当存储空间足够大时,可嵌入一些软件(如平台软件、虚拟外设软件、系统诊断管理软件等)以提高系统开发效率。
2.2.251系列单片机的主要特点
51系列单片机生产厂家非常多,型号也非常丰富。
但总的来说,51系列的单片机开发平台都可以用Keil,编程软件都可以用A51和C51。
所不同的是,不同厂家和型号的产品,在外设和下载方式上不同。
比如Atmel公司的89C51和89S51,89S51兼容89C51,不同的是89C51可以用ISP下载方式,而89C51不能。
51系列单片机的特点有以下几个方面:
(1)集成度高、体积小、有很高的可靠性;
(2)控制功能强;
(3)低功耗、低电压,便于生产便携式产品;
(4)外部总线增加了I2C、SPI等串行总线方式,进一步缩小了体积,简化了结构;
(5)单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。
寄存器A/B/C/D控制字格式如表2-2所示:
表1寄存器A/B/C/D控制字格式
寄存器
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
寄存器A
UIP
DV2
DV1
DV0
RS3
RS2
RS1
RS0
寄存器B
SET
PIE
AIE
UIE
SQWF
DM
24/12
DSE
寄存器C
IRQF
PF
AF
UF
寄存器D
VRT
DS12887有128个RAM单元。
其中4个单元用作控制寄存器,10个单元用作存放时钟字节,114字节为通用RAM。
其主要寄存器如下:
DS12887内部寄存器A:
UIP=l:
更新已到,不能读/写DSl2887;
UIP=0:
更新末到,能读/写DS12887。
DV2、DV1、DV0应设置为010,表示打开晶振,允许计时。
RS3、RS2、RS1、RS0为方波频率选择位,产生方波周期中断。
DS12887内部寄存器B:
SET=0:
时间更新正常进行,每秒计数1次;
SET=1:
禁止更新,程序可初始化时间和日历。
PIE=l:
允许周期中断;
PIE=0:
禁止周期中断。
AIE=1:
允许报警中断;
AIE=0:
禁止报警中断。
UIE=1:
允许更新结束中断;
UIE=0:
禁止更新结束中断。
SQWE为方波允许位。
SQWE=1:
将RS3、RS2、RS1、RS0选定的方波输出。
DM=1:
BCD码;
DM=0:
二进制。
该位不受复位信号影响。
24/12:
1表示24小时制;
0表示12小时制。
DSE为夏时制允许位。
DSE=l:
采用夏时制;
DSE=0:
不采用夏时制。
DS12887内部寄存器C:
IRQF为中断申请标志。
PF为方波周期中断标志。
PF=1:
方波周期结束,申请中断。
AF为闹铃中断标志。
AF=1:
当前时间与闹铃时间匹配时即刻申请中断。
UF为更新周期结束中断标志。
UF=1:
更新周期结束时申请中断。
DS12887内部寄存器D:
VRT为内部锂电池状态。
VRT=1:
锂电池正常;
VRT=0:
锂电池耗尽[11]。
3硬件电路设计
3.1建立AT89C51最小工作系统
图2单片机最小系统图
51单片机的最小系统由单片机、晶振电路、复位电路和P0的上拉电阻组成。
其介绍如下:
(1)晶振电路为单片机提供时序使单片机能够正常工作,在图3-1中采用单片机内部振荡方式。
此时,只要接上两个电容和一个晶振即可。
电容的大小影响着振荡的稳定性和起振的快速性,通常选择10~30pF的相等的两个瓷片电容。
(2)C1和R2构成了复位电路。
刚开始上电时时,C1瞬间相当于短路,C1两端保持0V电压,VCC的电源电压就都加在了R2上,因此在单片机9脚RST上变成了高电平,此后C1上逐渐充电,即在C1上出现电压,R2上的电压开始下降,最后单片机9脚RST上变成了低电平。
在此过程中只要满足单片机9脚RST上的高电平持续24个振荡周期即可使单片机复位。
3.2红外检测电路
图3红外检测电路
常见的光敏器件有光敏电阻、光电二极管、光电三极管、光耦等。
本实验中使用了光电二极管和光电三极管。
光电二极管和光电三极管都是两条引脚的元件,光电三极管没有基极引出脚,它们的外形与LED相似。
光电二极管分为发射管和接收管;
光电三极管一般用于接收,但它的接收灵敏度比光电二极管高得多。
市场上的光电管种类很多,许多是以对管的形式出售,对管的发射管和接收管工作在相同的光波波段,接收管只对发射管发出的光波敏感在本实验中我们选择一对工作在“不可见光”波段的对管,除了避免灯光和日光的干扰外,即使在黑暗中入侵者也看不到探测光束,具有很强的隐蔽性。
电路如图所示。
在电路左半部分是发射管电路,电源通过限流电阻R1接到发射光电二极管IR-D1上,电流通过光电二极管到地线,光电二极管发射光束,我们将这部分电路安装到走廊的一面墙壁上;
电路右半部分是接收管电路,团中PT1是光电三极管,三极管Q1的作用是增加光电三极管接收的灵敏度,UIA是施密特反相器,作用是对A点的电平进行整形,保证送到单片机P3.2口的电平只能是OV或+5V,我们将接收管电路安装在发射电路对面的墙壁上,调节光电三极管的位置使它正对发射光电二极管的位置。
没有人走过时,光电二极管IR-D1发射出的光照射到光电三极管PT1,光感应的电流直接馈入PT1的基极PT1发射极和集电极导通便Q1导通,这时A点为低电平OV,P3.2为高电平+5V。
如果有人走过,光电二极管IR-D1发射出的光被遮挡,不能照射到光电三极管PT1,因为PT1只对IR-D1发出的光敏感,PT1的基极没有电流镣入,PT1发射极和集电极截止使Q1截止,这时A点为高电平+5V,P3.2变为低电平OV。
由此看出,没有人走过时P3.2为高电平+5V,有人走过时P3.2会变为低电平OV。
简单地说,单片机P3.2口变为低电平OV说明有人走过这段走廊。
在干簧管的程序中,介绍了P3.2是单片机外部中断0的端口,当P3.2的电平从高变为低时(下降沿跳变)会触发中断,程序会自动转入外部中断0的服务程序中。
在本实验中,有人走过时就会使P3.2端口的电平从高电平变为低电平,从而触发中断。
3.3显示电路
图4显示电路图
3.4蜂鸣器报警电路
本设计采软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。
当有人通过时,数据口相应输出低电平,报警输出。
报警电路硬件连接见下图
图5蜂鸣器电路连接图
3.5单片机管脚
图6单片机管脚
4红外检测计数软件设计
STC89C52RC单片机可以用汇编语言和C语言进行编程。
汇编语言与机器指令一一对应,所以用汇编语言编写的程序在单片机里运行起来效率较高,而且对于红外计数器数据的读写上,所用到的语句比较简单易懂。
而C语言程序可读性高,更便于理解。
本设计使用C语言编程。
4.1设计要求
有两对红外对管
构成光电检测电路,有m,n两个变量代表
。
当有人经过
时m置1,有人经过
时n置1,当m,n同时为1时两个变量变为0,;
当m=1,n=0时代表正向有一人通过,正向计数加1;
当m=0,n=1时代表反向有一人通过,反向计数加1。
同时有人从不同方向通过时,蜂鸣器发出两个不同的声音进行提示。
4.2程序框图
图7主程序框图
主程序设计:
ucharda0[10]={0xEE,0x28,0xCD,0x6D,0x2B,0x67,0xE7,0x2C,0xEF,0x2F};
ucharda1[10]={0xB7,0x81,0x3B,0xAB,0x8D,0xAE,0xBE,0x83,0xBF,0x8F};
voidmain()
{m=0;
n=0;
a=0;
b=0;
EA=1;
//开总中断
EX0=1;
//开外部中断0
EX1=1;
//开外部中断1
IT0=1;
IT1=1;
while
(1)
{
fm=1;
P0=da0[a];
//计数显示
P1=da1[b];
}
中断程序设计:
voidexter0()interrupt0
{
delay(10);
if(P32==0)
{
m=1;
if(m==1&
&
n==1)
{
m=0;
n=0;
}
n==0)
a+=1;
fm=0;
delay(100);
fm=1;
while(!
P32);
图8中断程序框图
}
5系统调试
调试工作可分硬件调试和软件调试两个部分,调试方法如下:
首先,硬件调试主要是先制作硬件电路板,然后用万用表等工具对电路检查,最后应用程序进行功能调试。
硬件调试比较费时,需要细心和耐心,也需要熟练掌握电路原理。
然后,用仿真软件进行软件调试,比如单片机C51编辑软件KEIL,该软件提供一个集成开发环境uVision,它包括C编辑器、宏编辑器、连接器、库管理和一个功能强大的仿真调试器。
通过编译、运行,可以检查程序错误。
但应用此方法,仍需要十分了解所使用元器件的工作方式和管脚连接方式。
5.1系统的硬件调试
在接通电源后,电路正常工作。
我通过一张卡片模拟人从不同方向通过光电检测区,用万用表测得中断管脚有高电平4.89v变成低电平0v,表明光电检测电路时正确的能正常工作的;
然后发现数码管能够显示数据,表明我的显示电路没问题。
但是蜂鸣器没有响,这是硬件调试当中遇到的唯一一个问题。
原因:
基极电阻太大,影响集电极电流,导致蜂鸣器不够响亮。
解决方法:
换一个小点的电阻。
5.2软件调试
本次设计则是直接完成电路的硬件设计,出现的硬件问题几乎没有,主要在软件的程序上进行调试。
在调试过程中,曾遇到以下问题:
在通电后,光线被遮挡时无法进行正常计数;
在被挡一次过程中可能发生几次下降沿触发,导致执行中断次数和计数不确定。
在中断程序后加一个循环语句while(!
P32)和开头加一个延迟delay(10),排除干扰。
一人走过检测区的两个对管,两向计数器都加1;
两个中断程序中不经比较就都加一。
在两程序中加以判断if(m==1&
n==0)正向加1,if(n==1&
m==0)反向加1,if(m==1&
n==1)m,n同时置0且计数不加1。
6结论
在研究这个毕业设计的过程当中曾经让我遇到了许多小麻烦:
在检测单元的选择上是选择光电传感器还是红外对射式曾经让我迷茫.在MCS-51单片机的选择上是选择内部具有4KB字节的闪烁存储器的AT89C51还是选择内部具有8KB字节的闪烁存储器的AT89C2051曾经也让我困惑不已(其实任选一款都可以实现)。
而最让我感到迷茫的是否利用8155进行I/O口的扩展,其实通过设计要求可以看出不难看出根本不需要对AT89C51进行扩展就可有完成0-999999的计数显示功能(采用7段数码管显示可以不扩展)。
基于单片机构成的产品自动计数器能够实现实时、稳定、精确的计数。
如果要对这个课题进行深入的研究可以采用AT89C2051或者AT89C52为控制单元的产品自动计数器在配合专用的掉电数据保护芯片、单片机专用保护芯片等就可以很好的提高整个系统的抗干扰能力。
产品自动计数器的设计的抗干扰问题永远是设计者们研究的课程!
只要能有效的遏制这个缺陷形成一个优质的自动技术产品指日可待!
(MCS—51单片机允许工作的温度范围:
-55℃--150℃,正产工作的频率范围上限:
24MHZ—33MHZ)。
通过本次设计,对单片机的内部模块更加熟悉,使用上也更加的清晰,对于今后用单片机设计产品提供了极大的帮助,并且培养了良好的编程习惯,对子程序命名的规范,和对寄存器的使用上,有了一定的良好意识。
致谢
本设计在选题及研究过程中得到何宁老师的悉心指导。
何老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。
何老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,我对何老师的感激之情是无法用言语表达的。
他不仅学识渊博,对专业孜孜以求,精益求精;
而且在百忙之余仍然读书不辍,不断探求;
为人师表,率先垂范;
传道授业,呕心沥血。
如果说我从指导老师那里学会了怎样做好学问,那么首先应该说我从导师那里领略了真正的学术精神,导师严谨的治学态度和坚韧的探索精神将使我终生受益。
载此,我还要感谢在一起愉快的度过大学生生活的宿舍——404的各位同门,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。
特别感谢我的同学,梁川等对本课题做了不少工作,给予我不少的帮助。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!
最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!
参考文献
[1]周茜.电路分析基础(第2版).北京:
电子工业出版社,2010.1.
[2]王卫东.模拟电子技术基础(第2版).北京:
电子工业出版社,2010.5.
[3]陈永甫.红外探测与控制电路[M].北京:
人民邮电出版社,2004.6.
[4]谭浩强.C程序设计(第3版).北京:
清华大学出版社,2005.7.
[5]段晨东,爨莹,张文革.单片机原理及接口技术[M].第一版.清华大学出版社,2008.7.
[6]郁道银.工程光学基础.北京:
机械工业出版社,2007.4.
[7]彭军.光电器件基础与应用.科学出版社,2009
[8]DonaldA.Neamen.半导体器件物理.北京:
电子工业出版社,2009
附录
原理图
PCB图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于89C51 单片机红外计数器分解 基于 89 C51 单片机 红外 计数器 分解