ImageVerifierCode 换一换
格式:DOC , 页数:44 ,大小:298KB ,
资源ID:8992411      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8992411.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(太原理工大学单片机原理及应用课程设计报告.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

太原理工大学单片机原理及应用课程设计报告.doc

1、 单片机原理及应用课程设计 有害气体温度监控仪 学 院: 理学院 班 级: 应物 学 号: 姓 名: 指导老师: 太 原 理 工 大 学 单 片 机 原 理 课 程 设 计 任 务 书 课程设计题目: 有害气体温度监控仪 设计要求与原始资料 : 1 独立按时完成设计任务。 2 综合应用所学基础理论知识,培养独立思考问题和解决问题的能力。 3 锻炼学

2、生搜集资料和整理资料的能力。 4在熟悉掌握89S52芯片参数指标和相关知识的前提下,研发一台可以监控有害气体(二氧化硫,二氧化氮,一氧化碳)浓度和环境温度的仪器,把测量结果显示在八位数码管上,并画出相应原理图,PCB图。 5 论文要求语言简练,文字通畅,思路清晰。 设计的主要内容: 1画出有害气体温度监控仪控制电路的原理图并生成相应PCB图。 2编译程序实现其功能。 3在电路板上焊接各元件。 4调试运行并对不合理之处加以改正。 学生应交出的设计文件: 1 严格按照学校课程设计要求与格式编排。 2 课程设计正文不少于20页。 3 查阅相关资料

3、尽可能的全面。 主要参考文献(资料): 1《单片机中级教程---原理及应用》北京航空航天大学出版社 张俊谟 2 学林网 3《单片机程序设计基础》 北京航空航天大学出版社 周航慈 饶运涛 4《AVR单片机嵌入式系统原理与应用实践》 北京航空航天大学出版社 马潮 专业班级 应用物理学0601班 学生 仝步升 要求设计工作的起止日期2008年12月29日—2009年1月10日 指导老师签字 日期 教研室主任审查签字:

4、 日期 系主任批准签字: 日期 单片机原理及应用课程设计说明书 有害气体温度监控仪 目 录 第一章 选题背景与总体思路 6 1.1、选题背景 6 1.2、总体思路 6 第二章 设计原理 7 2.1、方案和选材 7 2.1.1、气体传感器 7 2.1.2、AT 89C52单片机 7 2.1.3、模数转换芯片TLC2543 8 2.1.4、数字温度传感器

5、DS18B20 8 2.1.5、数码管驱动芯片CH451 8 2.2、原理图 9 第三章 电路的功能实现 10 3.1、控制电路——89C52芯片 10 3.1.1、电源电路 10 3.1.2、复位电路 10 3.1.3、晶振电路 10 3.2、气体浓度的采集及处理 10 3.2.1、气体浓度的采集 10 3.2.2、模拟信号的处理 11 3.3、温度的采集及处理 15 3.4、显示电路的原理及应用 20 第四章 程序设计及说明 24 第五章 结果分析 43 5.1、实验结果分析 43 5.2、设计心得 43 参 考 文 献 44 第一

6、章 选题背景与总体思路 1.1 选题背景 空气中的二氧化硫,二氧化氮,一氧化碳含量超过一定范围会对人的身体造成伤害,甚至会发生其它严重的安全事故。某些生产场所需要配备监控这些气体浓度和环境温度的仪器。 单片机本身是一个微控制器,内部无任何程序,当它和其他器件设备有机地组合在一起,并配置适当的工作程序,就构成一个单片机应用系统。在应用系统中以它为核心, 控制其它外围电路协调工作,有很强的控制功能。随着时代的进步和发展,单片机作为一种比较成熟的技术,在我们生活,工作,科研等各个领域有着及其广泛的应用。 我们计划研发一台可以监控有害气体(二氧化硫,二氧化氮,一氧化碳)浓度和环境温度的仪器,

7、并把测量结果显示在八位数码管上。本试验的指导思想是运用单片机的控制功能对气体传感器,放大电路,数模转换电路,LED数码管驱动电路等进行控制。 1.2 总体思路 对于有害气体的检测,通过气体传感器将气体的浓度采集回来,将气体信号的变化转化成电信号,再由放大电路将电信号放大,经过A/D转换芯片,将模拟量转换成数字量,最后经过CPU的处理,通过显示电路将气体浓度值显示在数码管上。 对于温度的检测,通过数字式温度传感器直接将温度信号转化为数字信号,再通过CPU的分析处理,将正确的温度显示在数码管上。 本设计的由六个部分组成:气体传感器、数字温度传感器、A/D转换电路、LED显示电路、89C52

8、控制电路。 第二章 设计原理 2.1 方案和选材 关键词:气体传感器、AT89C52、模数转换芯片TLC2543、数字温度传感器DS18B20、数码管驱动芯片CH451。 2.1.1 气体传感器 二氧化硫传感器 二氧化氮传感器 一氧化碳传感器 2.1.2 AT 89C52单片机 其主要包含下列硬件资源: a)面向控制的8位CPU; b)片内振荡器及时钟电路; c)8K字节程序存储器ROM; d)256字节数据存储器RAM; e)三

9、个16位定时器/计数器; f)可寻址64K外部数据存储器和64K外部程序器空间的控制电路; g)32条可编程的I/O线; h)一个可编程全双工串行口; i)具有5个中断源,两级中断优先级; j)有位寻址功能,适于布尔处理的位处理机。 其优点: a)小巧灵活、成本低、易于产品化 ; b)可靠性高、适用的温度范围宽 ; c)易扩展、控制功能强 ; d)指令系统相对简单,较易掌握 。 2.1.3 模数转换芯片TLC2543 TLC2543由美国德州仪器公司于近几年推出,是有11个输入端的12位模数转换芯片,具有转换快、稳定性好、与微处理器接口简捷、价格低等优点。 2.1

10、4 数字温度传感器DS18B20 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 其性能优点如下: a)独特的单线接口仅需要一个端口引脚进行通信; b)多个DS18B20可以并联在惟一的三线上,实现多点组网功能; c)无须外部器件; d)可通过数据线供电,电压范围为3.0~5.5V; e)零待机功耗; f)温度以9或12位数字; g)用户可定义报警设置; h)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; i)负电压特性,电源极

11、性接反时,温度计不会因发热而烧毁,但不能正常工作; 2.1.5 数码管驱动芯片CH451 CH451是一个整合了数码管显示驱动和键盘扫描控制以及监控的多功能外围芯片,CH451内置RC振荡电路,支持多片级联,时钟速度从 0到 10MHz。可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;同时还可以进行64键的键盘扫描。其工作原理如下图所示。 | 2.2 原理图 图2-1原理图 第三章 电路的功能实现 3.1 控制电路——89C52芯片 3.1.1 电源电路 89C52芯片采用5V的直流稳压电源。 3.

12、1.2 复位电路 复位是单片机回到初始状态的一种操作,是处理单片机“死锁”的主要方法,复位电路即实现此功能。单片机上电后,从何处开始执行第一条指令,由系统复位后的状态决定。我们使用的复位器中的电容为极性电容,最大工作电压为16V,电容为10uV,最高工作温度105°。 3.1.3 晶振电路 由晶振和电容组成,与89C52的XTAL1及XTAL2两引脚相连,即可构成一个稳定的自激振荡器,为CPU提供稳定的震荡频率,保证89C52工作。 3.2 气体浓度的采集及处理 3.2.1 气体浓度的采集 10 二氧化硫,二氧化氮,一氧化碳气体传感器能感知环境中气体的存在及其浓度,根据气体传

13、感器转换成的电信号的强弱就可以获得待测气体在环境中存在情况的信息,从而可以进行检测监控。 放大电路放大由于气体含量变化引起的传感器的电压的变化,然后送入A/D转换器的输入端。对其基本要求是:①输入阻抗应与传感器输出阻抗相匹配;②一定的放大倍数和稳定的增益;③低噪声;④低的输入失调电压和输入失调电流以及低的漂移;⑤足够的带宽和转换速率(无畸变的放大瞬态信号);⑥高输入共模范围和高共模抑制比;⑦可调的闭环增益;⑧线性好、精度高;⑨成本低。 单管或双管构成的单级放大电路的增益有限,不能满足实际的需要,而需要由若干单级放大电路级联成多级放大电路来运用。 多级放大电路通常可分为输入级(其输入端与信

14、号源相连接)、中间级、末前级和末级(其输出端与负载相连接)四部分。其中,输入级和中间级属于小信号放大电路,而末前级和末级属于大信号功率放大电路。多级放大电路级间耦合方式的基本要求是:既要不失真地、有效地传送信号,又要保证各级都有合适的静态工作点,常用的耦合方式有:电容(又称阻容)耦合、变压器耦合、直接耦合、光电耦合。 3.2.2 模拟信号的处理 模拟信号的处理通过模数转换芯片TLC2543来完成。 (1)TLC2543引脚及功能 TLC2543是12位的开关电容逐次逼近模数转换器,有多封装种形式,其中DB、DW或N封装的管脚图见图。TLC2543有20根引脚,其它封装形式引

15、脚数及引脚功能相同。 引脚的功能简要分类说明如下: ①电源引脚 Vcc,20脚:正电源端,一般接+5V。 GND,10脚:地。 REF+,14脚:正基准电压端,一般接+5V。 REF-,13脚:负基准电压端,一般接地。 ②控制引脚 CS,15脚:片选端,由高到低有效,由外部输入。 EOC,19脚:转换结束端,向外部输出。 I/O CLOCK,18脚:控制输入输出的时钟,由外部输入。 ③模拟输入引脚 AIN0~AIN10,1~9脚、11~12脚:11路模拟输入端,输入电压范围:0.3V~Vcc+0.3V。 ④控制字输入引脚 DATA INPUT,17脚:控制字输入

16、端,选择通道及输出数据格式的控制字由此输入。 ⑤转换数据输出引脚 DATA OUT,16脚:A/D转换结果输出的3态串行输出端。 (2)控制字的格式 控制字为从DATA INPUT端串行输入TLC2543芯片内部的8位数据,它告诉TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4位(D7~D4)决定通道号,对于0通道至10通道,该4位分别为0000、0001、…、1010,该4位为其它数字时的功能,用于检测校正。低4位决定输出数据长度及格式,其中D3、D2决定输出数据长度,TLC2543的输出数据长度有8位、12位、16位,但由于TLC2543为

17、12位A/D转换芯片,经过分析可以看出,8位、16位输出对TLC2543的应用意义不大,宜定在12位输出,D3、D2两位为00即可。D1决定输出数据是高位先送出,还是低位先送出,若为高位先送出,该位为0,反之为1。D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。 (3)TLC2543接口   TLC2543只用4根线,即片选线CS,数据输入线DATA INPUT,数据输出线DATA OUT, 时钟线 I/O CLK与单片机相接。EOF未接入单片机,这是基于二个工作周期之间的单片机指令一般大于10μs,转换已经完成,不必判断EOF,也可以通

18、过试验或计算指令执行时间确定转换是否结束,这样可以省去一根接线。 三路模拟信号(二氧化硫,二氧化氮,一氧化碳)即电压信号从通道1(AIN0),通道2(AIN1),通道3(AIN2)输入,其控制字分别为00000000,00010000,00020000,输出的数字信号为12位,高位先送出,二进制。 (4)内部寄存器   TLC2543内部寄存器有输入数据寄存器与输出数据寄存器。输入数据寄存器存放从DATA INPUT端移入的控制字。输出数据寄存器存放转换好的数据,以供从DATA OUT端移出。 开始时,片选为高,I/O CLOCK、DATA INPUT被禁止,DATA

19、OUT呈高阻状态,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。上电后,片选必须从高到低,才能开始一次工作周期。12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATA OUT一位一位地移出。TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时

20、间约需10μs,转转完成EOC变高,转转的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。 TLC2543在每次I/O周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行移出。第一次读数由于内部读取的转换结果可能不准确,应丢弃。 (5)程序及文字说明 *************************************/ TLC2543驱动程序 #include #include /**************************************       

21、  2543控制引脚宏定义 *************************************/ #define CLOCK p17 /*2543时钟*/ #define D_IN p16 /*2543输入*/ #define D_OUT p14 /*2543输出*/ #define _CS p15 /*2543片选*/ #define uint unsigned int #define uchar unsigned char /**************************************   名称:delay   功能:延时模块   输入

22、参数:n要延时的周期数   输出参数:无 *************************************/ void delay(uchar n) { uchar i; for(i=0;i

23、ar port) { uint ad=0,i; CLOCK=0; //时钟通道打开禁止 _CS=0; //片选为低,开始工作, port<<=4; for(i=0;i<12;i++) // 12个时钟上升沿 {   if(D_OUT) ad|=0x01; //上个周期输出数据寄存器中的数据赋值给变量ad   D_IN=(bit)(port&0x80); 控制字从高位逐位输入到输入数据寄存器   CLOCK=1; // 时钟信号   delay(3); //延时半个周期   C

24、LOCK=0;   delay(3);   port<<=1;   ad<<=1; } _CS=1; // 采样结束,片选变低,开始转换 ad>>=1; return(ad); // 数字信号输出 } /**************************************   名称:main   功能:主函数   输入参数:无   输出参数:无 *************************************/ void main() {uint ad; while(1)

25、 {   ad=read2543(0); } } 3.3、温度的采集及处理 DS18B20可完成温度的采集和处理。 (1)DS18B20内部结构 温度LSB 温度MSB 用户字节1 用户字节2 配置寄存器 保留 保留 保留 DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时根据寄

26、存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 (2)读数过程 带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。 当符号位S=0时,表

27、示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。 (3)接口电路 采用电源供电方式, DS18B20的1脚接地,2脚作为信号线,3脚接电源。 (4)程序 //------------------------- // 程序名称:DS1820驱动程序 //------------------------- //函数声明,变量定义 #include #define jump_ROM 0xCC //跳过RO

28、M命令 #define start 0x44 //启动转换命令 #define read_EEROM 0xBE //读存储器命令 #define uchar unsigned char #define uint unsigned int sbit DQ=P1^0; //信号端定义 unsigned char TMPH,TMPL; //---------------------------------------------------------- // 函数名称:

29、 delay10ms // 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动 //---------------------------------------------------------- void delay10ms(uchar time) 每个周期10ms { uchar a,b,c; for(a=0;a

30、 // 函数名称: delay //---------------------------------------------------------- void delay(unsigned int N) { int i; for(i=0;i

31、Q=0; //拉低DQ线 delay(29); //延时至少480us~960us DQ=1; //将DQ线设置位逻辑高 delay(3); //延时等待deceive_ready响应 deceive_ready=DQ; //采样deceive_ready信号 delay(25);

32、 //等待时序结束 return(deceive_ready); //有deceive_ready信号时返回0,否则返回1 } //--------------------------- // 函数名称:read_bit // 入口参数: 无 // 返回接收的数据 // 函数功能:读一个bit子程序 //--------------------------- unsigned char read_bit(void) { unsigned char i; DQ=0;

33、 //拉低DQ线开始时序 DQ=1; //升高DQ线 for(i=0;i<3;i++); //延时至时序开始15us return(DQ); //返回DQ值 } //--------------------------- // 函数名称: write_bit // 入口参数: bitval // 函数功能:写一个bit子程序 //---------------------------

34、void write_bit(unsigned char bitval) { DQ=0; //拉低DQ线开始时序 if(bitval==1) DQ=1; //如果写逻辑为高 delay(5); //延时 DQ=1; //升高DQ线 } //---------------------------- // 函数名称: write_byte // 入口参数: va

35、l // 函数功能:写一个byte子程序 //---------------------------- void write_byte(unsigned char val) { unsigned char i,temp; for(i=0;i<8;i++) { temp=val>>i; //将val位右移i位赋值给比temp temp=temp&0x01; //取temp最低位 write_bit(temp); delay(5);

36、 //延时至时序结束 } } //---------------------------- // 函数名称: read_byte // 返回接收的数据 value // 函数功能:读一个byte子程序 //---------------------------- unsigned char read_byte(void) { unsigned char i,m,receive_data; m=1;receive_data=0; //初始化 for(i=0;i<8;i++) { if(r

37、ead_bit()) { receive_data=receive_data+(m<

38、收的数据 TMPL, TMPH // 函数功能:取出温度值 //--------------------------- void Get_temp(void) { Reset(); write_byte(jump_ROM); //发跳过ROM命令 write_byte(start); //发启动转换命令 Reset(); write_byte(jump_ROM); //发跳过ROM命令 write_byte(read_EEROM); //读存储器命令 TMPL=read_byte(); //读低8位温度

39、值 TMPH=read_byte(); //读高8位温度值 } //------------- //------------------- // 函数名称: main // 函数功能: 主函数 //------------------- void main() { for(;;) { Get_temp(); } 3.4、显示电路的原理及应用 本过程由CH451芯片驱动八位数码管来实现。 (1)CH451概述 CH451是一个整合了数码管显示驱动和键盘扫描控制以及监控的多功能外围芯片CH451内置RC振荡电路,支

40、持多片级联,时钟速度从 0到 10MHz。可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;同时还可以进行64键的键盘扫描。 (2)外部接口 CH451具有硬件实现的高速 4线串行接口,即4个信号线:串行数据输入线 DIN、串行数据时钟线 DCLK、串行数据加载线 LOAD、串行数据输出线 DOUT。其中DIN、DCLK、LOAD接单片机的三个I/O口。 字驱动引脚DIG4、DIG5、DIG6、DIG7接四个LED.段驱动引脚SEG0到7脚接LED的a、b、c、d、e、f、g、pd段,采用共阴极数码管,所以三脚接地。 (3)输出过程 ①单片机向 CH451输出

41、串行数据的过程是(低位在前): 输出一位数据,即向 DIN输出最低位数据 B0,并向 DCLK输出低电平脉冲(从高电平变为低电平再恢复为高电平),其中包括一个上升沿使 CH451输入位数据; ②以同样的方式,输出位数据 B0~B11; ③向 LOAD输出低电平脉冲,其中包括一个上升沿使 CH451加载串行数据。 (4)程序及文字说明 #include #define uchar unsigned char #define uint unsigned int #define ch451_dsp 0x0500

42、//设置默认显示方式 #define ch451_BCD 0x0580 //设置BCD译码方式 #define ch451_twinkle 0x0600 设置闪烁方式 #define ch451_reset 0x0201 //复位 #define ch451_syson1 0x0401 开显示 #define ch451_dig4 0x0c00 dig4,dig5,

43、dig6,dig7接四个八位LED #define ch451_dig5 0x0d00 #define ch451_dig6 0x0e00 #define ch451_dig7 0x0f00 sbit ch451_dclk=P1^7; //串行数据时钟上升延激活 sbit ch451_din=P1^6; // 串行数据输出,接CH451的数据输入 sbit ch451_load=P1^5; 串行数据加载 void d

44、elay10ms(uchar time) 延时 time 个周期,每个10ms { uchar a,b,c; for(a=0;a

45、 { int i,temp; temp=command; 12位数据赋值给变量temp ch451_load=0; LOAD变低,开始输入 for(i=0;i<12;i++) 12位数据 { ch451_dclk=0; 时钟信号 ch451_din=temp&1; 从低位输入 ch451_dclk=1; 时钟信号上升沿 temp=temp>>1; 逐位输入 } ch451_load=1;

46、 输入结束 } void display (int num) CH451根据操作命令显示 { int a,b,c,d; a=num/1000; b=num%1000/100; c=num%100/10; d=num%10; ch451_write(ch451_dig7|a); ch451_write(ch451_dig6|b); ch451_write(ch451_dig5|c); ch451_write(ch451_dig4|d); } void main() { ch

47、451_init(); 初始化 ch451_write(ch451_syson1); 开显示 ch451_write(ch451_twinkle); 开闪烁 display_1(255,255,255,255); 8位LED都亮 delay10ms(300); 延时300周期 while(1) { ch451_write(ch451_reset);

48、 复位 ch451_write(ch451_syson1); 开显示 ch451_write(ch451_BCD); 开BCD译码 void display (8888); } } 第四章 程序设计及说明 //----------------------------------------------------// //-----------------气体监测系统程序----------------

49、// //--------author:wxh time:2009-01-06-----------------// #include #include #define uchar unsigned char #define uint unsigned int #define ch451_syson 0x0400 //关显示、键盘、看门狗 #define ch451_syson1 0x0401 //开显示 #define ch451_syson2 0x0403 //开显示、键盘 #define ch451_syson3 0x0407 //开显示、键盘、看门狗功能 #define ch451_dsp 0x0500 //设置默认显示方式 #define ch451_BCD 0x0580 //设置BCD译码方式 #define ch451_twinkle 0x0600

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服