单片机原理与应用课程设计.pdf

合集下载

单片机原理及应用 课程设计报告书

单片机原理及应用 课程设计报告书

单片机原理及应用课程设计报告书题目:数字电压表的设计姓名:杜典武学号:103521034专业:电气工程及其自动化指导老师:万青老师设计时间:2012年11月1目录1. 引言 (1)1.1. 设计意义 (1)1.2. 系统功能要求 (1)2. 方案论证及方框图 (1)3. 单元电路设计细则 (4)4. 调试及性能分析 (9)5. 系统的电路原理图 (11)6. 电子元器件清单 (12)7. 源程序清单 (3)8.参考资料 (2)9. 收获 ................................. 错误!未定义书签。

1数字电压表的设计单片机原理及应用课程设计数字电压表的设计1. 引言(1)设计意义:我们学习的是单片机这门课程,这门课程最显著的特点就是它是一门实用技术课程,它要求我们不仅仅要掌握扎实的理论基础,更重要的是要学会如何去真真利用它为我们的电路设计服务,也只有通过课程设计这样的动手实践才是我们掌握这门技术的最佳途径,因此,我们开设这样的实践是很重要的,也是我们努力去学习钻研的动力。

数字电压表设计意义:数字电压表是采用数字化检测技术,把连续的模拟量(直流输入电压)换成不连续的、离散的数字形式并加以现实的仪表,克服了传统模拟电压表的读书不方便和不精确等问题。

不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强集成方便,还可以与PC进行实时通信。

目前,由各种单片A/D转换器构成的数字电压表,已广泛应用于电子电工测量、工业自动化仪表、自动测试系统等智能化测量领域,展现了强大的生命力。

与此同时,由数字电压表扩展而成的各种通用及专用数字化仪器,也把电量及非电量测量技术提高到了崭新的水平,因此,通过这次课程设计能让我们了解这些知识,为以后研究相关技术打下坚实的基础。

(2)系统功能要求:简易数字电压表可以测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。

单片机原理及应用课程设计剖析

单片机原理及应用课程设计剖析

电子信息工程专业 单片机原理及应用课程设计

班 级 电子1004班 学 号 20102234 姓 名 zzz 指导教师 ccccc 日 期 2012.10.16 一、设计题目 基于ADC0808模数转换器的数字电压表 二、设计内容

1、内容 利用单片机AT89C51与A/D转换器件ADC0808设计一个数字电压表,能够测量0~5V之间的直流电压值,并用4位数码管实时显示该电压值。 2、元件清单列表

三、软件设计 1、流程图

2、代码

序号 标号 器件名称 数量 1 R1~R9 电阻 9 2 Rv1 滑动变阻器 1 3 C1~C2 电容 2 4 C3 电解电容 1 5 U1 AT89C51 1 6 Led 数码管 1 7 U2 ADC0808 1 8 X1 晶振 1

初始化A/D转换数据处理数据动态显示

启动A/D转换读取转换结果并存储转换结束否?Y

N#include #define uchar unsigned char //宏定义 #define uint unsigned int //定义管脚 sbit START=P3^2; sbit OE=P3^0; sbit EOC=P3^1; sbit P07=P0^7; sbit CLK=P3^4; uchar data led[4]; uint data tvdata; //定义输出电压值变量 uchar code tv[]={0xf7,0xfb,0xfd,0xfe}; //led动态显示控制位选数组 uchar code a[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //led上显示段选数组 ,0~9,阴极管 void delay(void) //延时程序 { uint i; for(i=0;i<100;i++) for(i=0;i<100;i++); //对于12mhz单片机,10ms延时 } void led_display(void) //数码管显示模块 { uchar k,temp; led[0]=tvdata%10; //个位 led[1]=tvdata/10%10; //十位 led[2]=tvdata/100%10; //百位 led[3]=tvdata/1000; //千位 for(k=0;k<4;k++) //利用for循环进行动态显示 { P2=tv[k]; //位选信号赋值给P2口 temp=led[k]; // 段选信号赋值给临时变量temp P0=a[temp]; // temp赋值给P0口 if(k==3) //点亮第四个数码管的小数点 { P07 =1; //高位点亮 } delay(); //延时 } } void main(void) //主控制模块 { ET0=1; // 允许定时器中断 EA=1; //开启中断总开关 TMOD=0x02; //设置定时工作状态,定时器0工作在方式2 TH0=216; //在寄存器中装入初始值, TL0=216; TR0=1; //启动定时器0 while(1) { START=1; //启动转换 START=0; while(EOC==0) ;//等待模数转换结束 OE=1; //输入高电平,打开输出三态门,输出数字量 tvdata=P1; //读取P1口的值给输出电压值变量 tvdata*=5000/255.000;//因为输出值在0~255之间,所以应该放大到0~5000 OE=0; //关闭三态门,禁止输出 led_display(); //LED上显示测得电压值 delay(); //延时 } } void t0(void) interrupt 1 using 0 //定时中断函数 ,使用寄存器组0,产生 adc0808的驱动时钟脉冲 { CLK=~CLK; //clk电平取反 }

单片机课程设计

单片机课程设计

单片机原理及应用课程设计任务书一、课程设计的目的通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论,分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。

培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案。

二、课程设计的内容和要求课题一:题目:数字音乐盒的设计设计要求:以单片机为核心,设计一个数字音乐盒:利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少3首乐曲,每首不少于30s)。

采用LCD显示信息。

a. 开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)。

b. 可通过功能键选择乐曲、暂停、播放。

课题二:题目:单片机电梯控制器设计要求:以51单片机和步进电机为核心设计单片机电梯控制器,要求具备如下基本功能。

显示:要求实现5层控制,实时显示电梯所在楼层号位置;升降控制:采用一台步进电机,利用电机的正反转来模拟电梯的升降;具备不可逆响应的功能:电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效。

课题三:题目:抢答器设计设计要求:1)抢答器的抢答路数为6路;2)设置一个系统清除和抢答控制开关s,开关由主持人控制;3)抢答器具有定时抢答功能:且一次抢答时间由主持人设定为30秒,当主持人启动开始按键后,定时器进行倒计时,并在数码管上显示计时间;4)系统采用2个数码管显示,抢答启动后首先显示时间,当有人抢答时,显示抢答人员所对应的编号;5)抢答器具备锁存与显示功能,当选手按下按钮时,锁存相应的编号,扬声器发生声响提示,并在数码管上显示该选手的编号,选手抢答实现优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

课题四:题目:4×4矩阵键盘设计要求:1)设计4×4矩阵键盘,共16个键;2)每个键位具有一个固定的键码,用十六进制表示为0H~FH;3)当按下一个键时用数码管显示其对应的键码。

单片机原理与应用及C51程序设计(第三版)(1、2、3、4、7章课后习题答案)

单片机原理与应用及C51程序设计(第三版)(1、2、3、4、7章课后习题答案)

第一章:1. 给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。

+45 -89 -6 +112答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101【-89】原=11011001,【-89】反=10100110,【-89】补=10100111【-6】原=10000110,【-6】反=11111001,【-6】补=11111010【+112】原=01110000,【+112】反=01110000,【+112】补=011100002. 指明下列字符在计算机内部的表示形式。

AsENdfJFmdsv120答:41H 73H 45H 4EH 64H 66H 4AH 46H 6DH 64H 73H 76H 31H 32H 30H3.何谓微型计算机硬件?它由哪几部分组成?并简述各部分的作用。

答:微型计算机硬件由中央处理器、存储器、输入/输出设备和系统总线等组成,中央处理器由运算器和控制器组成,是微型计算机运算和控制中心。

存储器是用来存放程序和数据的记忆装置。

输人设备是向计算机输人原始数据和程序的装置。

输出设备是计算机向外界输出信息的装置。

I/O接口电路是外部设备和微型机之间传送信息的部件。

总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。

微型计算机的各大功能部件通过总线相连。

4.简述8086CPU的内部结构。

答:8086微处理器的内部分为两个部分:执行单元(EU)和总线接口单元(BIU)。

执行部件由运算器(ALU)、通用寄存器、标志寄存器和EU控制系统等组成。

EU从BIU的指令队列中获得指令,然后执行该指令,完成指今所规定的操作。

总线接口部件BIU由段寄存器、指令指针寄存器、地址形成逻辑、总线控制逻辑和指令队列等组成。

总线接口部件负责从内部存储器的指定区域中取出指令送到指令队列中去排队。

5.何谓总线?总线按功能可分为哪几种?答:总线是连接多个设备或功能部件的一簇公共信号线,它是计算机各组成部件之间信息交换的通道。

单片机技术及应用课程设计报告

单片机技术及应用课程设计报告

课程设计报告第一部分:概述1.1 课程设计的背景和意义单片机技术在现代工业生产和科研中起着举足轻重的作用,因此对单片机技术的理论和应用知识的学习显得尤为重要。

本课程设计的目的在于通过理论与实践相结合的方式,使学生能够全面掌握单片机技术的基本原理和应用方法,为将来的工作和研究打下坚实的基础。

1.2 课程设计的目标和要求本课程设计旨在培养学生对单片机技术的全面理解和应用能力,具体要求包括:- 掌握单片机的基本原理和结构- 熟练掌握单片机的编程语言和开发工具- 能够设计并实现简单的单片机应用系统- 具备一定的单片机故障排除和维护能力第二部分:课程内容2.1 单片机基础知识- 单片机的定义和分类- 单片机的基本结构和工作原理- 单片机的发展历程及应用领域2.2 单片机编程语言- C语言在单片机编程中的应用- 汇编语言在单片机编程中的应用- 单片机常用编程语言对比与选择2.3 单片机开发工具- 单片机编程与仿真工具的选用- 常用单片机开发板介绍与使用- 单片机调试工具的应用2.4 单片机应用系统设计- 单片机控制原理- 单片机在自动控制领域的应用案例- 单片机在智能监控领域的应用案例2.5 单片机故障排除与维护- 单片机常见故障及解决方法- 单片机维护的注意事项- 单片机相关知识的拓展与学习第三部分:课程设计方法3.1 教学内容的设置本课程设计旨在通过理论教学和实践操作相结合的形式展开教学,具体内容包括课堂讲解、实验演示、课程设计等多种形式。

3.2 教学方法的选择- 教师为主导,学生为主体的教学方式- 实验操作和项目设计为主要形式- 多媒体教学与互动授课相结合3.3 课程评估方式本课程将通过平时表现、实验报告、课程设计报告和期末考核等方式对学生的学习情况进行全面评估。

第四部分:课程设计实施4.1 教学内容详细安排- 第1-2周:单片机基础知识- 第3-4周:单片机编程语言- 第5-6周:单片机开发工具- 第7-8周:单片机应用系统设计- 第9-10周:单片机故障排除与维护4.2 实验教学实施方案- 设置不同难度的实验内容- 强调实验操作的规范性和实用性- 配备实验教学相关设备和工具4.3 课程设计作业安排- 各阶段的课程设计报告要求- 课程设计报告的提交时间和形式- 课程设计报告的评分标准第五部分:课程总结和展望5.1 课程总结通过本次课程设计,学生对单片机技术的基本理论和应用能力得到了显著提升,实践操作能力也得到了锻炼和提高。

C8051F系列SOC单片机原理及应用课程设计

C8051F系列SOC单片机原理及应用课程设计

C8051F系列SOC单片机原理及应用课程设计一、引言C8051F系列SOC单片机是由美国Silicon Labs公司推出的一款面向嵌入式应用的单片机。

SOC单片机,即System-on-a-Chip单片机,是指将系统多个部分如中央处理器(CPU)、存储器、输入输出等集成在一个芯片上的单片机。

本文将重点介绍C8051F系列SOC单片机的原理和应用,并提出一种基于C8051F系列SOC单片机的自动喷涂机控制系统设计方案。

此设计方案旨在提高自动喷涂机生产效率和产品质量,降低出错率,减少人工成本。

二、C8051F系列SOC单片机基础知识2.1 单片机基础概念单片机作为一种重要的集成电路,其内部集成了处理器、存储器、输入输出端口等多种功能,可用于控制、计算等多种应用。

常用的单片机包括51、AVR、PIC等。

2.2 C8051F系列SOC单片机特点C8051F系列SOC单片机是由美国Silicon Labs公司推出的一款高性能、低功耗的嵌入式单片机,主要特点如下:•高性能:C8051F系列SOC单片机采用C8051F系列CPU,运行速度高,且具有很强的计算能力;•低功耗:C8051F系列SOC单片机内置了多种节能技术,可有效降低功耗,提高电池续航时间;•丰富的外设:C8051F系列SOC单片机集成了多种输入输出端口,包括ADC、PWM、UART、SPI等,可适用于不同的应用场景;•多种封装:C8051F系列SOC单片机适用于多种封装方式,包括QFN、SSOP、TSSOP等。

2.3 C8051F系列SOC单片机原理C8051F系列SOC单片机由CPU、存储器、输入输出端口等多种功能模块组成。

其中,CPU是单片机的核心部件,主要用于控制程序的执行;存储器分为闪存和RAM两部分,闪存用于存储程序代码和数据,RAM用于存储变量和中间结果;输入输出端口包括GPIO、PWM、ADC等。

C8051F系列SOC单片机的工作流程如下:首先将程序代码烧录到闪存中,然后由CPU控制程序按照指令执行。

单片机课程设计

单片机课程设计

《单片机原理及应用》课程设计报告课题名称频率计的设计学院自机学院专业电气工程及其自动化班级学号姓名时间2014/6/23-2014/7/04前言单片机原理及应用课程设计,是针对自动化、电气工程及其自动化、机械设计制造及其自动化等专业的学生学习单片机原理及应用课程,配套开设的课程设计。

作为嵌入式系统低端的单片机已成为电子系统中最普遍的应用手段,已经深入到国民经济与人民生活的各个领域。

近年来,采用单片机系统已成为解决各类电子技术和控制问题主要方法之一。

《单片机原理及应用》课程已被几乎所有工科院校中自动化、电气、仪器仪表、测控技术、机电一体化、电子、通信、计算机等类专业列为本科主干专业课程,是培养现代电子技术应用类专业人才的重要技术课程之一。

单片机课程设计是学习单片机理论的重要实践环节。

在单片机实验课程基础上,通过本课程设计的学习,使学生增进对单片机的感性认识,加深对单片机理论方面的理解;使学生掌握单片机的内部功能模块的应用,掌握单片机接口功能和扩展应用,掌握一些特殊器件及常用器件的使用方法,学习编制综合程序;使学生了解和掌握单片机应用系统的软硬件设计方法及调试过程。

充分发挥学生的主观能动性,激发学生的学习兴趣,培养学生主动利用单片机解决工程实际问题的意识。

培养学生的工程实践能力、实际动手能力和自我学习能力。

使学生完成从实际项目立题、调研、方案论证、方案实施、系统调试、编写使用说明书等科研全过程的基本训练,为今后在相关领域中从事与单片机有关的设计、开发、应用等工作打下良好的基础。

目录一、摘要 (2)二、项目的意义与目的 (2)三、频率计设计任务及要求 (2)1.设计任务 (2)2.设计要求 (2)四、方案设计 (3)3.方案论证 (4)4.方案选择 (4)五、芯片的选择与控制 (5)5.单片机AT89C51的介绍 (5)(1)AT89C51引脚图 (5)(2)引脚说明 (5)6.74LS245芯片的介绍 (8)(1) 74LS245引脚图 (8)7.LED数码管显示器介绍 (9)(1)LED引脚图 (9)(2)LED的静动态显示驱动 (9)六、各模块电路设计 (10)8.电路原理图 (10)9.电路流程图 (11)10.控制电路 (12)11.复位电路 (12)12.显示电路 (13)七、仿真与调试 (13)13.电路仿真图 (13)14.矩形波仿真 (14)15.三角波仿真 (14)16.正弦波仿真 (15)八、心得体会 (16)九、参考文献 (17)附录 0一. 电路原理图 0二.源程序 0一、摘要设计以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测的正弦波或者三角波整形为方波。

单片机原理与应用C语言版课程设计

单片机原理与应用C语言版课程设计

单片机原理与应用C语言版课程设计课程设计背景单片机在现代电子技术领域中应用广泛,掌握单片机的原理和应用具有重要意义。

本课程设计旨在帮助学生深入了解单片机的原理和应用,并利用C语言进行单片机编程,加深学生对单片机的掌握。

课程设计目标通过本课程设计,学生将能够完成以下目标:1.了解单片机的基本原理和应用;2.熟悉C语言的基本语法;3.掌握C语言在单片机编程中的应用;4.完成一个基于单片机的小项目。

课程内容1. 单片机原理本课程设计主要介绍典型的8位单片机(如AT89C51)的结构、定时器、中断、IO端口、串口通信及应用等内容,并结合电路原理图进行讲解。

2. C语言基础学习C语言的基本数据类型、运算符、流程控制语句、函数及数组等内容,并进行实践编写简单的C语言程序。

3. 单片机编程学习如何使用Keil C51编译器和ISP下载器编写和下载单片机程序,利用C 语言结合各种外设实现LED灯闪烁、数码管显示、蜂鸣器声音发生、液晶显示、按键控制等多种实际应用。

4. 项目设计在学习完上述内容后,学生将分组完成一个基于单片机的小项目,例如基于温度传感器的温度控制,基于蓝牙通信的智能家居等。

课程设计效果通过本课程设计的学习,学生将会获得以下收获:1.对单片机的原理和应用有更深入的了解;2.掌握C语言编程在单片机中的应用;3.能够独立完成一个基于单片机的小型项目;4.培养学生的动手实践能力和团队协作能力。

结语本课程设计的设计旨在帮助学生深入了解单片机的原理和应用,并通过C语言编程实践来加深对单片机的掌握。

在实践项目中,学生将能够提高动手能力和团队协作能力,为有志从事电子技术领域的学生提供了一次难得的实践机会。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2013 级单片机原理及应用课程设计 数字温度计的设计与制作

: 宋昊明 专业 : 电子信息科学与技术 学号 : 201340620124 指导教师 : 周小波

二零一五年十二月. . .

数字温度计的设计与制作 数字温度计 1. 设计任务与要求 1.1 设计要求 1、设计一个能显示当前环境温度的数字温度计; 2、拟定设计步骤和测试方案; 3、根据设计要求和技术指标设计好电路,选好元件及参数; 4、绘出原理图,画出 PCB 图,并制出实物; 5、撰写设计报告; 6、预留相关技术指标的测试端口。

2. 总体方案设计概述 2.1 系统总体方案设计 本设计以检测温度并显示温度为目的,按照系统设计功能的要求,确定系统由三个模块组 成:主控器、测温电路、显示电路。

系统以 STC12C5404AD 为主芯片,对热敏电阻传入的温度值进行处理,由单片机程序控制, 将处理后的温度用四位一体的数码管显示出来。

2.2 各功能模块 2.2.1 温度检测 由热敏电阻感知环境温度,改变自身阻值,通过分压法来测出电压值,从而测出温度 大 小。 2.2.2 温度显示 将数据用四位一体数码管显示,处理过程主要由单片机程序控制 3. 硬件系统设计

3.1 总体电路设计 总电路原理图和 PCB 图如下

- 1 - . . .

数字温度计的设计与制作 .

.

.

- 2 - . . . 数字温度计的设计与制作

3.2 主控制器 STC12C5404AD

STC12C5410 系列单片机是单时钟/机器周期的兼容 8051 核单片机,是高速/低功耗的新 一代 8051 单片机,全新的流水线/精简指令集结构,部集成 MAX810 专用复位电路。

3.3 测温电路工作原理 3.3.1 测温电路的选择 ①恒流源法 . .

.

- 3 - . . . 数字温度计的设计与制作

②电桥法:精度高但电路较为复杂

③分压法:电路简单但精度差 综合考虑,本设计选择分压法 下图为本实验测温电路原理图

分压电路 ADC7 热敏电阻 R14,R16 不能太大,否则会分流 . .

.

- 4 - . . . 数字温度计的设计与制作

3.4 显示电路工作原理

数码管驱动电路如图所示 4 个三极管所在电路为数码管位选端驱动电路,端口分别为 W1,W2,W3,W4。 其余 A-H 为数码管段选段

3.5 下载电路 电脑 USB 接口供电,约 5V。TXD、RXD 接口用于下载程序。

- 5 - 数字温度计的设计与制作 4. 程序设计 #include "reg51.h" #include "intrins.h" #include "math.h"

typedef unsigned char BYTE; typedef unsigned int WORD;

/*Declare SFR associated with the ADC */ sfr AUXR = 0x8e; sfr ADC_CONTR = 0xC5; //ADC control register sfr ADC_DATA = 0xC6; //ADC high 8-bit result register sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register sfr P1M0 = 0x91; //P1 mode control register0 sfr P1M1 = 0x92; //P1 mode control register1

#define ADC_POWER 0x80 //ADC power control bit #define ADC_FLAG 0x10 //ADC complete flag #define ADC_START 0x08 //ADC start control bit #define ADC_SPEEDLL 0x00 //1080 clocks #define ADC_SPEEDL 0x20 //810 clocks #define ADC_SPEEDH 0x40 //540 clocks #define ADC_SPEEDHH 0x60 //270 clocks

void Delay(WORD n); void InitADC(); void delay_s(unsigned int N); void display(unsigned char num,unsigned x); void display_num(unsigned int num); void get_data(); unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0x84,0xf5,0x89,0xc 1,0xf0,0xc2,0x82,0xe5,0x80,0xe0 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90

float wendu; unsigned int temp = 0; float R=0;

unsigned char flag=0; BYTE ch = 7; //ADC channel NO.

- 6 -

sbit point = P3^7; //小数点 sbit W1 = P3^2; //数码管位选 sbit W2 = P3^3; sbit W3 = P3^4; sbit W4 = P3^5; 数字温度计的设计与制作 void main() { InitADC(); //Init ADC sfr AUXR |= 0x10; //set EADCI IE = 0xa0; //Enable ADC interrupt and Open master interrupt switch

while (1) { display_num(wendu); } } /*---------------------------- ADC interrupt service routine ----------------------------*/ void adc_isr() interrupt 5 using 1 { flag++; ADC_CONTR &= !ADC_FLAG; //Clear ADC interrupt flag temp=ADC_DATA; temp=temp<<2; temp=temp|ADC_LOW2;

if(flag==10) { flag=0; if(temp<451) //TEMP = 10240/(R+10) wendu=(42.16-11059.2/temp)*100; //-7 20c;38.3988K 12.69K, TEMP(211,451) T=31.36-1.08*R else if(451<=temp<=518) wendu=(61.91-18944.0/temp)*100; //20 25c;12.65k,10k TEMP(451,512) T=43.41-1.85*R else if(512<=temp<=655) wendu=(96.87-37478.4/temp)*100; //26 40c;9.5762k,5.734k TEMP(523,651) T=60.269-3.66576*R else if(655<=temp<=800) wendu=(149.53-72089.6/temp)*100; //41 60c;5.54.5k,2.825k TEMP(659,798) T=79.134-7.04*R else wendu=(291.23-185856.0/temp)*100; //61 90c;2.7762k 1.236k

TEMP(801,911) T=109.731-18.147*R }

- 7 - 数字温度计的设计与制作 ADC_CONTR = ADC_POWER | ADC_SPEEDHH | ADC_START | ch; } void InitADC( ) { P1 = P1M0 = P1M1 = 0xff; //Set all P1 as Open-Drain mode ADC_DATA = 0; //Clear previous result

ADC_CONTR = ADC_POWER | ADC_SPEEDL | ADC_START | ch; Delay(2); //ADC power-on delay and Start A/D conversion }

void SendData(BYTE dat) { while (!TI); //Wait for the previous data is sent TI = 0; //Clear TI flag SBUF = dat; //Send current data } void get_data() { float val=0.0; float r = 0.0; temp = ADC_DATA; temp<<2; temp = temp|ADC_LOW2 ; wendu=(35.28-1.1*r)*10; //35.28-1.1*10240/TEMP+11 46.28-11264/TEMP }

void Delay(WORD n) { WORD x; while (n--) { x = 5000; while (x--); } } void delay_s(unsigned int N) { while(N--);

} void display(unsigned char num,unsigned x)

相关文档
最新文档