51单片机频率计-周期法.doc_第1页
51单片机频率计-周期法.doc_第2页
51单片机频率计-周期法.doc_第3页
51单片机频率计-周期法.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

51单片机频率计-周期法#include/*函数定义*void long_delay(void);/长延时void short_delay(void);/短暂延时void delay10ms(unsigned char);/延时10MSvoid write7279(unsigned char,unsigned char);/写入到HD7279unsigned char read7279(unsigned char);/从HD7279读出void send_byte(unsigned char);/发送一个字节unsigned char receive_byte(void);/接受一个字节 /*变量及I/O口定义*unsigned char digit5;unsigned char key_number,j,k;unsigned int tmr;unsigned long wait_cnter;sbit cs=P22;/cs at P1.4sbit clk=P23;/clk 连接于P1.5sbit dat=P24;/dat 连接于P1.2sbit key=P33;/key 连接于P1.3/*HD7279A指令*#define CMD_RESET 0xa4#define CMD_TEST 0xbf#define DECODE0 0x80#define DECODE1 0xc8#define CMD_READ 0x15#define UNDECODE 0x90#define RTL_CYCLE 0xa3#define RTR_CYCLE 0xa2#define RTL_UNCYL 0xa1#define RTR_UNCYL 0xa0#define ACTCTL 0x98#define SEGON 0xe0#define SEGOFF 0xc0#define BLINKCTL 0x88/*主程序*int i=0,p=8,time=0,flag=0,a=0,t=0,xi=0,b=0,q=0;unsigned long pl=0;char di10=0xb0,0xed,0xf9,0xb3,0xcb,0xf0,0xff,0xfb,0xfe,0xb1;/doubleo=1000000.000;main()TMOD=0x01;/ET0=1;/TR0=1;TH0=0;TL0=0;EX0=1;IT0=1;EA=1;send_byte(CMD_RESET);write7279(DECODE0+7,0); while(1)if(i=2)send_byte(CMD_RESET);ET0=0;pl=2000000/(65536*t+TH0*256+TL0);xi=(2000000%(65536*t+TH0*256+TL0)*10000/(2000000%(65536*t+TH0*256+TL0);if(xi%10=5)xi=xi/10+1;elsexi=xi/10;pl=pl*1000+xi; t=0; p=8;i=0;dop-;a=pl%10;write7279(DECODE0+p,a);/write7279(DECODE0+p,a);q=q/10;if(p=4)write7279(UNDECODE+4,dia);while(q!=0);ET0=1;void jp_0() interrupt 1TH0=0;TL0=0; t+;void jp_() interrupt 0 ET0=1;TR0=1;i=i+1;if(i=2)ET0=0; void write7279(unsigned char cmd,unsigned char dta)send_byte(cmd);send_byte(dta);unsigned char read7279(unsigned char command)send_byte(command);return(receive_byte();void send_byte(unsigned char out_byte)unsigned char i;cs=0;long_delay();for(i=0;i8;i+)if(out_byte&0x80)dat=1;elsedat=0;clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2;dat=0;unsigned char receive_byte(void)unsigned char i,in_byte;dat=1;/设为输入状态long_delay();for(i=0;i8;i+)clk=1;short_delay();in_byte=in_byte*2;if(dat)in_byte=in_byte|0x01;clk=0;short_delay();dat=0;return(in_byte);void long_delay(void)unsigned char i;for(i=0;i250;i+);void short_delay(void)unsigned char i;for(i=0;i50;i+);/*void dela

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论