1、 本科生专业课程设计 1 题目: 数字频率计,数字时钟数字频率计,数字时钟 学 院 专 业 学 号 姓 名 成 绩 年 月 日 装 订 线 一、实验一、实验目的目的 1、掌握单片机 STC89C52RC 的结构和编程方法; 2、了解单片机的串行口通信; 3、熟悉频率计算法原理; 4、知道烧录软件及操作方法; 5、熟悉动态输出显示原理、及编程方法。 二、实验二、实验要求要求 通过硬件设计、焊接、调试,软件编程、调试,程序固化,软硬件系统调试,最终制作一个数字 频率计实物,并且能够通过数码管实时显示被测频率。 二、硬件电路设计二、硬件电路设计 包括:电路框图或原理图,简要说明工作原理 电路工作原理
2、电路工作原理 MCU 电路工作原理电路工作原理 河北大学工商学院 串行通信 按键控制 信号处理 电源及功能 显示电路 MCU 数码管驱动 电路工作原理电路工作原理 数码管驱动电路数码管驱动电路 电路工作原理电路工作原理 显示电路显示电路 电路工作原理电路工作原理 电源及功能指示电路电源及功能指示电路 电路工作原理电路工作原理 信号处理电路信号处理电路 电路工作原理电路工作原理 串口通信电路串口通信电路 电路工作原理电路工作原理 按键控制电路按键控制电路 实验原理:实验原理: 频率计系统总体框图频率计系统总体框图: : 频率计原理 频率的测量实际上就是在 1s 时间内对信号进行计数,计数值就是信
3、号频率。用单片机设计频 率计通常采用的办法是使用单片机自带的计数器对输入脉冲进行计数; 好处是设计出的频率计 系统结构和程序编写简单,成本低廉,不需要外部计数器,直接利用所给的单片机最小系统就 可以实现。 缺陷是受限于单片机计数的晶振频率, 输入的时钟频率通常是单片机晶振频率的几 分之一甚至是几十分之一,在本次设计使用的 STCA T89C52 单片机,由于检测一个由“1”到 “0”的跳变需要两个机器周期,前一个机器周期测出“1” ,后一个周期测出“0” 。故输入时 钟信号的最高频率不得超过单片机晶振频率的二十四分之一。 根据频率检测的原理, 很容易想 到利用 51 单片机的 T0、T1 两个
4、定时/计数器,一个用来定时,另一个用来计数,两者均应该 工作在中断方式,一个中断用于 1s 时间的中断处理,一个中断用于对频率脉冲的计数溢出处 理。 三、程序设计三、程序设计 1s定 时 开 始 同 时 开 始 计 数 定 时 到 读 取 数 据 十 六 进 制 向 十 进 制 转 换 数 码 管 显 示 包括:程序流程、实验程序及分析 /* 综合实习频率计(测量频率和周期)的程序 */ #pragma db oe #include #include #include #include #include #include #define uint unsigned int #define uc
5、har 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 disdat6; 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=P33; sbit zsd=P10; main() uchar i; for (i=0;iTR11 开始计数,C/T=0-对内部计数,模式 1-16 位计数 TR0=0; /关闭计数器 0 TR1=0; /关闭计数器 1 ET0=0; /关闭定时器 0 中断 ET1=1; /打开定时器 1 中断 IT1=1; /外部中断 1 下降沿触发 EX1=0;