单片机_本科生专业课程设计1_频率计,数字时钟.doc

单片机_本科生专业课程设计1_频率计,数字时钟.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本科生专业课程设计1 题目: 数字频率计,数字时钟 学 院 专 业 学 号 姓 名 成 绩 年 月 日 一、实验目的 4、知道烧录软件及操作方法; 5、熟悉动态输出显示原理、及编程方法。 二、实验要求 电路工作原理 MCU 电路工作原理 数码管驱动电路 电路工作原理 显示电路 电路工作原理 电源及功能指示电路 电路工作原理 信号处理电路 电路工作原理 串口通信电路 电路工作原理 按键控制电路 实验原理: 频率计系统总体框图: 频率计原理 频率的测量实际上就是在1s时间内对信号进行计数,计数值就是信号频率。用单片机设计频率计通常采用办法使用单片机自带的计数器对输入脉冲进行计数;T0、T1两个定时/计数器,一个用来定时,另一个用来计数,两者均应该工作在中断方式,一个中断用于1s时间的中断处理,一个中断用于对频率脉冲的计数溢出处理。 三、程序设计 包括:程序流程、实验程序及分析 /********************************************************************** 综合实习--频率计(测量频率和周期)的程序 **********************************************************************/ #pragma db oe #include reg52.h #include absacc.h #include string.h #include stdio.h #include intrins.h #include MATH.H #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define CHANGSHU 0.65536 #define CHANGSHU1 1e-6 void display(void); void initsiu(void); void delay(void); void ccll(void); void jsdat(void); void keyin(void); uchar inkey(void); uchar disdat[6]; uchar code tab[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f}; uint count,count1; uchar xsd,diszq,dzt; float jsjg; int js; sbit jskz=P3^3; sbit zsd=P1^0; main() { uchar i; for (i=0;i6;i++) { disdat[i]= 0; //将显示缓存清零 } initsiu(); //初始化单片机 TR1 = 0; //关闭计数器1 dzt=0; do { ccll(); //进行测量频率合周期 for (i=0;i50;i++) { keyin(); //根据按键改变显示内容 display(); //显示 } if (dzt==0) { dzt=1; zsd=0; } else { dzt=0; zsd=1; } _nop_(); } while(1); } void display(void) //六位数码管显示程序,disdat[]是要显示的内容(是0~9的数字),xsd是在那一位显示小数点 { uchar i,disa,disb,disc; disb = 0x00; //显示第n位 for (i=0;i6;i++) //共显示6个数据 { disa = disdat[i]; //显示数据 if (disa 10) { P2 = disb; disc = tab[disa]; //显示段码 if ((xsd != 5) (xsd == i)) disc = disc | 0x80; //增加小数点显示 P0 =

文档评论(0)

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

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

1亿VIP精品文档

相关文档