




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录 TOC o 1-5 h z 刖言1第1章系统设计21.1温度光强采集系统2第2章硬件设计22.1控制器2STM8S103 单片机2STM8S103 单片机内部 ADC42.2测温电路42.2.1测温使用的是NTC热敏电阻42.2.2热敏电阻硬件原理图62.2.3热敏电阻硬件连接图7 HYPERLINK l bookmark24 o Current Document 2.3光强测试电路72.3.1光强测试电路使用的是光敏电阻性72.3.3光敏电阻硬件原理图82.3.4光敏电阻硬件连接图11 HYPERLINK l bookmark54 o Current Document 2.4显示电路1
2、12.4.1数码管11TM1628芯片122.4.3显示电路原理图13 HYPERLINK l bookmark74 o Current Document 第3章软件设计17 HYPERLINK l bookmark77 o Current Document 3.1设计思路与流程图17 HYPERLINK l bookmark80 o Current Document ADC子程序17 HYPERLINK l bookmark83 o Current Document 3.3数据处理子程序19 HYPERLINK l bookmark86 o Current Document 3.4显示子程序
3、20 HYPERLINK l bookmark89 o Current Document 3.5整体程序20 HYPERLINK l bookmark92 o Current Document 第4章系统调试和功能测试28 HYPERLINK l bookmark95 o Current Document 4.1系统硬件调试28 HYPERLINK l bookmark98 o Current Document 4.2系统软件调试29 HYPERLINK l bookmark101 o Current Document 4.3系统功能测试30第5章结束语31参考文献32前言随着电子计算机信息技
4、术的不断发展和善, 采用单片机实现的温度与光强采集系统的应用越 来越多。且采用单片机实现的温度与光强采集系 统具有自动化和无人值守等特点,使得它们在许 多应用场合得到了广泛的应用。本文介绍的温度 和光强采集系统具有一定的通用性,它采用传感 器与单片机的A/D通道相连,简化了模拟采集的 设计,从而减小设计的复杂性,增加系统的可靠 性,也同时减小了 PCB的面积。显示模块主要是 驱动数码管便于实时观察。该系统充分体现了智 能化、低功耗、高精度的发展趋势。重点在于传 感器的设计及智能化、低功耗的硬件电路设计上。第1章系统设计1.1温度光强采集系统如图1.1所示为环境温度光强采集系统框图,该学年设计以
5、单 片机控制的温度光强采集系统为主,利用单片机来完成对温度及 光强的检测,实现在安全温度和光强内正常显示温度值和光强值。系统在温度采集时主要应用了 NTC热敏电阻,在光强采集时主 要应用了光敏电阻。这两个器件同时与STM8单片机的ADC通道3 连接,通过跳冒进行对温度和光强采集的切换。系统中还应用了 TM1628芯片进行数码管显示的驱动,一共应用了 3位数码管。图1.1系统方框图第2章硬件设计2.1控制器2.1.1 STM8S103 单片机STM8系列是意法半导体公司生产的低电压、高性能8位的单 片机;片内含8k字节可反复擦写的Flash和1k字节的随机存储 器(RAM);带有32个中断的嵌套
6、中断控制器,6个外部中断向 量,最多27个外部中断;16位通用定时器,同时带有3个捕获/ 比较通道(IC、OC或PWM);带有同步时钟输出的UART,智能卡 红外IrDA,LIN接口,SPI接口最高到8Mbit/s,I2C接口最 400Kbit/s;同时STM8S103单片机内还具有10位的+1LSB的A/D, 通道数随芯片不同而不同,少的有4个通道,多的则有16个通 道。STM8S103单片机还具有通用输入输出口 (GPIO),通用输入/ 输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达 8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出 口。另外部分口还可能会有如模拟输入,
7、外部中断,片上外设的 输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映 射到引脚上。复用功能的映射是通过选项字节控制的。请参考数 据手册关于选项字节的描述。每个端口都分配有一个输出数据寄 存器,一个输入引脚寄存器,一个数据方向寄存器,一个选择寄 存器,和一个配置寄存器。一个I/O 口工作在输入还是输出是取 决于该口的数据方向寄存器的状态。GPIO主要功能端口的各个位可以被单独配置可选择的输入模式:浮动输入和带上拉输入可选择的输出模式:推挽式输出和开漏输出数据输入和输出采用独立的寄存器外部中断可以单独使能和关闭输出摆率控制用以减少EMC噪声片上外设的I/O功能复用当作为模拟输入时可以关
8、闭输入施密特触发器来降低耗在数据输出锁存时支持读-修改-写输入兼容5V电压 I/O 口工作电压范围为1.6 V到V 口皿DDIOmax图2.1为STM8S103单片机示意图R 就(4JMCU-RS叶5I.0K (2X4)IrAD-dniver二I|GND4VCAPTb1 H3.3V(4)i:c-sci.,ADIN J(2 ADIN 2(3X4) LED-CS(3X4) Ltrxi KRM R37 R35 R36 1OK 111K K1K l()K10TT1316NR$TPIK-TLlOSCINPAIPD6/UART RXOSCOUT/PAPDUART TXvssPD4T2 1/BEEPVCAl
9、PPIH.-T2 2/A1X ETRVDDPD2 T2 3SPI NS&Ti-J/PAJPD1/SWMPF4PDtm BKPC7/SF MISOPC6.SP MOSlI2C SDA PB5PC5/SPI SCKI2C SCUFH4心Tl 4JCC0Tl ET哄IWPB3PC3/TI 3T1 3/AJN2ZPB2FC2/TI 2Tl 2AINI/PBIPCI.Tl HUART CKTl 1/AHWPBOPE5/SFI NSSUI5322L四 亟272625242351TT亟nFLWDIO (3X4)RXD STM (4)TXJ_SrM (4)BEEP (4) lOjOUli (4 O OUT2
10、(4SWIM (4 O OUT (4SF1-MISO SP-X(OSI (4SP1-SCK (4PWM-4 (3PWM-3 (3)PWM-2 (3PWM I. (3)(4)SPI-NSS (4)图 2.1 STM8S1032.1.2 STM8S103 单片机内部 ADC在STM8单片机中,提供的两个A/D,分别是ADC1和ADC2。 ADC1和ADC2是10位的逐次比较型模拟数字转换器,提供多达16 个多功能的输入通道A/D转换的各个通道可以执行单次和连续的 转换模式。(1)主要功能ADC1和ADC2的功能如下:10位的分辨率单次和连续的转换模式可编程的(转换频率的)预分频:f MASTER可
11、以被分频2到 18可以选择ADC专用外部中断(ADC_ETR)或者定时器触发信号 (TRGO)来作为外部触发信号模拟放大(对于具有V REF引脚的型号)转换结束时可产生中断灵活的数据对齐方式ADC输入电压范围:V WV WV2.2测温电路SSA IN DDA2.2.1测温使用的是NTC热敏电阻(型号:MF52AT)(1)型号MF52103H3950FANTC热 敏电阻环氧 系列电阻值阻值允 差B值B值允差B值类别10KQ5%3950K1%B25/50(2)电气性能序号项目符号测试条件最小 值正常 值最大 值单位31.25C的电 阻值R25Ta=250.05 CPt = 0. 1mw9.910.
12、010.1kQ32.50C的电 阻值R50Ta=500.05 CP =0.1mw/4.0650/kQ33.B值B25/ 50343634703504K34.耗散系数Ta=250.5C2.0/mw/ C35.时间常数TTa=250.5C/15sec36.绝缘电阻/500VDC50/MQ37.使用温度 范围/-55/+ 125C(3)温度特性MF52 10K3950温度特性表R25C=10KB(25/50)=3950KT(C)R(Ka)T(C)R(Ka)T(C)R(KA)T(C)R(KA)1218.14892510.0000386.1418513.92711317.6316269.5762395.
13、9343523.79361416.9917279.1835405.7340533.66391516.2797288.8186415.5405543.53771615.5350298.4784425.3534553.41461714.7867308.1600435.1725563.29391814.0551317.8608444.9976573.17521913.3536327.5785454.8286583.05792012.6900337.3109464.6652592.94142112.0684347.0564474.5073602.82502211.4900356.8133484.354
14、8612.77622310.9539366.5806494.2075622.71792410.4582376.3570504.0650632.6523(4)电阻与温度关系式的特性曲线图2.2热敏电阻硬件原理图热敏电阻两端电压与电阻的关系为:R=V*10.0/(4.0-V) 根据这几个关系式,我们就根据ADC采进来的电压可以推算出当 前温度的大概值了。2.2.3热敏电阻硬件连接图:2.3光强测试电路2.3.1光强测试电路使用的是光敏电阻光敏电阻,常用的制作材料为硫化镉,另外还有硒、硫化铝、 硫化铅和硫化秘等材料。这些制作材料具有在特定波长的光照射 下,其阻值迅速减小的特性。这是由于光照产生的载流
15、子都参与 导电,在外加电场的作用下作漂移运动,电子奔向电源的正极, 空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。光敏 电阻的工作原理是基于内光电效应。在半导体光敏材料两端装上 电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为 了增加灵敏度,两电极常做成梳状。用于制造光敏电阻的材料主 要是金属的硫化物、硒化物和碲化物等半导体。通常采用涂敷、 喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧 姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮 影响其灵敏度。入射光消失后,由光子激发产生的电子一空穴对 将复合,光敏电阻的阻值也就恢复原值。在光敏电阻两端的金属 电极加上电
16、压,其中便有电流通过,受到一定波长的光线照射时, 电流就会随光强的增大而变大,从而实现光电转换。光敏电阻没 有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交 流电压。半导体的导电能力取决于半导体导带内载流子数目的多 少。作用:光敏电阻器一般用于光的测量、光的控制和光电转换 (将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器对光的敏感性与 人眼对可见光(0.40.76m)的响应很接近,只要人眼可感受的 光,都会引起它的阻值变化。设计光控电路时,都用白炽灯泡光 线或自然光线作控制光源,使设计大为简化。2.3.2光敏电阻的基=(1)伏安特性:在
17、一定照度下两端的电压的关系称为光敏电阻的伏安特性。图敏电阻的伏安特性曲线。由图可见敏电阻的电流与光敏电阻462为硫化镉光 光敏电阻在一定的电压范围内,其特性曲线为直线。硫化镉光敏电阻的伏安特性(2)光照特性:光敏电阻的光照特性是描述光电流和光照强度之 间的关系,不同材料的光照特性是不同的,绝大多数光敏电阻光照特性是非线性的。图46-3为硫化镉光敏电阻的光照特性。电阻对不同波长的入射光有不同的灵敏度。光敏电阻的相对光敏 灵敏度与入射波长的关系称为光敏电阻的光谱特性,亦称为光谱 响应。图46-4为几种不同材料光敏电阻的光谱特性。对应于不 同波长,光敏电阻的灵敏度是不同的,而且不同材料的光敏电阻 光
18、谱响应曲线也不同。(4)频率特性:实验证明,.光敏,电阻的光电流不能随着光强改变 而立刻变化,即光敏电阻产生的光,电流有一定的惰性,这种惰性通常用时间常数表示。大多数的光敏电阻时间常数都较大,这是它的缺点之一。不同材料的光敏电阻具有不同的时间常数(毫秒数量级),因而它们的频率特性也就各不相同。图46-5为硫化镉和硫化铅光敏电阻的频率特性。100硫化铅80$ 60瓦0、琉化镉20/HatQ(5)温度特性:光敏电阻和其它半导体器件一样,受温度影响较大。温度变化时,影响光敏电阻的光谱响应,同时光敏电阻的灵光敏电阻的灵敏度和暗电阻也随之改变,尤其是响应于红外区的硫化铅光敏电 阻受温度影响更大。图46-
19、6为硫化铅光敏电阻的光谱温度特性曲 线,它的峰值随着温度上升向波长短的方向移动。20印修2.3.3光敏电立 40 *硫化钳光敏电阻的光谱温度特性图2.3光敏电阻硬件原理图2.3.4光敏电阻硬件连接图:2.4显示电路本设计显示电路应用的是一个由TM1628芯片驱动的3位的数码管 电路。2.4.1数码管数码管由八个发光二极管构成,分共阴和共阳两种,本设计 应用的是的是共阴的数码管,即如图2.4所示:SB31 HSE&4 卬SEG? U图KLSB32SB36sH.rOtlDl2.4共阴极数码管共阴极数码管就是发光二极管的所有的阴极连接到一块,当 GRID1置0时,选定当前的数码管,SEG17任意一位
20、或多位置1, 则可点亮相应的段。本设计的数码管原理图:若源 百0 90 二 H 忘!5 百!? = M3msau P?=H 口SEG18控制每, 时控制数码管的段彳SEGI段,SEG2GRID5GRID57控制3个-GRiTgrht数码管位,同片的对应引脚口位的引脚都接在了 TM1628芯上,即数码管由TM1628芯片驱动,是数码管点亮,下面就介绍一下本设计中应用的TM1628芯片。2.4.2 TM1628 芯片(1)概述TM1628是一种带键盘扫描接口的LED (发光二极管显示器) 驱动控制专用电路,内部集成有MCU数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量
21、可靠。主要 应用于VCR、VCD、DVD及家庭影院等产品的显示屏驱动。采用SOP28的封装形式。(2)特性说明采用功率CMOS工艺多种显示模式(11段X7位 14段X4位)键扫描(10X2)辉度调节电路(占空比8级可调)串行接口(CLK, STB, DIO)振荡方式:内置RC振荡(450KHz+ 5%)内置上电复位电路(3)管脚定义:TT121314NCGNDDIOGRID1CLKGRID?SIBGNDKEY1GRID3KEV2GRID4VDDGNDSEGI/KS1VDDSEG2/KS2SEG14/GRID5SEG3/KS3SEG13/GRID6SFG4/KS4SEG12GRjD7SFG5KS
22、5SEG10/KSI0SEG5/KS6SEG9/KS9SEG7/KS7SEG8/KS82826252423222120918T71615(4)管脚功能定义:符号管脚名称说明DIO数据输入/输 出在时钟上升沿输入/输出串行数据,从低 位开始。输出为N-ch open drainSTB片选在上升或下降沿初始化串行接口,随后 等待接收指令。STB为低后的第一个字 节作为指令,当处理指令时,当前其它处理被终止。当STB为高时,CLK被 忽略CLK时钟输入在上升沿读取串行数据,下降沿输出数 据KEY1KEY2键扫数据输入输入该脚的数据在显示周期结束后被锁 存Seg1/KS1Seg10/KS10输出(段)
23、段输出(也用作键扫描),p管开漏输出Grid1Grid4输出(位)位输出,N管开漏输出Seg12/Grid 7Seg14/Grid5输出(段/位)段/位复用输出VDD逻辑电源5V10%VSS逻辑地接系统地NC空脚内部未连线 注意:DIO 口输出数据时为N管开漏输出,在读键的时候需 要外接1K-10K的上拉电阻。推荐10K的上拉电阻。DIO在时钟的 下降沿控制N管的动作,此时读数时不稳定,如图所示在时钟的 上升沿读数才时稳定。IQKDK)(5)指令说明:指令用来设置显示模式和LED驱动器的状态。在STB下降沿 后由DIO输入的第一个字节作为一条指令。经过译码,取最高B7、 B6两位比特位以区别不
24、同的指令。B7B6指令00显示模式设置01数据命令设置10显示控制命令设置11 地址命令设置如果在指令或数据传输时STB被置为高电平,串行通讯被初 始化,并且正在传送的指令或数据无效(之前传送的指令或数据 保持有效)。(6)串行数据传输格式:读取和接收1个BIT都在时钟的上升沿操作。数据接收(写数据)CLKDIOSTBI 2345678)(命(飞0(熟 X 田B6 X B7数据读取(读数据)clk LlPLiTLH LFLnLnLPLD10X BO X Bl *、)( B7 BO X Bl X & 厂函)SIB注意:读取数据时,从串行时钟CLK的第8个上升沿开始设置 指令到CLK下降沿读数据之
25、间需要一个等待时间Twait(最小 1萨)。2.4.3显示电路原理图:(1X4) LED-DIO (IX4)LEDLK (1X4) LED-CS KI+33V SEGI SEG2 SEG3 SEG4 SEG5 SEG6 SEG710 IT uTM1628IZGND GRID I GRID2 GND GRID3 GRJIJ4 GND VDD SEG2.KS2 SEGI4.GR1D5 SEG3 KS3 SHGI3/GRJD6 SEG4KS4 SEGI2-GRID? SEG5/KS5 SEGIQKS1O SEG&KS6 SEG9.KS9 SEG7/KS7 SEGKKS8SHGl.KSlGND GRI
26、D2 RIDI GND GRID4 GRID?GND 4-3.3VGR1D6 GRID6 GRID? SKGJ SEG9 SEGS其中数码管的段选引脚与位选引脚与TM1628芯片的对应引脚 相连,图中标号相同的即为连在一起的引脚;TM1628芯片中的 LED-DIO、LED-CLK和LED-CS与单片机相连,已使温度与光强采 集回来的信号由ADC转换后在数码管上显示出来。第3章软件设计本部分详细介绍了基于STM8S103单片机的温度光强采集系统 的软件设计。根据系统功能,可以将系统设计分为若干个子程序 进行设计,如光强采集子程序,数据处理子程序、显示子程序、 执行子程序。采用IAR Embed
27、ded Workbench集成编译环境和C语言来进行系统软件的设计。本章从设计思路、软件系统框图 出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现, 最终编写出满足任务需求的程序3.1设计思路与流程图系统要完成温度光强采集,需要实现温度和光强信号的采集 与A/D转换、数据处理、数据显示、数据输出等基本功能。从功 能上可将其分为温度和光强信号采集及A/D转换、数据处理、人 机交互、执行四大部分进行设计,软件系统框图如图3.1所示:温度光强信号采集子程序,主要完成温度光强信号采集与A/D功能。采集子程序主要包括单片机ADC的配置、单片机从ADC 通道中读数据等部分。数据处理子程序,当单片机
28、收到ADC通道 温度和光强信号后,数据处理子程序对该数据进行处理,主要是 把采集到的二进制的温度光强数据转换成十进制光强数据。人机 交互子程序为数码管显示子程序。数码管显示子程序的功能是实 现将数据处理后的十进制光强数据,使用数码管显示出来。执行 子程序,该子程序所实现的功能是把系统采集来的温度和光强值 进行数据处理后,执行单片机的I/O 口输出的状态,从而控制数 码管的显示。3.2 ADC子程序模/数(A/D)转换测量子函数用来控制对ADC的模拟输入电 压进行A/D转换,并将对应的数值移入内存单元。首先应配置单 片机的I/O 口,使之成为ADC的通道;然后选择A/D转换模式, STM8S10
29、3单片机的ADC支持5种转换模式:单次模式、连续模式、 带缓存的连续模式、单次扫描模式、连续扫描模式;本设计只用 到了最简单的单次模式,由定时器控制每次转换的开启,注意 ADON位的两次开启,第一次只是把ADC从低功耗模式唤醒,之 后每次要开启转换时都要将ADON位置位才可以。单次模式:ADC 仅在唯一的通道(由ADC_CSR寄存器的CH3:0选定)上完成一 次转换,一旦转换完成,转换后的数据存储在ADC_DR寄存器中, EOC(转换结束)标志被置位。最后就是启动A/D转换。这些都是 需要配置单片机中的寄存器,下面介绍一下需要配置的寄存器。ADC配置寄存器:ADC_CR寄存器地址偏移值:0 x
30、02复位值:0 x0076543210保留EXTTRIGEXSEL1: 0ALIGN保留SCAN保留ADC控制/状态寄存器:ADC_CSR寄存器地址偏移值:0 x00复位值:0 x0076543210EOCAWDEOCIEAWDIECH3: 0把位5置1后,每次转换结束后都会产生转换结束中断,在中 断里要清除EOC标志,位3:0是选择要转换的通道AINx,如果 是单次模式,则转换的就是AINx通道,如果是扫描模式,则转换的是从AIN0到AINx通道。ADC数据高位寄存器:ADC_DRH寄存器地址偏移值:0 x04复位值:未定义76543210DH7: 0ADC数据低位寄存器:ADC_DRL寄存
31、器地址偏移值:0 x06复位值:0X0076543210DH7: 0当转换结束后,采样结果从这两个寄存器里读出,如果是多通道 扫描模式,数据则储存在ADC_DBRH和ADC_DBRL寄存器里。3.3数据处理程序设置分辨率为10位转化后得到的数据,进行相应的处 理,系统根据数据情况进行控制处理。温度或光强信号的 采集与A/D转换,并把数据传递给单片机,并保存起来。 数据处理时,把数据取出来,放在一个整型变量中。首先 取出整数部分进行处理,求出数据十进制表示时的百位、 十位及个位,再求小数部分数据。计算流程图如图所示:把小教乳 分逐次与 00H、若相等时进行相应3.4显示子程序因为显示用到4个LE
32、D数码管,考虑到STM8S103的I/O 口不足,所以采用STM8S103控制TM1628,TM1628驱动数码 管动态扫描法实现3位数码管的数值显示。节省I/O 口的目 的。测量所得的A/D转换数据放在定义的ad_data内存单元中,测量所得的 A/D数据在显示时需要经过转换变成十 进制BCD码。同时显示子程序还要完成单片机对TM1628芯片的初始化和配置的程序。3.5整体程序:3.5.1 main.c#include #include #include TM1628.h#define u8 unsigned char#define u16 unsigned int#define u32 u
33、nsigned longu16table110 = 0 xeb,0 x28,0 xb3,0 xba,0 x78,0 xda,0 xdb,0 xa8,0 xfb,0 xfa);u16table210 = 0 xef,0 x2c,0 xb7,0 xbe,0 x7c,0 xde,0 xdf,0 xac,0 xff,0 xfe);void delay(u16 n)(u16 i,j;while(n -)(for(i = 0;i 32;i +)for(j = 0;j 10;j +);void Clk_Config(void)(CLK_CKDIVR= 0 x00;/系统时钟 1 分频while(!(CLK_
34、ICKR & 0 x02);等待 HSI 准备好void Adc_Config(void)(ADC_CR2 = 0 x00;/禁止扫描,数据左对齐ADC_CSR = 0 x23;/选择转换通道为模拟通道3开启中断ADC_CR1 |= 0 x01;/从低耗唤醒转换delay(1);/等待ADC模块的上电完成void Uart_Init(void)(UART1_BRR2 = 0 x00;UART1_BRR1 = 0 x0d;/2MHZ 时波特率9600对应数值UART1_CR2 = 0 x08;/开启发送void UART1_Sendint(unsigned int ch)(while(!(UAR
35、T1_SR&0 x40);UART1_DR = ch;u16 value_process(u16 value)(u16 temperature;float ad_voltage,NTC_res; /将ad采集的数据转化为电压ad_voltage二value*3.3/1024.0; 计算热敏电阻的电阻值NTC_res=ad_voltage*10.0/(4.0-ad_voltage);/计算温度 temperature=(u16)(68.5751+0.1917*NTC_res*NTC_res-6.2730* NTC_res)*10.0;return temperature;void display
36、(u16 tempp)unsigned char yu1,yu2,yu3;yu1二tempp/100;计算百位数yu2=tempp%100/10;yu3=tempp%10;TM_w_data(0 x08,table1yu1);/计算十位数计算个位数百位数数码管显示TM_w_data(0 x0A,table2yu2); 十位数数码管显示TM_w_data(0 x0c,table1yu3);TM_w_command(0 x8e);int main( void )/ Clk_Config();个位数数码管显示Adc_Config();TM_init();Uart_Init();_enable_int
37、errupt();while(1)(ADC_CR1 |= 0 x01;delay(5);#pragma vector = ADC1_EOC_vector_interrupt _root void ADC1_EOF_HANDLER(void)(u8 temp;u16 ad_value,T;if(ADC_CSR_EOC != 0)(ADC_CSR_EOC = 0;temp = ADC_DRH;UART1_Sendint(temp);ad_value=ADC_DRH2;ad_value=ad_value+ADC_DRL;T=value_process(ad_value);UART1_Sendint(
38、temp);display(T);赋值循环写入每一位/写入第一位/右循环一位3.5.2 TM1628.c #include #includeTM1628.h/写入单字节函数void TM_w_BYTE(unsigned char TM_w_data)(unsigned char i,temp1,j=10;temp1 = TM_w_data;for(i = 0;i = 1; 写入命令void TM_w_command(unsigned char TM_w_data)(TM_DIO_OUT;/设置数据输出TM_STB_low;/片选拉低TM_w_BYTE(TM_w_data);/写命令TM_STB
39、_high;/拉高写入固定地址写入数据函数void TM_w_data(unsigned char TM_w_addr,unsigned char TM_w_data)(TM_DIO_OUT;TM_STB_low;TM_w_BYTE(TM_ADD_command + TM_w_addr); /地址写入 BYTETM_w_BYTE(TM_w_data);/数据写入BYTETM_STB_high;/忽略 CLK读取一个字节函数unsigned int TM_r_BYTE(void)(unsigned char i,j =10;unsigned int temp = 0;TM_DIO_IN;/设置为
40、输入模式TM_STB_low;初始化串行接口,等待接受数据for(i = 0;i = 1;/循环右移一位return temp;/按键读取函数unsigned int TM_r_key(void)(unsigned int i;unsigned char j = 15;unsigned int TM_r_dat4 = 0;定义四个数组,初始化为0unsigned int key_val = 0;TM_DIO_OUT;TM_STB_low;TM_w_BYTE(0 x42);/读键扫描命令TM_DIO_high;while(j -);for(i = 0;i 3;i +)个键用三个数组(TM_r_d
41、ati = TM_r_BYTE();/BYTE 写入数组TM_STB_high;for(i = 0;i 3;i+)(key_val |= (TM_r_dati&0 x03)3)(4* (2-i);/扫描键盘按键排列顺序为key_val:123456780900for(i=0;i(11-i)&0 x0001)=0 x0001) 检验哪个键被按下(if(i!=8)(if(i=9)i=i ;elsei=i+1;elsecontinue;break;if(i=12)i=0;return i;void TM_init(void)(PB_CR1 |= 0 x03;PB_CR2 &= 0 x03;PB_DD
42、R |= 0 x03;PD_CR1 |= 0 x80;PD CR2 &= 0 x80;PD_DDR |= 0 x80;TM_STB_high;TM_CLK_high;TM_w_command(0 x03);/设置显示模式TM_w_command(0 x44);/设置数据命令采用固定地址第4章系统调试和功能测试单片机的系统调试主要包括硬件调试和软件调试,这两者是 不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但 通常是先排除明显的硬件故障以后,再和软件结合起来调试以进 一步排除故障。可见硬件的调试是基础,如果硬件调试不通过, 软件设计则是无从做起。4.1系统硬件调试硬件设计方面从布线到焊接安装完成之后,就开始进入硬件 调试阶段。首先,我们应该排除元器件失效问题。造成这类错误 的原因有两个:一是元器件买来时就已坏了;另一个是由于焊接 错误,造成器件损坏。要排除这种错误我们可以采取检查元器件与 设计要求的型号、规格和连接是否一致,在保证安装无误后,用替 换方法排除错误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年试验检测师之道路工程通关提分题库及完整答案
- 2017年广东省中考数学试卷(含解析版)
- 2025《工程承包合同》
- 财务数据保密管理计划
- 适应市场变化的管理策略计划
- 2025建筑工程承包合同安全生产附件
- 个人入股建筑公司合同样本
- 人工带料合同范例
- 2025出口退税账户托管借款合同范本
- 确立班级学习核心价值观的计划
- 纵隔肿瘤护理查房
- 眼镜店销售培训课件
- 中小学学校落实中央八项规定自查报告
- 宜宾市属国有企业人力资源中心宜宾临港投资建设集团有限公司下属子公司2025年第一批项目制员工公开招聘笔试参考题库附带答案详解
- 2025年山东鲁泰控股集团有限公司下属驻陕西煤矿企业招聘(150人)笔试参考题库附带答案详解
- 2025届上海市浦东新区高三二模英语试卷(含答案)
- 2024-2025学年高一政治统编版下学期期中考试测试卷B卷(含解析)
- 内蒙古自治区呼和浩特市2025届高三第一次模拟考试物理答案
- 仓库管理奖惩制度
- 中级银行管理-2025中级银行从业资格考试《银行管理》点睛提分卷1
- 开曼群岛公司法2024版中文译本(含2024年修订主要内容)
评论
0/150
提交评论