欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《单片机技术及应用》教案——项目4.1 数字电压表.docx

    • 资源ID:591105       资源大小:86.98KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《单片机技术及应用》教案——项目4.1 数字电压表.docx

    1、教学实施方案课题名称单片机技术及应用实训部审批任务名称项目4.1数字电压表年月日学时6学时授课时间授课班级授课教师一、教学目标Ga知识目标1 .了解A/D转化芯片ADC0809的工作原理2 .利用ADCO809将模拟量转换为数字量,并用数码管显示R技能目标使用YL-236装置完成任务的电路连接及编程下载验证N情感目标培养团队合作意识二、重点难点曾教学重点模块程序的编写与验证i教学难点ADC0809的接口驱动程序三、学习内容、设计任务导入学校生产科接到一个项目要求为某公司设计制作一个用数码管显示实时电压的装置,电压是模拟量,如何将电压值转变为数字量显示出来呢?二、设计任务分析1 .硬件电路设计:

    2、以单片机为控制核心,单片机的I/O口与ADCo809的控制端和数据端相连构成模数转换接口电路;单片机的I/O口与数码管的控制端和数据端相连构成显示接口电路。2 .程序的设计:编写ADCO809的接口驱动程序、数码管显示程序。三、任务信息学习(一)模数转换的概念IN3IN4122827IN2-INI模数转换(ADC)也称为模拟/数字转换,是将连续的模拟量转IN5-326-INOIN6425-ADDA换成数字量。模数转换器称为A/D转换器,ADC0809就是我们常用IN7524-ADDBSTART623ADDC的一种A/D转换器。EOC-722ALE2-5-821-2TMSB(二)ADCo809的

    3、引脚与内部结构OE_920-2-2CLK1019一2-3(1)ADC0809的引脚及其功能vcc-1118-2-4VrefG)一121728LSBADC0809的引脚排列如图4-1所示。GND-1316-vREFHINenN7:8个模拟通道输入端。27-1415-26START:启动转换信号。在START信号上升沿时,ADC0809复位,图4-1ADC0809芯片所有内部寄存器清零;在START信号下降沿时,A/D转换启动,在转换期间,START保持低电平。EOC:转换结束信号。当EoC为高电平时,表明转换结束;否则,表明正在进行/D转换。0E:输出允许信号。OE=I:输出转换得到的数据;OE

    4、R,输出数据线呈高阻状态。CLK:时钟信号输入端。因ADCO809内部没有时钟电路,所需时钟信号由外界提供,通常使用频率为500kHzOALE:地址锁存允许信号。在ALE上升沿时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。ADDA、ADDB、ADDC:地址输入线。用于选通IN(TIN7上的一路模拟量输入。2-1-2-8:8路数字量的输出数据线。2-1为最高位,2-8为最低位。VREF(+),VREF(一):参考电压输入端。GND:地。(2) ADC0809的内部结构ADC009是CMOS单片型逐次通近式A/D转换器,它由8路模拟开关

    5、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次通近寄存器、逻辑控制和定时电路组成。(3) ADC0809的工作原理首先确定3位地址:(CBA),AE变高后,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到转换器。在本项目中,我们将ADDA、ADDEAT.ADDC直接与地相连,因此我们选通INOoSTART信号上升沿将逐次通近寄存器复位,下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示AVD转换结束,结果数据已存入锁存器,这个信号可用做中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。A

    6、/D转换后得到的数据应及时传送给单片机进行处理,数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)延时传送在本项目中,ADCO809进行一次A/D转换的时间约为128us,当A/D转换启动后调用延时函数,延迟时间一到,就进行数据传送。(2)查询方式ADCO809的EOC是转换结束信号,因此可以用查询方式,检测EOC的状态,来确认转换是否完成,如果完成就进行数据传送。(3)中断方式把EOC作为中断请求信号,用中断的方式进行数据传送。(三)硬件电路设计本任务主要使用YL-236装置中的四个模块:MCUOl主机模块、MCU02电源模块、MC

    7、U04显示模块、MCU07ADC/DAC模块。1.模块接线图如图4-2所示。图4-2模块接线图2.ADC0809的基本C51函数及任务程序清单根据前面的介绍,编写AOCO809的接口程序,函数为voidreadAdos09()o请参考附录中aYL-236ADCDAC模块”原理图,在WR端产生1个下降沿,将使ADC0809的ALE、START变高,从而锁定地址(CBA)、复位逐次逼近寄存器;然后使WR端变高,将在ADCO809的START产生下降沿启动AVD转换;在RD端产生低电平,将使ADeO809的OE变高,AD转换结果的数字量输出到数据总线上。任务程序流程图如图4-3所示。图4-3任务程序

    8、流程图任务的程序清单:ttinclude/包含A89x52头文件ttinclude/包含intrins头文件Wdefineuintunsignedint/无符号整型定义Wdefineucharunsignedchar/无符号字符型定义#defineoutOPO定义outO为PO口sbitLED-CS1=PO;/数码管断选信号有效端sbitLED-CS2=P1;/数码管位选信号有效端sbitLED-WR=P2;/数码管写信号有效端sbitCS_0809=P3;/ADC0809片选sbitRD_0809=P4;/ADC0809读信号端sbitWR_0809=P5;/ADC0809写信号端uchar

    9、count;显示计数ucharwei;ucharmydata;/AD值uchara8;/数码管八位显示缓冲区ucharcodeTAB=共阳极数码管字模OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,/01234567890x88,0x83,0xc6,0xal,0x86,0x8e,/abcdefOxff,Oxbf/-;voiddelayms(uintx)/延时12xll毫秒函数(uchari;while(x-)for(i=0;i123;i+);)voiddelayus(ucharx)/延时(2x+5)微秒函数(while(-x);)voidWr

    10、iteDuan(ucharx)写断码函数outO=x;_nop_();LED_CS1=O;LEDWR=0;_nop_();LED_WR=1;LED_CS1=1;voidwriteWei(ucharx)/写位码函数(outO=x;_nop_();LED_CS2=0;LED_WR=O;_nop_();LED_WR=1;LED_CS2=1;voidreadAdc0809()(EA=O;/关中断CS_0809=0;/ADC0809片选有效WR_0809=0;启动ADC0809开始转换WR_0809=l;CS_0809=l;启动完成,ADCO809片选无效delayus(100);等待转换结束OUtO=

    11、Oxff;/准备读_nop_();CS_0809=0;/ADC0809片选有效RD_0809=0;/ADC0809读信号有效_nop_();mydata=outO;/读出AD值RD_0809=l;/ADC0809读信号无效CS_0809=l;/ADC0809片选无效EA=I;/开中断voidtime(void)interrupt1(TLO=(uint)(-2000)%256;约2毫秒定时时间常数重新载入TH0=(uint)(-2000)/256;writeWei(Oxff);熄灭所有位WriteDuan(TABacount);writeWei(wei);wei=weil0x01;根据显示缓冲区

    12、的内容,查出对应的字模写位选/选择下一个数码管if(+count=8)/若8位数码管显示完成(count=0;wei=0xfe;/位码赋初值voidmain()主函数(uchari;for(i=0;i8;i+)/给显示缓冲区赋值为01234567ai=17;count=0;wei=0xfe;/位码赋初值TMOD=OxOI;TO为模式1,16为定时计数器TL0=(uint)(-2000)%256;设定定时时间约为2毫秒TH0=(uint)(-2000)/256;ETO=I;/TO中断允许有效EA=I;/中断控制总开关开启TRO=I;/开定时器TOwhile(1)(deIayms(183);每20

    13、OmS读一次ADC0809readAdc0809();读ADC0809EA=O;a2=mydata100;/AD值百位al=mydata/10%10;/AD值十位a0=mydata%10;/AD值个位EA=I;3.模拟电压值的数字转换(1)换算公式由于ADC809的转换基本为线性,当输入OV模拟电压时,其转换的数字量为0;当输入5V模拟电压时,其转换的数字量为25(参考电压为5V);若输入模拟电压X在0-5V间时,其转换数字量mydata满足算式:Vx/5V=mydata2550根据以上条件可以计算出被测电压值Vx=mydata5V255=mydata51(2)误差的处理任务要求显示精确到被测

    14、电压的小数点后一位,在用C51编程时,一般采用整数计算,这样小数部分会被省略掉,因此,要做适当处理。首先将AD值放大100倍,计算出电压值也是放大100倍的,再加上5(小数点后的第二个有效位进行四舍五入),最后缩小10倍。这样得到的值的十位是电压值的整数部分,个位是电压值的小数部分。(3)任务程序流程图图4-4任务程序流程图(4)任务的程序清单:Winclude#include#defineuintunsignedintWdefineucharunsignedcharWdefineout0POsbitLED-CS1=PO;包含A89x52头文件/包含intrins头文件/无符号整型定义无符号字

    15、符型定义定义outO为Po口数码管断选信号有效端SbitLED-CS2=P1;sbitLED-WR=P2;sbitCS_0809=P3;sbitRD_0809=P4;sbitWR_0809=P5;数码管位选信号有效端/数码管写信号有效端/ADC0809片选/ADC0809读信号端/DAC0809写信号端ucharcount;/显示计数ucharwei;ucharmydata;/AD值uintvoltage;电压值uchara8;/数码管八位显示缓冲区ucharcodeTAB=共阳极数码管字模OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,/0

    16、1234567890x88,0x83,0xc6,0xal,0x86,0x8e,/abcdefOxff,Oxbf/-;voiddelayms(uintx)/延时12xll毫秒函数(uchari;while(x-)for(i=0;i123;i+);)voiddelayus(ucharx)/延时(2x+5)微秒函数(while(-x);voidWriteDuan(ucharx)写断码函数(out0=x;_nop_();LED_CS1=O;LED_WR=O;_nop_();LED_WR=1;LED_CS1=1;voidwriteWei(ucharx)写位码函数(outO=x;_nop_();LED_C

    17、S2=0;LED_WR=O;_nop_();LED_WR=1;LED_CS2=1;voidreadAdc0809()(EA=O;/关中断CS_0809=0;WR_0809=0;WR_0809=l;CS_0809=l;/ADC0809片选有效启动ADCO809开始转换启动完成,ADCO809片选无效delayus(100);out0=0xff;_nop_();CS_0809=0;RD_0809=0;_nop_();mydata=outO;RD_0809=l;CS_0809=l;EA=I;/等待转换结束/准备读/ADC0809片选有效/ADC0809读信号有效/读出AD值/ADC0809读信号无效

    18、/ADC0809片选无效/开中断voidreadVoltage()读电压值(readAdc0809();voltage=(unsignedlong)mydata*10051;voltage+=5;voltage=10;四舍五入)读ADC0809/将AD值转换为电压值放大100倍,计算小数voidtime(void)interrupt1(TLO=(uint)(-2000)%256;TH0=(uint)(-2000)/256;/约2毫秒定时时间常数重新载入writeWei(Oxff);/熄灭所有位if(count=l)WriteDuan(TABacount&0x7f);/合成小数点elseWrit

    19、eDuan(TABacount);根据显示缓冲区的内容,查出对应的字模writeWei(wei);/写位选wei=weil0x01;/选择下一个数码管if(+count=8)/若8位数码管显示完成(count=0;wei=0xfe;/位码赋初值voidmain()主函数uchari;for(i=0;i8;i+)ai=17;/给显示缓冲区赋值为01234567TMOD=OxOI;/TO为模式1,16为定时计数器TL0=(uint)(-2000)%256;/设定定时时间为2毫秒TH0=(uint)(-2000)/256;ETO=I;/TO中断允许有效EA=I;/中断控制总开关开启TRO=I;/开始

    20、定时while(1)(readVoltage();读ADC0809将AD值转换为电压值EA=O;al=voltage10;/电压的整数部分a0=voltage%10;/电压的小数部分EA=I;deIayms(275);/300ms读一次电压值四、任务评价价目评项评价内容评价标准评价方式自我评价组价小评教师评价职业素养安全意识、责任意识A作风严谨、自觉遵章守纪、出色完成工作任务B能够遵守规章制度、较好地完成工作任务C遵守规章制度、没完成工作任务或完成工作任务、但忽视规章制度D不遵守规章制度、没完成工作任务职业素养学习态度主动A积极参与教学活动,全勤B缺勤达本任务总学时的10%C缺勤达本任务总学时

    21、的20%D缺勤达本任务总学时的30%团队合作意识A与同学协作融洽、团队合作意识强B与同学能沟通、协同工作能力较强C与同学能沟通、协同工作能力一般D与同学沟通困难、协同工作能力较差业力专能学习活动1工作准备A按时、完整地完成工作页,问题回答正确B按时、完整地完成工作页,问题回答基本正确C未能按时完成工作页,或内容遗漏、错误较多D未完成工作页学习活动2现场施工A学习活动评价成绩为90-100分B学习活动评价成绩为75-89分C学习活动评价成绩为60-74分D学习活动评价成绩为0-59分学习活动3评价与总结A学习活动评价成绩为90-100分B学习活动评价成绩为75-89分C学习活动评价成绩为60-74分D学习活动评价成绩为0-59分创新能力学习过程中提出具有创新性、可行性的建议加分奖励:班级学号姓名综合评价等级指导老师日期五、教学后记


    注意事项

    本文(《单片机技术及应用》教案——项目4.1 数字电压表.docx)为本站会员(极速器)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!




    宁ICP备18001539号-1

    三一文库
    收起
    展开