当前位置:首页 >> 信息与通信 >>

数字频率计12864显示


#include <reg52.h> #include "TM12864.h"

unsigned char timercount; unsigned char disbuf[6]={0,0,0,0,0,10}; unsigned long freq; unsigned long int zhouqi; unsigned lon

g b; unsigned long T0count; //计数器

/* void freq_pos() { unsigned int us=1000000; zhuoqi=us/freq; disbuf[5]=zhuoqi%10+48; b=zhuoqi/10; disbuf[4]=b%10+48; b=b/10; disbuf[3]=b%10+48; //把频率转换成周期值,并把各位拆开

b=b/10; disbuf[2]=b%10+48; b=b/10; disbuf[1]=b%10+48; disbuf[0]=b/10+48; } */

void timer_1(void) interrupt 1 { TH0=0xdc; TL0=0x00; timercount++; if(timercount==100) { TR1=0; timercount=0;

//每次中断 10MS

//等待定时时间 //T0 为定时器,T1 为 16 位计数器

freq=T0count*65536+TH1*256+TL1; // freq=freq*16; TH1=0; TL1=0; TR1=1; }

}

void t0(void) interrupt 3 { T0count++; }

void freq_f() {

//拆开频率值

/* disbuf[5]=freq%10+48; b=freq/10; disbuf[4]=b%10+48; b=b/10; disbuf[3]=b%10+48; b=b/10; disbuf[2]=b%10+48; b=b/10; disbuf[1]=b%10+48; disbuf[0]=b/10+48; */

disbuf[0]=(freq/100000)+48; disbuf[1]=((freq%100000)/10000)+48; disbuf[2]=(((freq%100000)%10000)/1000)+48; disbuf[3]=((((freq%100000)%10000)%1000)/100)+48; disbuf[4]=(((((freq%100000)%10000)%1000)%100)/10)+48; disbuf[5]=(((((freq%100000)%10000)%1000)%100)%10)+48; }

void disp_freq(void) { unsigned char i;

//频率显示

write_12864com(0x8a); for(i=0;i<6;i++) { write_12864dat(disbuf[i]); delay_50us(1); } }

void main() {

initinal(); TMOD=0x51; EA=1; ET0=1; TH0=0xdc; TL0=0x00; TH1=0; TL1=0; TR0=1; TR1=1; display3(); display(); while(1) { freq_f(); disp_freq(); //T0 为定时器,T1 为 16 位计数器

} }

/********************************************************** ********************* *TM12864 * * * *********************************************************** *********************/ #include <intrins.h> #define uchar unsigned char #define uint unsigned int /************* 12864LCD 引脚定义 *************/ #define LCD_data P0 sbit RS = P2^6; sbit RW = P2^5; sbit EN = P2^7; sbit PSB = P2^4; //数据口 //寄存器选择输入 //液晶读/写控制 //液晶使能控制 //串/并方式控制 12864 标 准 字 库 液 晶 演 示 数 据 p0, 控 制 p2 描 述 :

uchar table[]="Frequence is:"; uchar table1[]="HZ";

void write_12864com(uchar com); void write_12864dat(uchar dat); void initinal(void); void display3(void); void display(void);

void delay_50us(uint t) { uint j; for(;t>0;t--) for(j=19;j>0;j--); }

//延时 50US

void delay_50ms(uint t) { uint j; for(;t>0;t--) for(j=6245;j>0;j--); }

//延时 50MS

void display(void) {

//显示 HZ

uchar i; write_12864com(0x8d); for(i=0;i<3;i++) { write_12864dat(table1[i]); delay_50us(1); } }

void display3(void) { uchar i;

// 显示 Frequenceis:

write_12864com(0x80); for(i=0;i<13;i++) { write_12864dat(table[i]); delay_50us(1); } }

void write_12864com(uchar com) //写指令 {

RS = 0; RW = 0; delay_50us(1); P0 = com; EN = 1; delay_50us(10); EN = 0; delay_50us(2); }

void write_12864dat(uchar dat) //写数据 {

RS = 1; RW = 0; delay_50us(1); P0 = dat; EN = 1;

delay_50us(10); EN = 0; delay_50us(2); }

void initinal(void) { delay_50ms(2);

//LCD12864 初始化

write_12864com(0x30); delay_50us(4); write_12864com(0x30); delay_50us(4); write_12864com(0x0c); delay_50us(4); write_12864com(0x01); delay_50us(240); write_12864com(0x06); delay_50us(10); }


相关文章:
基于单片机数字频率计设计
本次为测量方波信号的数字频率计设计,设计要求如下: (1)频率测量:0Hz~250kHz; (2)频率,周期显示切换 (3)用图形液晶 LCD12864 显示数值和单位 设计思路 由于...
数字频率计的设计
数字频率计设计 1 49 徐志朗 11192127 2013 年 5 月 15 日 0 单片机课程...接收的TTL信号,以便单片机对其进行频率测量,最后将测得的数 据通过12864液晶显示...
数字频率计
设计一个数字频率计,进行频率的自动测量,并用 12864液晶屏的第一行显示数字频率计” , 第二行显示设计者的姓名和学号, 第三行显示测量的频率值(单位:HZ)。...
12864多变量显示成功程序
12864多功能数字钟源程序... 6页 免费 12864显示程序 13页 2下载券 12864显示...用指针显示字符串 //各种字符都用字符串显示出来 方法简单 //用指针显示字符串...
液晶数字频率计
数字频率计的发展趋势是由模拟器件设计数字频率计逐步转变为数字芯片设计 数字频率...本系统采用屏液晶显示,型号为MFC-G12864 。 关键词:频率计, CPLD,单片机 ,...
LCD12864液晶显示电子钟设计
LCD12864 液晶显示电子钟设 计 系 ( 部 ) 专业 ...液晶显示器第一行显示数字电子钟” ;第二行显示...的振荡电路上,两个电容是起振电容,频率越高,应该...
数字频率计
16 §1 引言一、实验课题数字频率计设计 1、基本要求 设计指标: ① 频率测量:0.1Hz~50KHz; ② 周期测量:4ms~10s; ③ 用图形液晶 LCD12864 显示数值和...
数字频率计
本次数字频率计将采用定时、计数的方法测量频率,采用一个 LCD12864 液晶显示器动 态显示 7 位数,测量频率范围 0Hz—250kHz 的信号。 2 硬件设计 2.1 系统...
LCD12864显示矩阵键盘输入的任意两位数
LCD12864显示矩阵键盘输入的任意两位数_电子/电路_工程科技_专业资料。本程序采用LCD12684串行显示矩阵键盘输入的任意两位数,只用到矩阵键盘的0-9十个数字键/...
唐旭酉--数字频率计
2 设计任务 2.1 设计内容以单片机为核心,设计一个数字频率计,进行频率的自动测量,并用 12864 液晶屏的第一行显示数 字频率计” ,第二行显示设计者的姓名和...
更多相关标签: