双通道数字电压表课程设计.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《 单 片 机 》 课程设计报告 系 别: 计算机与电子系 专业班级: 电子0801 学生姓名: 独孤求胜 指导教师: (课程设计时间:2011 年 6 月27 日——2011 年 7 月 8 日) 华中科技大学武昌分校计算机与电子系 目 录 1.课程设计目的………………………………………………………………… 2 2.课程设计题目及要求………………………………………………………… 3 3.课程设计报告内容…………………………………………………………… 4 3.1课程设计相关元器件及设备………………………………………………… 4 3.2元器件的分析………………………………………………………………… 4 3.3原理图的设计与分析………………………………………………………… 5 3.4程序设计流程及说明………………………………………………………… 8 3.5课程设计仿真结果图示……………………………………………………… 12 4.总结…………………………………………………………………………… 15 参考文献 ………………………………………………………………………… 16 一、课程设计目的 熟悉典型单片机( MCS-51, AT89S51, PIC, Motorola, AVR )的资源、性能,加深对单片机课程的全面认识和掌握,对单片机的应用进一步的了解 二、课程题目及要求 1、课程设计题目内容及具体要求: 1)十字路口交通灯控制 2)单词记忆测试器简易电子琴以单片机为控制器,采用中断方式,对2路0-5V的模拟电压进行循环采集,采集的数据送LED显示,并存入内存。超过界限时指示灯闪烁。 ,将这些外设构成一个简单的单片机应用系统,画出接口的连接 编写下列控制程序 对2路模拟信号输入实行循行采集,每路连续采集16次,取平均值。 分别设定每一路的上限值,若采集的平均值超过该界限值,则对应通道的指示灯闪烁10次后一直亮,指示灯闪烁时喇叭发声,以示警告。 { P1=0; P2=0xff; P1=dispcode[dispbuf[dispcount]]; //显示数据输入 P2=dispbitcode[dispcount]; //数码管选通 if(dispcount==5) { P1=P1 | 0x80; } //显示小数点 if(dispcount==2) { P1=P1 | 0x80; } //显示小数点 dispcount++; if(dispcount==8) { dispcount=0; } } 本程序模块中P2通过循环计数器dispcount循环选通八个数码管,P1分别送入八个数码管的数据。 2ad转换模块: void got_ad_data() //启动和获取ad转换结果 { if(EOC==1) { OE=1; //允许输出 getdata=P0; OE=0; ST=1; //读取数据后送一个高脉冲重新开始转换 ST=0; } } 这个模块启动ad转换,并查询转换是否完成,完成后取出转换结构,然后重新开始转换。 3求平均值并保存模块: void data_save() { if(t==16) { i=sum/t; //采样16次,求平均值,并保存 temp=i; t=0; sum=0; if(A==0) { dispbuf[5]=i/10000; //将通道0的数据存入5,6,7位置 i=i%10000; dispbuf[6]=i/1000; i=i%1000; dispbuf[7]=i/100; } else { dispbuf[2]=i/10000; //江通道1的数据存入数组的2,3,4; i=i%10000; dispbuf[3]=i/1000; i=i%1000; dispbuf[4]=i/100; } A=!A; //更换通道 } } 程序段中A为ADC0808的通道选择的最低位,t为计数器,用于计数取样次数,sum为16次取样的和。 4报警系统模块: void sounder() //报警函数 { if(A==0) { if(temprange1)

文档评论(0)

14576 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档