资源描述
液晶电视实习平台用户手册
桂林电子科技大学
机电综合工程训练中心
2010-3-一八
前言
电子实习是电子类专业院校必开的实习课程,是提高学生对电子技术实践动手能力的重要教学环节,主要是为了贯彻理论联系实际的教学原则,巩固和扩大学过的电子技术的基础知识,同时电子装配工艺有足够的了解。基于此目的,我们开发了此液晶电视实习平台作为高等院校电子实习的内容。
一、系统组成
1.1 实习平台资源
液晶电视实习平台由六个模块组成:高频头模块、中放电路模块、液晶屏驱动电路模块、伴音模块、单片机模块和电源模块。各模块之间通过固定的接口进行连接。
图1-1 实习平台位置图
图1-2 实习平台硬件图
1.1.1 高频头模块
1.1.1.1 硬件组成
此电路主要由高频头、自动调节电路和自动/手动装换等电路构成。如图1-2所示。
图1-2 高频头和自动调节电路组成
1.1.1.2 接口定义
对外接口主要通过IDC16接插件进行连接,各引脚定义如图1-3:
图1-3 对外接口定义
其中
1脚:手动/自动对比度公共输出端,接液晶屏的驱动电路的对比度调节端
2脚:对比度自动调节,接51单片机的P3.2输出引脚,PWM调节
3脚:+5V模块电源
4脚:手动/自动亮度公共输出端,接液晶屏的驱动电路的亮度调节端
5脚:亮度自动调节,接51单片机的P3.1输出引脚,PWM调节
6脚:VH波段电压的自动调整输出,与8脚配合使用,当VH为1,VL为0时,处于VH段接收。
7脚:+33V调台电压
8脚:VL波段电压的自动调整输出,与6脚配合使用,当VH为0,VL为1时,处于VL段接收。
9脚:自动调台,接51单片机的P3.3输出引脚,PWM调节
10脚:电视信号输出端,送往送放电路
11脚:中放电路工作电路+12V
12脚:+5V模块电源,同3脚
一三脚:音量自动调节输出,接51单片机的P3.0输出引脚,PWM调节
14脚:接来自中放电路的AGC控制电压
一五脚:音量调节输出,接伴音电路的音量控制输出端
16脚:来自中放电路的控制电压,控制高频头的电压
1.1.2 中放电路模块
1.1.2.1 硬件组成
此电路主要由预中放、声表面滤波器、图像中放和视频跟随输出等电路组成,如图1-4所示。
图1-4 中放电路模块
1.1.2.2 接口定义
图1-5 中放电路模块接口
其中:
1脚:电视信号输出
2脚:+12V的模块电压
3脚:视频信号输出
4脚:来自高频头及自动调节模块的中频信号
5脚:同步信号的正脉冲,输出到单片机的P2.7
6脚:中放电路输出的AGC控制电压,控制高频头的信号
7脚:同步信号的负脉冲,输出到单片机的P2.6
8脚:输出到高频头的控制端
9脚:AFT电压输出端,经单片机检测后确定电视机搜台的最佳状态
10脚:接地
1.1.3 液晶屏驱动电路模块
1.1.3.1 硬件组成
此电路由色度亮度解码电路、。。。。。。电路组成,如图1-6。
图1-6 液晶屏驱动电路模块
1.1.3.2 接口定义
图1-7 液晶驱动模块接口
J601:亮度调节电位器接口
J602:对比度调节电位器接口
J603:液晶屏驱动电路的视频信号输入和工作电压+12V
1.1.4 伴音电路模块
1.1.4.1 硬件组成
此电路由鉴频电路、电压放大电路和功率放大电路等组成,如图1-8。
图1-8 伴音电路模块电路
1.1.4.2 接口定义
图1-9 伴音模块电路接口
1、2脚:接地
3、4脚:音量自动控制输入端
5、6脚:电视信号输入端
7、8脚:电视声音信号输出到扬声器
9、10脚:+24V模块工作电压
1.1.5 单片机控制电路模块
1.1.5.1 硬件组成
此电路主要由单片机、1602液晶屏、A/D转换器ADC0832、红外接收头、I2C存储器24C08等电路组成,如图1-10.
图1-10 单片机控制电路模块
1.1.5.2 接口定义
图1-11 单片机控制电路模块接口
其中:
1脚:检测正脉冲的同步信号
2脚:+5V模块工作电压
3脚:检测正脉冲的同步信号
4脚:接来自中放电路的AFT电压,经A/D转换后判断接收电台的最佳状态
5脚:输出到音量自动调节电路,在自动调节电路中经PWM调节后输出
6脚:输出控制VH波段电压
7脚:输出到亮度自动调节电路,在自动调节电路中经PWM调节后输出
8脚:输出控制VL波段电压
9脚:输出到对比度自动调节电路,在自动调节电路中经PWM调节后输出
10脚:输出到调台自动调节电路,在自动调节电路中经PWM调节后输出
1.1.6 电源电路模块
1.1.6.1 硬件组成
此电压主要由变压器、整流管、稳压管、DC-DC变换等电路组成,如图1-12。
图1-12 电源电流模块
1.1.6.2 接口定义
图1-一三 电源电路接口
其中:
1、2脚:+24V伴音电路工作电压
3、4脚:+12V液晶屏工作电压
5、6脚:+33V高频头调台电压
7、8脚:+5V单片机工作电压
9、10脚:+12V中放电路工作电压
1.2 配件资源
序号
配件
数量
备注
1
7寸液晶屏
1
加ABS塑料外壳
2
1602液晶屏
1
蓝屏
3
51单片机程序下载线
1
4
耳机一副
1
5
电源线
1
6
红外遥控器
1
二、光盘资料
液晶电视实习平台说明书、51单片机下载程序、单片机调台程序。
三、实习平台的使用
3.1 启动过程
1、如图接好底板与各模块之间的连线,把电源电路模块的对外接口断开,插上电源线,打开箱体后面的电源开关,正常情况下,电源电路模块上5个LED会发光,表示电源电路工作正常。
2、把各个模块的电源打开,各个模块的电源指示灯应该会亮。
3.2 手动调台过程
1、启动之后,把高频头及自动调节模块的5个手动/自动波段开关都拨至“手动”一边。
2、接上电视信号线,选择VH和VL的波段电压。
3、调节调台的线性电位器,收到相应电视节目。
3.3 单片机调台过程
1、启动之后,把高频头及自动调节模块的5个手动/自动波段开关都拨至“自动”一边。
2、接上电视信号线。
3、按电视遥控器的相关按钮进行选台。
液晶电视实习平台实验指导书
桂林电子科技大学
机电综合工程训练中心
2010.3
GDYJ0910液晶电视实习平台介绍
GDYJ0910液晶电视实习平台是桂林电子科技大学机电综合工程训练中心设计研发的教学设备系统,集实验和实习于一体,该系统针对工科高校本、专科电子信息类专业的实验实习教学而设计的。
GDYJ0901液晶电视实习平台的电路采用了模块化的设计理念。根据电视接收和显示原理,把液晶电视的电路分为六大模块,各个模块都是相对独立的,模块之间的信号是经过固定的接口进行连接。实习平台的组成方框图如下:
图1-1 液晶电视实习平台组成方框图
GDYJ0910液晶实习平台的特点:
1、 模块化设计理念
该系统是根据电视的接收和显示原理,把液晶电视的电路划分为高频头电路模块、中放电路模块、液晶屏驱动电路模块、伴音电路模块、单片机控制模块和电源电路模块六大模块。各个模块的电路的功能是独立实现的,模块之间是经过固定的接口连接。既能保证模块的独立性,又能保证液晶电视的整体性。模块化设计优点在于可以自由更换各个模块,特别适合于实习教学。
2、 模拟数字技术结合
液晶电视的实现是利用模拟电路技术来实现的,而实习平台加入了单片机控制模块,用于红外信号的接收和手动调节的要求。这样就把数字电子技术引入了实习平台,实现模拟电子技术的结合。
3、 硬件与软件相结合
液晶电视系统可以通过手动调节的办法可以纯硬件实现,也可以加入单片机控制系统实现自动调节,在单片机控制系统中可以通过编程来完成不同的功能。真正做到了硬件和软件的结合。
4、 集实验与实习于一体
由于模块化的设计,模块的实现和更换是很方便的。在该平台上可以完成多个实验,还可以通过扩展模块来完成其他相关的实验。同时该系统也适合于学生实习,学生可以单独设计某一模块,也可以设计整个液晶电视,非常方便实现。而且在调试过程中通过模块替换的办法很容易排除各类故障。所以说该系统既能用于了解电视原理实验和单片机的实验,又可以用于电子类学生的实习课程。
5、 系统扩展升级方便、实现电路的多样化
只要了解了液晶电视的实现过程,设计过程中不固定某一个电路实现。凡是能完成同样功能的电路都可以替换。这个设计克服了高等院校实习课程内容的单调性,学生可以充分发挥自己的想象力去设计电路,并通过做板完成测试。
在实验平台上可以开设的实验内容:
实验一 稳压电源的测试
实验二 图像中放级的测试
实验三 伴音低放电路的测试
实验四 亮度色度解码电路的测试(扩展内容)
实验五 单片机键盘显示实验
实验六 单片机多路PWM控制实验
实验七 EEPROM读/写实验
实验八 单片机红外遥控实验
实验九 A/D转换实验
注:详细的实验内容附后。
实验一 稳压电源的测试
电视机的电源电路是电视机能正常工作的前提条件。
一、仪器设备及调试中作用
仪器设备
数量
作用
SS1792C直流稳压电源
1
提供所需电压并用于测量电流
指针式万用表
1
测量交流输入电压和整流等其它直流电压
二、测量在路直流电阻(电视插头不接电源)
下面三项测试中,电视机插头不接电。
1. 变压器初级电阻
方法:万用表档位拨到×1Ω,短接表笔,调零后,测量电视机电源插头两极间电阻。
数据记录:R1= 。
2. 整流输出电阻:
方法:万用表档位拨到×1KΩ,调零后,测量C401两极间电阻,红表笔接才C401正极,黑表笔接C401负极,指针稳定后,读出正向电阻R2;表笔对换后,测出反向电阻R3。
万用表档位拨到×1KΩ,调零后,测量C411两极间电阻,红表笔接才C411正极,黑表笔接C411负极,指针稳定后,读出正向电阻R4;表笔对换后,测出反向电阻R5。
数据记录:正向电阻R2= ;反向电阻R3= 。
正向电阻R4= ;反向电阻R5= 。
3.稳压电源输出电阻:
方法:万用表档位拨到×1KΩ,调零后,测量C403两极间电阻,红表笔接C403正极,黑表笔接C405负极,指针稳定后,测出正向电阻R6;表笔对换后,测出反向电阻R7。
万用表档位拨到×1KΩ,调零后,测量C405两极间电阻,红表笔接C405正极,黑表笔接C405负极,指针稳定后,测出正向电阻R8;表笔对换后,测出反向电阻R9。
数据记录:正向电阻R6= ;反向电阻R7= 。
正向电阻R8= ;反向电阻R9= 。
注:只有电阻值均不出现0或∞的情况下,才能进行通电测试。
三、通电测试
1、计算全波整流电路输出与输入的关系
通电条件下,电源开关打开,用万用表的交流档测量变压器两路输出电压分别为:
V1=_______________ V2=_________________;
用万用表直流档测量经过整流桥滤波之后的直流电压分别为:
V3=_______________ V4=_________________;
计算电压输入有效值与输出得关系:
Q1=V1/V3=____________ Q2=V2/V4=_______________。
2、静态工作电压测试
(1)DC-DC变换电路U403—LM34063各脚电压(填入下表):
管脚
1
2
3
4
5
6
7
8
电压(V)
(2)跟随输出Q401偏置电压:
Ub= V; Uc= V; Ue= V。
3、各个模块消耗功率的测量
注:在连接电路之前要把直流稳压电源调节到规定的电压值,以免因电压过高烧坏电路模块。
把+5V的开关拨到下端,用直流稳压电源供电,正常工作时,从直流稳压电源的电流显示表读出该电流值I1=____________,算出单片机控制模块消耗功率P1=________________。
把IFA12V的开关拨到下端,用直流稳压电源供电,正常工作时,从直流稳压电源的电流显示表读出该电流值I2=_____________,算出中放电路消耗功率P2=________________。
把LCD12V的开关拨到下端,用直流稳压电源供电,正常工作时,从直流稳压电源的电流显示表读出该电流值I3=__________,算出液晶屏驱动电路消耗功率P3=______________。
把+24V的开关拨到下端,用直流稳压电源供电,正常工作时,从直流稳压电源的电流显示表读出该电流值I4=_____________,算出伴音电路消耗功率P4=________________。
把+33V的开关拨到下端,用直流稳压电源供电,正常工作时,从直流稳压电源的电流显示表读出该电流值I5=_____________,算出高频头电路功率P5=________________。
计算电源输出总功率P=P1 + P2 + P3 + P4 + P5 =___________________。
***电源调试结束,关闭电源,整理好仪表与导线***
思考题
1、电源电路工作的原理是什么?
2、DC-DC变换的基本原理是什么?
3、什么是纹波电压?纹波电压为电路有什么影响?
实验二 图像中放级测试
电视机中放幅频特性直接影响到整机的灵敏度、选择性及通频带等特性。
一、 仪表设备及调试中作用
仪器设备
数量
作用
BT-3频率特性测试仪
1
测量中频放大器通道的频率特性
万用表
1
测量中频放大器直流工作点电压
二、 图象中放的调试
1、静态工作电压测量(不接收电视节目)
(1)三极管Q201电路组成预中放级电路,主要作用是为了补偿声表面波滤波器的插入损耗,测量其静态工作点电压是保证其工作正常的关键。
数据记录:Ub= v;Uc= v; Ue= v。
(2)中放IC201-D7611各管脚工作电压:
管 脚
1
2
3
4
5
6
7
8
电压(V)
管 脚
9
10
11
12
一三
14
一五
16
电压(V)
2、中放幅频特性的测试
电视机中放幅频特性直接影响到整机的灵敏度、选择性及通频带等特性。
(1)预置BT-3频率特性测试仪;
预置方法:
① 频标选“1.10”(表示短标为1MHZ,长标为10MHZ),频标幅度与扫频宽度合适;
② 扫描方式选“窄扫”,输出衰减的粗细调置于“0”,调Y位移选钮使显示屏上基线于合适位置;
③ 旋动中心频率旋钮,找到零标(不规则点)后,再继续顺时针方向旋中心频率旋钮,数3个长标,5个短标,对准显示平中心垂直线。即中心频率为35MHZ;
④ Y轴输入口选用带检波探头(带有金属头的电缆线),与扫频输出口短接;
⑤ 调节Y增益旋钮,使中心频率35MHZ点的基线与扫频线间距离为6大格(调好后就不能再动此旋钮了)。预置完毕。
(2)关闭电视和B-3电源,如图2-1连接好测试电路。Y轴输入线换用开路电缆(双夹子线)。
(3)开机后,电视置空频道,出现中放幅频特性曲线。标准的幅频特性曲线如图2-2,曲线应满足:增益≥60db;图象载频点38MHZ增益≥50%;双峰间带宽约3MHZ,顶部凹陷≤20%;三个吸收点幅度应分别为≤5%(31.5MHZ)、≤7%(39.5MHZ)、≤3%(30MHZ)。
(4)画出实测中放曲线,填入图2—3(因为测试条件与仪器误差,应与标准曲线有区别)。
(5)调节BT—3扫频仪“输出衰减”的粗细调旋钮,使中心频率基线与扫描线间距为6格,可读出本机实际中放级增益为:粗调+细调= db。
***中放电路调整完毕,关闭电源,整理仪器与测试线***
思考题
1、中放电路出现问题,电视将出现什么故障现象?
2、声表面波滤波器在中放电路的作用是什么?为什么要增加预中放电路?
3、AGC电路的作用是什么?
4、AGC电路按被控管受控方式可分哪几种?按电路形式可分为哪几种?
5、画出延迟式AGC特性曲线,并简单说明。
6、画出电视机中放电路原理框图。说明各框功能。
7、中放电路输出的信号包括哪些?分别被送到哪个电路?
实验三 伴音低放特性的测试
一、仪表设备
仪器设备
数量
作用
失真度测试仪
1
测量伴音低放的谐波失真
示波器
1
测量伴音低放的输出波形
低频信号发生器
1
产生调试所需的各种频率信号
交流毫伏表
1
测量输入和输出的信号强度(峰缝值)
万用表
1
测量伴音电路静态直流电压
二、伴音低放电路的调试
1、静态工作点测试
(1) 静态电流的测试(不接收电视伴音):
方法:用万用表电压1V档,测量3R5(一八Ω)两端电压。
数据记录:U = V,求得 Im = U / 一八= mA 。(小于30mA)
(2) 伴音集成电路IC301-D7273P管脚工作电压:
管 脚
1
2
3
4
5
6
7
电压(V)
管 脚
8
9
10
11
12
一三
14
电压(V)
2、动态调试:
(1) 伴音低放调试仪表连接如图5-1,电视不接收信号。
注:Y2、Y3、Y7分别对应于电路板上的35、34、19点。
交流毫伏表只配一个的时候,可以在输入和输出端之间交替测量。
交流毫伏表在开机时,会因为电流冲击而瞬间达到满偏,属于正常现象,几秒后会恢复正常。
(2) 灵敏度的测量:
放大电路灵敏度一般指达到额定输出功率或电压时输入端所加信号的电压大小。
测量方法:低频信号发生器输出1KHZ的信号,缓慢调整信号的输出电平强度,同时观查测V2的毫伏表指示,当V2刚好为2V时,停止调整。读出测V1的毫伏表的读数。
数据记录:伴音低放灵敏度为: 。(小于50mV)
(3) 额定功率的测量:
最大不失真输出功率指的是放大器输入一定频率正弦波,调节输入信号幅度,输出失真度不大于某值时(5%)的最大输出功率。
测量方法:
① 低频信号发生器输出1KHZ的信号,逐渐增大低频信号发生器输出强度(或调节音量电位器)。同时观察示波器显示的波形,初步确定波形临界失真时,停止调整;
② 用失真度测试仪测量出此时的失真度。如果失真度大于5% 。适当减小信号发生器输出强度;
③ 如果测出失真度小于5% ,满足测量最大不失真功率条件。读出测量V2的毫伏表值。
数据记录: Pmax = V22/ r = 。 (Pmax应该≥0.5W,r为扬声器直流阻抗为8Ω)
本实验中失真测试仪测量失真的方法:
① 信号从不平衡口输入,衰减器置“0”,量程置“100%”,“电压/校准/失真”置“电压”,频率表选到1KHZ;
② 观察表头指针是否超过表头的最大指示,如超过,通过衰减器是指针回到刻度范围内。如没超过,则进入第③步;
③“电压/校准/失真”置“校准”,调节“校准”旋钮,使表头指针指到最大刻度。
④“电压/校准/失真”置“失真”,调节频率“粗调”、“微调”和“相位”三个旋钮,是指针指示最小。从指针指示可以直接读出失真度,读失真度时指针指示在表头中间时最准,可以通过减小“量程”档位来调整:
失真度读数方法:
量程档位的位置表示满刻度时的失真度,如置“100%”,表示满刻度失真为100% ,指针指到“0.5”(读表头满刻度为1的一排)时,可以换算出失真度为50% 。如量程置“30%” ,表示满刻度失真为30% ,指针指到“1.5”(读表头满刻度为3的一排),可以换算出失真度为一五% 。
(4)频率响应的测量:
功放的输出增益随输入信号频率的变化而提升或衰减和相位滞后随输入信号频率而变的现象。这项指标是考核功放品质优劣的最为重要的一项依据,该分贝值越小,说明功率放大器的频率响应曲线越平坦,失真越小,信号的还原度和再现能力越强。
测量方法:
① 低频信号发生器输出1KHZ的信号,调整信号发生器输出强度和音量电位器,同时观测V2的毫伏表指示,当V2为-2db(毫伏表置放到“1V/Odb”档,指针指到-2db)时,停止调整;
② 低频信号发生器的输出信号频率从100HZ调整到10KHZ,观察V2毫伏表指示电压的变化情况。
数据记录:V2在 db到 db间变化,表明电压不均匀度小于2db 。
***伴音功放电路调整完毕,关闭电源,整理仪器与测试线***
思考题
1、画出伴音通道的原理方框图,并解释各方框的功能作用。
2、全电视信号中包含伴音信号吗?
3、伴音信号是采用什么方式调制的?
4、伴音在电视机中采用二次变频处理,两次降频频率各是多少?
5、如何判断是伴音电路出故障导致的无电视伴音现象?
实验四 亮度色度解码电路测试实验(扩展内容)
一、仪表设备
仪器设备
数量
作用
双踪示波器
1
测量各点的信号波形
万用表
1
测量静态工作点电压
二、调试步骤
1、静态工作点的测量
(1)亮度与色度控制切换集成电路IC601-4053管脚电压:
管 脚
1
2
3
4
5
6
7
8
电压(V)
管 脚
9
10
11
12
一三
14
一五
16
电压(V)
(2)亮度色度分离集成电路IC602—TDA9一八1管脚电压:
管 脚
1
2
3
4
5
6
7
8
电压(V)
管 脚
9
10
11
12
一三
14
一五
16
电压(V)
(3)亮度色度解码电路各三极管偏置电压:(单位V)
B
E
C
Q6一五
Q616
Q617
2、亮度色度解码电路关键点波形的测量
把测试结果填入下面的表4-1中:
(1)全电视信号波形:
测试点:液晶屏驱动电路图纸上的②点。
(2)色差信号波形:
测试点:液晶屏驱动电路图纸上的③点。
(3)亮度信号波形:
测试点:液晶屏驱动电路图纸上的④点。
(4)红色差信号波形:
测试点:液晶屏驱动电路图纸上⑤点。
(5)蓝色差信号波形:
测试点:液晶屏驱动电路图纸上的⑥点。
用示波器测量波形时,如果已经知道被测信号频率,则先选好扫描时间选择开关,可以提高测量的速度。
表4-1 测量信号波形
信号名称
全电视信号
色差信号
亮度信号
波 形
信号名称
红色差信号
蓝色差信号
波 形
***亮度色度解码电路调试完毕,关闭电源,整理仪器与测试线***
思考题
1、目前国际上流行的三大彩色电视制式是什么?
2、彩色全电视信号包含什么信号?
3、如何从色差信号中分离出R、G、B三基色信号?
实验四 51开发环境的使用
一、实验目的
1、熟悉Keil C51 开发环境
2、学会如何下载程序
3、掌握Keil C51的相关参数设置
4、掌握C51程序函数库文件的定义与引用
5、掌握单片机C语言编程的基本结构
5、掌握C51中断的编程方法
二、实验设备
PC机、GDYJ0910液晶电视实习平台、Keil C51 开发环境、ISP51下载环境
三、Keil C51 开发环境设置
1、新建工程
在编辑程序之前,首先要新建一个工程。点击面板上的Project(工程)àNew(新建)à给工程命名à保存在指定的路径。
2、选择目标器件
保存了工程之后,软件会跳出目标器件的选择界面。这个时候,我们就需要根据所要烧写的单片机型号,来选择。比如说AT89S51就要选择Atmel公司下面的AT89S51。
3、新建文件
选择完目标器件之后,就会进入到软件编辑界面。此时所建立的工程是空白的,接下来就要建立一个空白的文本文件,并在里面编写你的软件。软件编辑完成后,根据软件的内容,给此文本文件命名。当用C语言编写时,在保存的时候文件的后缀用“.C”;当用汇编语言编写时,后缀用“.ASM”;如果是要建立库函数文件,后缀用“.h”。然后点保存,即自动保存在工程所在的文件夹里面。
4、在工程中添加程序
保存了编写好的文本文件之后,如果要在工程中编译、调试这个文件,就要把它添加到工程中去。添加时只需双击“Source Group 1”,就会跳出添加对话框,然后在里面选中刚才所保存的文件,点击“Add”即可。
5、编译软件
点击左上方的编译按钮(Rebuild all target fields)软件自动对编辑好的程序进行编译处理。但此时并没有生成可烧写到单片机里的HEX文件。
6、设置生成HEX文件
在工程的根目录“Target 1”上点击鼠标右键,选择“Options for Target ‘Target 1’ ”。在弹出的菜单上点击Out(输出),并在选项Create HEX file(创建HEX文件)右边的方框上点击打勾,然后点击“确定”即可。
此时再编译一次,就可以在工程文件夹里面生成“.hex”为后缀的文件。此文件为下一步把程序下载到单片机上的二进制文件。
四、单片机程序下载
单片机程序下载方法会根据编程器的不同而不同。本实验采用了89s51的ISP下载方式把程序下载到芯片里。ISP下载器与上位机连接时,常用的有并口、串口和USB口三种接口。下载软件我们使用了PROG ISP来进行。在下载之前首先要选择编程器的接口类型,其次是下载芯片的型号。选择好了之后单击“调入flash”,选择已经编译好的.hex文件,然后点击“自动”,下载软件就会自动把hex文件下载到芯片上。
五、51单片机C语言编程方法
1、MC51库函数
C51提供了丰富的可以直接调用的库函数,使用库函数可以使程序代码简单,结构清晰,易于调试和维护。下面介绍几类重要的库函数,及其引用方法:
(1)专用寄存器文件
专用寄存器文件为51所有特殊功能寄存器SFR和他们的位的定义。例如8031、8051均为reg51.h,其中包含了所有8051的SFR及其位定义。而reg52.h主要为80C52和80C32的专用寄存器定义文件。专用寄存器文件里面主要把寄存器的名字和它所对应的地址联系起来。这样在编程时,就可以直接引用名字,对寄存器进行设置。通常特殊功能寄存器用sfr来定义,而sfr16用来定义16位的特殊功能寄存器如DPTR。可位寻址的特殊功能寄存器的位变量定义用关键字sbit。下面给出reg52.h部分文件内容:
/* BIT Registers */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sbit P = PSW^0; //8052 only
在用C语言编写51程序时,必须要在程序开始时,引用专用寄存器文件。
(2)intrins.h库函数
内部包含了9个本征函数,编译时产生的是插入代码,而不是产生ACALL或LCALL指令去调用一个功能函数,因此代码量小,效率更高。其内部函数说明如下:
_crol_,_cror_: 将char型变量循环向左(右)移动指定位数后返回。
_iror_,_irol_: 将int型变量循环向左(右)移动指定位数后返回。
_lrol_,_lror_: 将long型变量循环向左(右)移动指定位数后返回。
_nop_: 相当于插入NOP。
_testbit_: 相当于JBC bitvar测试该位变量并跳转同时清除。
_chkfloat_: 测试并返回源点数状态。
(3)math.h库函数
math.h内部包含常用的算术运算函数,如sin计算正弦、cos计算余弦、tan计算正切、log计算参数的自然对数等等。在程序设计中,如果需要用到一些数值运算可以直接调用库里面的函数。
(4)库函数的引用
在程序中引用库函数的时候,通常在程序的开始时引用,也叫做头文件。引用库函数要用#include 语句,下面给出一段引用的例子:
/*头文件*/
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define _Nop() _nop_()
(5)自定义库函数
除了可以调用现有的库函数之外,在编程过程中,如果遇到需要重复调用的函数,或者为了使程序结构清晰,易于移植,我们也可以编写自己的库函数文件。下面用一个例子来讲解自定义库函数文件和库函数的过程。
在设计中,如果有多个程序都需要用到LCD显示程序,我们就可以利用前面已经编写好,并调试成功的LCD显示程序,把对LCD所有操作的子程序定义成一个“lcd.h”的库文件,库文件里面包含了所有LCD接口程序的定义和子程序的具体实现。在需要用到的时候,只要在程序的头文件里用“#include lcd.h”,就可以在下面的程序中直接调用里面的子程序了。
自定义库文件和库文件里面函数的编写需要两个文件,一个是以“.h”为后缀的库文件,里面主要包含了引脚的定义、全局变量的定义和包含的子函数说明。如下所示:
“lcd.h”
-----------------------------------------------------------------------------
#ifndef _LCD_H_
#define _LCD_H_
#define LCD_BUS P2 /*define lcd data bus*/
sbit _rd = P0^6; /*read signal*/
sbit _wr = P0^5; /*write signal*/
extern void void delay(uint t) /*delay*/
extern void DataWrite(uchar wrdata); /*write data*/
#endif
另一个是与“.h”文件名相同但以“.c”为后缀的文件,此文件主要是对前面“.h”文件内部定义的子函数,进行详细描述并实现。如下所示:
“lcd.c”
-----------------------------------------------------------------------------
#include "lcd.h"
void delay(uint t)
{ uint j;
for(j = 0; j < t; j++)
_nop_(); }
void DataWrite(uchar wrdata)
{ delay(1);;
_rd = 1;
_wr = 1;
rs = 1;
LCD_BUS = rr(wrdata); /*write data*/
省略 }
编辑完之后,如果在其它程序需要调用LCD读写指令时,只要在程序的开始加上#include "lcd.h"语句即可。
2、C51程序结构
在编写程序时,要使程序能在单片机上运行,最基本的要求是有一个主程序main()函数。单片机上电的时候,会跳到初始地址#0000H开始运行。C语言中,地址#0000H即是main()函数的入口地址。所以程序设计时,主要的操作流程是在main()函数中实现的。而其他子函数的定义和编写可以放在main()函数之外进行。通常程序结构如下例所示:
#Include “头文件”
#define 定义变量
play1();
play2();
main()
{ play();
play2() }
由于定义的函数的作用域遵循向下原则,所以要使在main()函数里面调用的play1()和play2()有效,必须在main()函数的之前定义好。或者在建立需要调用子程序的库函数文件,并在main()函数的开头用#include语句把它包括进来。
3、中断编程
(1)C语言中断命名方式
C51能够用C来声明中断和编写中断服务程序。中断过程通过使用interrupt 关键字和中断号(0~31)来实现。中断号告诉编译器中断程序的入口地址。中断命名方式如下所示:
中断函数() interrupt 中断号
中断号对应着IE寄存器中的使能位,IE寄存器中的0位对应着外部中断0。下表反映了中断号和中断源的对应关系。在编程时,根据中断源的类型来设置中断号即可。
中断号
中断源
0
外部中断0
1
定时器0溢出
2
外部中断1
3
定时器1溢出
4
串行口中断
5
定时器2溢出
例如:用定时器0,当定时器溢出时转入其中断子程序,中断子程序如下所示:
void tim0_i
展开阅读全文