资源简介
通过PROTEUS 系统的仿真,绘制出数字式电感电容表的电路仿真图。
2. 将CPU,存储器,以及I/O接口集成在同一芯片内,基于单片机与555定时器原理进行硬件制作。
3. 根据电路仿真图,使用多谐振荡原理测试电容。
技术要求:
4.使用两片NE555产生标准脉冲和待测脉冲,将电容显示在数个数码管上。
5.测量误差:±10%
代码片段和文件信息
#include “reg52.h“
#include “intrins.h“
#include “.\Head\LCD1602.h“
#define LCD_DATA P0
sbit RS = P1^0; //数据/命令选择(H/L)
sbit RW = P1^1; //读/写选择(L/H)
sbit LCD_EN = P1^2; //使能信号
sbit LCD_BUSY = P0^7; //忙信号
unsigned long power(unsigned char xunsigned char n)
{
unsigned char i;
unsigned long l=1;
if(n==0)
{
return 1;
}
else
{
for(i=0;i {
l = l*x;
}
return l;
}
}
/*----------------------------------------------
延时n毫秒(误差极小)
12M晶振,12T模式,一指令周期=1us
-----------------------------------------------*/
void Delay_ms(unsigned char n)
{
unsigned char ij;
for(i=0;i {
//1ms (跳转等3个指令周期+两个空指令)*200
for(j=0;j<200;j++)
{
_nop_();
_nop_();
}
}
}
/*-----------------读取忙标志位-----------------*/
void Check_busy(void)
{
do
{
LCD_EN=0;
RS=0;
RW=1;
LCD_DATA=0xff;
LCD_EN=1;
}
while(LCD_BUSY==1);
LCD_EN=0;
}
/*--------------------写指令--------------------*/
void Write_Command(unsigned char cmd)
{
Check_busy();
RS=0;
RW=0;
LCD_DATA = cmd;
LCD_EN=0;
LCD_EN=1;
LCD_EN=0;
}
/*--------------------写数据--------------------*/
void Write_Data(unsigned char dat)
{
Check_busy();
RS=1;
RW=0;
LCD_DATA = dat;
LCD_EN=0;//机器周期小于1us时,须加延时
LCD_EN=1;
LCD_EN=0;
}
/*--------------------写字符串-------------------*/
//x:列(0~15);y:行(01)
//从指定的位置开始写,直到超出屏幕显示
void LCD_Write_String(unsigned char yunsigned char xunsigned char *Data)
{
if(y==0) //第一行
{
if(x<16)
{
Write_Command(0x80+x); //0x80第一行起始地址
for(;x<16&&*Data!=‘\0‘;x++) //‘\0‘字符串结束标志
{
Write_Data(*(Data++));
}
}
}
if(y==1) //第二行
{
if(x<16)
{
Write_Command(0xc0+x); //0xc0第二行起始地址
for(;x<16&&*Data!=‘\0‘;x++) //‘\0‘字符串结束标志
{
Write_Data(*(Data++));
}
}
}
}
/*--------------------写长整型数据-------------------*/
//x:列(0~15);y:行(01);截取长整型后length个数字显示在指定位置(全显示length=10)
//注意此函数不支持换行,起始列+length>15时后面的显示不出来,仅能单行显示
void LCD_Write_Long(unsigned char yunsigned char xunsigned char lengthunsigned long Data)
{
unsigned char ik;
if(length>10)
{
length = 10;
}
if(length<10)
{
Data = Data%power(10length);
}
if(y==0) //第一行
{
Write_Command(0x80+x); //0x80第一行起始地址
for(i=0;i {
k = (unsigned char)(Data/power(10length-1-i));
Data = Data%power(10length-1-i);
Write_Data(k+0x30);
}
}
if(y==1) //第二行
{
Write_Command(0xc0+x); //0x80第一行起始地址
for(i=0;i {
k = (unsigned char)(Data/power(10length-1-i));
Data = Data%power(10length-1-i);
Write_Data(k+0x30);
}
}
}
/*--------------------写长整型数据可以指定小数点后数字位数-------------------*/
//x:列(0~15);y:行(01);截取长整型后length个数字显示在指定位置(全显示length=10)
//注意此函数不支持换行,起始列+length>15时后面的显示不出来,仅能单行显示
//pot:小数点后显示几个数字 例:1234567 pot=2时显示为12345.67
void LCD_Write_LongPoint(unsigned char yunsigned char xunsigned char lengthunsigned char potunsigned long Data
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36195376 2018-05-28 22:39 功能说明\录像\VID_20180528_202620_baofeng.mp4
文件 259072 2018-05-26 01:20 功能说明\成品\2.输出文档\2.输出文档\原理图与PCB\LC-meter-T01.sch
文件 45105 2018-04-19 18:05 功能说明\成品\2.输出文档\2.输出文档\原理图与PCB\LC-meter_Project.PrjPcb
文件 93257 2018-05-29 14:53 功能说明\成品\2.输出文档\2.输出文档\原理图与PCB\__Previews\LC meter-T01.PcbDocPreview
文件 82 2018-05-11 10:11 功能说明\成品\2.输出文档\2.输出文档\原理图与PCB\画图软件altium designer.txt
文件 4533 2018-04-25 01:07 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\C\LCD1602.c
文件 3906 2018-05-02 20:56 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\C\Main.c
文件 6229 2018-04-25 01:02 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\C\Measure.c
文件 759 2011-07-20 12:09 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Head\define.h
文件 157 2012-07-31 18:04 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\LCF_51.plg
文件 11334 2018-04-25 01:07 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Lst\LCD1602.lst
文件 33999 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Lst\LCF_51.m51
文件 10867 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Lst\Main.lst
文件 14851 2018-04-25 01:07 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Lst\Measure.lst
文件 6715 2018-04-25 01:07 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCD1602.obj
文件 11875 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCF_51
文件 1238 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCF_51.build_log.htm
文件 13765 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCF_51.hex
文件 124 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCF_51.lnp
文件 889 2012-10-08 18:58 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\LCF_51.plg
文件 4178 2018-05-02 20:57 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\Main.obj
文件 7647 2018-04-25 01:07 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\Obj\Measure.obj
文件 89 2018-05-11 10:10 功能说明\成品\2.输出文档\2.输出文档\程序\编程软件Keil.txt
文件 768910 2018-05-29 15:49 功能说明\成品\2.输出文档.rar
文件 268660 2018-05-29 18:16 功能说明\成品\LC meter-T01.pdf
文件 334894 2018-05-29 18:16 功能说明\成品\LC-meter-T01.pdf
文件 533113 2018-05-29 20:34 功能说明\成品\LC表.pdf
文件 66 2018-10-14 20:16 功能说明\说明.txt
..A..H. 162 2018-10-14 20:46 功能说明\需求\~$功能说明.docx
目录 0 2018-05-29 14:49 功能说明\成品\2.输出文档\2.输出文档\程序\LC-T0.1\C
............此处省略17个文件信息
相关资源
- 基于单片机和AD574的简易电子秤设计
- 基于51单片机的温室温湿度控制系统的
- 基于STM32系列单片机的智能清扫机器人
- AD6 超全元件库
- 空调智能恒温系统设计+论文
- ATmega128单片机入门与提高 沈建良版例
- mc9x12xs128单片机的20个例程
- 《单片机原理及接口技术第2版》
- 电子-移植好的BootLoader与TRC实验APP.z
- 基于单片机的电梯控制系统设计
- 基于51单片机的温湿度自动控制系统
- STM32F405RGT6串口例程
- FlexRay总线控制器单片机驱动MC9S12XDP
- 基于单片机的自动灌溉系统
- 51单片机原理及应用:基于KeilC与Pro
- 51单片机制作的气体报警二次仪表(带
- 电子琴源码+仿真
- 普中科技单片机例程
- STM8单片机原理与实践-高清版
- 基于单片机的环境监测系统的设计
- 基于STM32单片机全向遥控机器人的设计
- STC89C52电风扇智能调速器的设计
- 《EZ-USB FX2单片机原理、编程及应用》
- 蓝桥杯第七届决赛第一名例程
- 51单片机计算器(程序+AD+仿真)
- 基于组态王51单片机温度控制
- MSP430单片机 教程
- MSP430参考手册中英文全套
- 合泰单片机HT32F52352例程数据手册.zi
- NEC单片机78K0S系列例程
评论
共有 条评论