资源描述
夭律城建衣修课程设计任务书
2013 —2014学年第1学期控制与机械工程学院 电气工程及其自动化专业 2 班级
课程设计名称: 单片机原理及应用A设计题目: 用单片机制作通用型电视通控器
完成期限:自 2014年1月— 日至 2014 年1月 日共周设计依据、要求及主要内容:
一. 程设计的目的进一步熟悉和掌握单片机的结构及工作原理。
1. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
2. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。
3. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
4. 通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过 程,为今后从事相应打下基础。
二. 课程设计的基本要求认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科 学的设计思想和良好的设计作风。
1. 提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。
2. 提高独立分析、解决问题的能力,逐步增强实际应用训练。
3. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。
4. 课程设计说明书封面格式要求见《天津城市建设学院课程设计教学工作规范》附表1。
三. 课程设计具体要求a)要求每位同学独立完成设计任务。
b)原理图设计。
1. 原理图设计要符合项目的工作原理,连线要正确。
2. 图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。
3. 原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。
c)程序调计根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
1. 根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序流程 图。
d)设计说明书原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺四、系统软件的设计
软件的设计,需要准确无误的实现遥控器的控制功能,希望能够使系统具有高的可靠性能、快的反应 速度、以及较低的系统功率损耗。控制功能主要包括:系统的初始化程序、键盘扫描程序、红外线的编码 程序以及发射程序等。
4.1系统软件的总体流程图开始
开始
图4系统的总程序流程图
4.2初始化程序和主程序流程X潞口 M位
没曾地木发不口,”幽「仙1定口寸常片/ I十敖溶1方
犬2诳林,初女台相
设定
歼夕卜音B • I«幽汽)歼,总
中幽T允可
图5初始化程序流程图
图6主程序流程图
4. 3键盘扫描程序
键盘的工作方式
在单片机应用系统中,键盘扫描是系统工作内容之一。CPU对键盘的响应取决于键盘的工作方式,键 盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键 操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫 描。
采用前两种键盘扫描方式时,无论是否按键,CPU都要定时扫描键盘.而遥控器在工作时,并非经常 需要键盘输入,因此,CPU经常处于空扫描状态。而且对于电视机的遥控器,当有按键按下时,需要做出 立即的反应。同时为了提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下;当无键按下时, CPU处理白己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。
其工作原理用上面的4*4键盘矩阵来进行说明。图7是•种简易键盘接口电路,该键盘是由89C52 门口的高、低字节构成的4X4键盘。键盘的列线与门口的高4位相连,键盘的行线与门口的低4位相连, 因此,Pl. 4-P1. 7是键输出线,P1.0~P】.3是扫描输入线。图中的4输入与门用于产生按键中断,其输 入端与各列线相连,再通过上拉电阻接至+5v电源,输出端接至8051的外部中断输入端口。具体工作如下: 当键盘无键按下时,与门各输入端均为高电平,保持输出端为高电平;当有键按下时,其端口端为低电平,
向CPU申请中断,若CPU开放外部中断,则会响应中断请求,转去执行键盘扫描子程序。
矩阵键盘具体按键的确定
要确定具体是键盘的哪一个按键按下,使用线性反转法。
第一步:将行线编程为输入线,列线编程为输出线,并使输出线为全0电平,则行线中电平由高到低 变化所在的行为按键所在的行。
第二步:同第一步完全相反,将行线编程为输出线,列线编程为输入线,并使输出线为全()电平,则 列线中电平由高到低变化所在的列为按键所在的列
矩阵形式由扫描线和数据线构成。两组线分别接AT89C52的两个输端口。控制器通过软件把扫描线写 成0,接受线写成1。按下一键即将响应的扫描线和接收线接通,于是接受线被拉成低电平。
8条接受线逻辑相与之后的统一信号作为AT89C52的一个外部中断输入,这样有键按下时就将引起中 断。中断服务程序对所按的键进行鉴别。如果是多个键同时按下则不做任何反应,若是单键按下,则将信 息转换成响应的输出。
通常,当无键按下且无其他任务时,微控制器处于空闲状态。当矩阵有键按下,则产生中断,从而结 束空闲状态。中断服务程序首先调用一段延时程序(10ms~~20ms左右),等待键的抖动消失,然后才对所 按的键进行处理。
首先接收线的现状态被存入内部的寄存器中,若是单一键按下,则接收线除一位外其余各位均为1, 此后向接受线写0,扫描线写1,并随之读扫描线,若是单一键按下,则扫描线除一位外其余各位均为1, 根据两组线中零的位置即可确定按下的是哪一个键,若矩阵中同时有多个键按下,则每组线中0的个数不 止一个。
SCAN扫描程序可以确定每组线中那一个为零,是否有多个零等。再调用此程序前,应将所读组线的数 据存入一个可按位寻址的片内RAM单元。自这段程序返回时,ZER0 CNT单元中包含有LINE单元中0的个 数。若只有一位为0,则0的位置保存在ZER0_BIT单元中。
按键所引起的中断有如下的中断服务程序:
4.4红外编码设计
遥控器之间的本质区别就在于编码的不同。不同的编码,其发射和接受的原理不同。常用的编码格式 有脉冲编码和脉宽编码。这里采用脉冲个数进行编码。
采用脉冲个数进行编码,不同的脉冲个数代表不同的码,最小为两个脉冲,依次递加,为了接受可靠, 第一位码宽为3ms,其余为1ms,遥控码数据桢之间的间隔大于10ms,当某个操作键按下时单片机先读出键 值,然后再根据键值设定遥控码的脉冲个数,再调制成38KHZ的方波发射出去
返回
yy
图10遥控码发射流程图编码的格式比较多,其相对应的发射格式也比较多,但其原理都是一样的。在这里画出脉冲个数编码的发 射流程图。在用脉冲个数进行中,不同的脉冲个数代表不同的码。最小为两个脉冲,依次递加,为了接受 可靠,第一位码宽为3ms,其余为1ms。直至按键所对应的脉冲个数发射完毕为止。
^include <reg51. h>
#include<intrins. h>
^define uchar unsigned char
^define uint unsigned int
/******************** *弓 | 脚定 义 ********************/
^define out P2
^define outk Pl
/********************* 函 数申明 ******************** /
void delayms(uint);
uchar scan(void);
/***************** 共阳 数码管编码表 ****************/
uchar seg[] = (0xc(), 0xf9, 0xa4, OxbO, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x9(), 0x88, 0x83, 0xc6, Oxal, 0x86, 0x8e};
********************* - r ^^********************** /
void main(void)uchar key; wh iIe(1)
key=scan();if(key!=16)out=seg[key];}
)/********************* 延时 函 数 ********************/ void delayms(uint j)
for(; j>0; j—);
)/********************* 键盘处理 ********************/ uchar scan(void)
uchar k=16, m, n, in;
outk=0xf0; //扫描所有行
if((outk&0xf0)!=0xf0)for(m=0;m<4;m++)
outk=^ (0x01 «m);for(n=0;n<4;n++)
in=outk; in=in»(4+n); if((in&0x01)=0)dclayms(lO);
i f((i n&OxO1)==0){k=n+m*4;break;} )}
if(k!=16)(break;}}
}
return (k);
)安国臣,MCS-51及兼容单片机原理与选型[M ],北京:电子工业出版社2002. 1 熊鸣王军茹,MCS-51单片机原理及应用实例国],北京:清华大学出版社2011.2
李光飞编著,51系列单片机设计实例[M ],北京:北京航空航天大学出版社2007. 5 等编著,单片机基础[M ],北京:北京航空航天大学出版社2007. 2
周荷琴编著,微型计算机与接口技术[M ],合肥:中国科学技术大学出版社2012.2
安国臣,MCS-51及兼容单片机原理与选型[M ],北京:电子工业出版社2002. 1 熊鸣王军茹,MCS-51单片机原理及应用实例国],北京:清华大学出版社2011.2
李光飞编著,51系列单片机设计实例[M ],北京:北京航空航天大学出版社2007. 5 等编著,单片机基础[M ],北京:北京航空航天大学出版社2007. 2
周荷琴编著,微型计算机与接口技术[M ],合肥:中国科学技术大学出版社2012.2
王晓君
南建辉
楼然苗
李广弟
吴秀清
五、小结
通过这次单片机的课设,我了解到了我还有很多东西都不会,自己知识有待提高,在编程过程中,好 多都不知道怎么写,通过同学的帮忙,在网上找资料才写出了一些,今后应该多加学习一下基础知识,让 自己的知识更加的充实,使自己在今后的道路上可以多-■点本事。
参考文献
[1]
[2]
[3]
[4]
[5]
何立民主编,单片机应用系统设计[M ],北京:北京航空航天大学出版社2011.4
[6]
序。
1. °程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细 的描述。
2. 画出工作原理图,程序流程图如并给出相应的程序清单。
四. 设计任务
用MCS-51系列单片机AT89C52代替专用遥控芯片的设计方案,通过软件模拟实现了电视 机遥控编码的发射,并且达到“-•器多用”指导教师(签字):
系主任(签字):
批准日期:
2014年1月1()日
一、绪论0二、功能要求和设计原理1
2.1 功能要求1
2.2遥控器发射设计原理1三、遥控发射器硬件电路及其组成2
3.1遥控发射器硬件电路图2
3.2键盘电路3键输入原理3
按键结构与特点3按键编码3
3.3空闲节电模式4掉电模式4
红外线发射管和指示灯4四、系统软件的设计5
4.1系统软件的总体流程图5
4.2初始化程序和主程序流程6
4.3键盘扫描程序7键盘的工作方式7
矩阵键盘具体按键的确定8
4.4红外编码设计8
4.5遥控码的发射流程图8五、小 结11
一、绪论
在现在社会及家庭的各种家用电器产品和娱乐设施中,一般都采用红外线遥控技术。红外遥控器电路 调试简单,只要按给定电路连接无误,一般不需任何调试即W•投入工作,而且红外遥控编解码容易,还可 以进行多路遥控。
目前红外线遥控技术已经在电视机中得到『广泛的应用。电视机遥控器使用的是专用集成发射芯片来 实现遥控器的发射,如东芝TC9012,飞利浦SAA3010T等。这些芯片价格贵,且互相之间采用的遥控格式 互不兼容,所以各机型遥控器通常只能针对各白的遥控对象而无法通用。本设计利用低成本的MCS-51系 列来实现遥控器的模拟发射,并实现遥控器的通用化。
二、功能要求和设计原理
2.1功能要求
通用红外遥控系统由发射和接收两大部分组成,发射部分包括键盘矩阵、编码调制、LED红外发送器; 接收部分包括光、电转换放大器、解调电路和解码电路。遥控信号发射装置通过将某个按键所对应的控制 指令调制在38KHz范围内的载波上,然后经放大、驱动红外发射管将信号发射出去。遥控接收头通过对遥 控信号的放大、检波、整形、解调出遥控编码脉冲。
键盘
编码调制一► LED ―►
遥控发射器
遥控接收器
图1红外遥控系统总体框图
本设计采用MCS-51系列单片机AT89C52代替专用遥控发射芯片,通过软件模拟实现了电视机遥控编 码的发射,具有编程灵活多样,操作码个数可随意设定等优点,并且可以达到“一器多用”。
2.2遥控器发射设计原理
目前市场上一般设备系统采用专用的遥控编码芯片,制作比较简单容易,但由于功能键数及功能受到 特定的限制,只适合用于某-•专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应 用设计,具有编程灵活多样,操作码个数可随意设定等优点。
图2 遥控发射器总体结构图
三、遥控发射器硬件电路及其组成
3.1遥控发射器硬件电路图
遥控发射器电路主要由下面几部分组成:AT89C52单片机,低功率损耗电路,红外线发射电路以及由 P0 口和P2 口搭成8X8按键矩阵。当无键按下时,单片机处于低功耗空闲状态。当有键按下时,产生的外 中断请求信号(低电平有效)经八输入与非门和非门后送至P3.2端,使CPU进入中断处理,同时点亮按键 指示灯。系统产生的遥控编码信号通过P3. 5端发出,经放大后驱动发射管发射出去。
POWkDO FO.1*D1 F02*D2 KJMDJ 80MUH 105*06 FC£*D6 KJJ^DT
92OM ,2t2 ,2A9 »23A11 ,2St2 I2SAO ,心“ ,27M
彖±±=±±2
•XTAL1
XTAU
RST
P3IMXD pj.vncD P32rtFTfl~ P3WTT
,J5TJ
. mil
XTA12
ATOC51
XT Al I
>00X00 IQtOKDI ,。劣KD2 ,DEDJ W岫4 IOSOKDS IQ&XD6 FQ7AD?
必踣10 P23CM1 ”S12 "如3
P2?A1«
p^iwrxo 131/DCD p32<irnr na^trrr
P3VTTJ
| XTAl] 吉XI
M4。 ,15 O- ”6 Q- ,” Q-
图3遥控器硬件电路总图
3.2键盘电路
键输入原理
在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状 态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,应用系统应完成该按键所设定的功 能,键信息输入是与软件结构密切相关的过程。
对于一组键或一个键盘,总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无按键 输入,并检查是哪-个键按下,将该键号送入累加器ACC,然后通过跳转指令转入执行该键的功能程序, 执行完后再返回主程序。
按键结构与特点
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一一定时间的触点机械抖动,然 后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为5-lOms。
在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是 多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。 这一点可从硬件、软件西方面予以考虑。在键数较少时,可采用硬件去抖,而当模数较多时,采用软件去 抖。
按键编码
一组按键或键盘都要通过I/O 口线查询技键的开关状态。根据键盘结构的不同,采用不同的编码。无 论有无编码,以及采用什么编码、最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序 的跳转。
3.3空闲节电模式
在空闲工作模式状态,CPU自身处于睡眠状态而所有的外设仍保持激活状态,这种方式由软件产生。 此时将片内RAM和所有特殊功能寄存器的内容冻结。空闲模式可有任何允许的中断请求和硬件复位终止。
由硬件复位终止空闲状态只需要两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部 RAM,但可以访问端口引脚,当复位终止空闲方式时,为避免可能对端口和外部存储器产生意外写入,激 活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
掉电模式
在掉电模式下,震荡器停止工作。进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功 能寄存器的内容在终止掉电模式前被冻结,去除掉电模式的唯一办法是硬件复位。复位后将重新定义全部 特殊功能寄存器,但不改变RAM中的内容。在VCC恢发到正常工作电平前,复位无效,且保持一定的时间 以使振荡器重启动并稳定工作。
在这里遥控器采用空闲节电方式。当系统进入空闲工作方式,内部时钟电路不向CPU提供,而只供给 中断'串行I I和定时器部分。遥控器退出低功耗空闲方式电路由T060与非门来实现。当有键按卜•时,单片 机退出空闲状态,进入键盘和红外发射程序,结束后乂进入低功耗空闲方式待机。使用过程中单片机基本 上都处于空闲工作方式,功耗相当低,从而为电池电源提供保障。
红外线发射管和指示灯
红外发光二极管能发出波长为940nm的红外光,其结构、工艺、原理与一般的发光二极管相同,只是 所采用的半导体材料不同,具有体积小、寿命怆、耐振动、响应速度快、耗电小等优点。在这里遥控编码 信息由AT89C52单片机的定时器1调制成38kHz红外载波信号,由P3. 5输出,经过三极管9013放大,由 红外发射管发射。按键的操作指示灯使用一个LED发光二级管即可。
展开阅读全文