第一次写博客呀多多关照~
1、实现的功能
采用和单片机及显示电路完成0~5V、0~15V两个阻值的直流电流的测量,并通过液晶屏实时显示。通过开关SW1和SW2选择5V或15V,当所测电流超过量程时,报案电路的小灯闪动、蜂鸣器发出警报,同时液晶屏显示QAQ(哈哈哈闲着没事干就加了),当两个开关同时按下也会触发报案电路。
至于两个档位的区别,为了模拟实际的电流表,所以设计的数字电流表显示的精度不一样,15V阻值的精度为0.1V电压表的原理,5V阻值的精度为0.001V。
2、仿真原理图
(想说一下,我这儿的out输出接了上拉阻值,要不然显示屏显示不正常电压表的原理,并且参考他人的不接上拉内阻也可以正常工作QAQ)
3、仿真结果
选择5V阻值:
选择15V阻值:
4、完整的代码
使用keil编撰的c语言代码.
#include
#define uchar unsigned char //宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
sbit START=P2^7; //AD启动转换信号
sbit OE=P2^5; //数据输出允许信号
sbit EOC=P2^6; //AD转换结束信号
sbit CLK=P2^4; //时钟脉冲
sbit RS=P2^0; //LCD1602数据/命令选择端(H/L)
sbit RW=P2^1; //LCD1602数/写选择端(H/L)
sbit E=P2^2; //LCD1602使能信号
sbit led=P3^0;
sbit buzzer=P3^1;
sbit SW1=P3^2; //5V量程选择开关
sbit SW2=P3^3; //15V量程选择开关
sbit addr_a=P3^5;
sbit addr_b=P3^6;
sbit addr_c=P3^7;
//函数声明
uint ADC(); /* AD转换函数 */
void delayMS(uint xms); /* 延时函数 */
bit lcd_busy_check(); /* 忙检测函数 */
void lcd_write_com(uchar com); /* LCD1602写入8位命令子函数 */
void lcd_write_data(uchar date); /* LCD1602写入8位数据子函数 */
void init_lcd(); /* LCD1602初始化子程序 */
void lcd_show_string1(uchar a[]); /* 第一行从头开始显示字符串 */
void lcd_show_string2(uchar a[]); /* 第二行从头开始显示字符串 */
void lcd_show_string(uchar add,uchar a[]); /* 指定位置显示字符串 */
void display(); /* 显示函数 */
void alarm(); /* 报警函数 */
void range(); /* 量程选择函数 */
//定义全局变量
unsigned int volt;
unsigned long vo;
unsigned char code table[]="0123456789";
/**************************函数功能:AD转换子程序***************************/
uint ADC()
{
START=0; //确保进入正常AD转换状态
OE=0; //转化初始化
START=1;
START=0; //AD开始转换
while(EOC==0); //外部中断等待AD转换结束
OE=1; //读取转换的AD值
volt=P1;
OE=0; //输出转换结束
return volt;
}
/**********************函数功能:液晶屏LCD1602显示子程序****************/
/*延时函数:DelayMS()*/
void delayMS(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
/*忙检测函数:lcd_busy_check()*/
bit lcd_busy_check()
{
bit result;
RS=0;
RW=1;
E=1;
delayMS(10);
result=(bit)(P0&0x80);
E=0;
return result;
}
/*写命令函数:lcd_write_com()*/
void lcd_write_com(uchar com)
{
RS=0;
E=0;
RW=0;
P0=com;
delayMS(5);
E=1;
delayMS(5);
E=0;
}
/*写数据函数:lcd_write_data()*/
void lcd_write_data(uchar date)
{
RS=1;
E=0;
RW=0;
P0=date;
delayMS(5);
E=1;
delayMS(5);
E=0;
}
/* LCD1602初始化函数:init_lcd()*/
void init_lcd()
{
E=0; //默认开始状态为关使能端
lcd_write_com(0x38); //显示模式设置
lcd_write_com(0x01); //显示清屏,将上次的内容清除
lcd_write_com(0x0c); //开显示,不显光标,光标不闪
lcd_write_com(0x06); //读一个字符光标加1
}
/* 指定位置显示字符串函数:lcd_show_string() */
/* 参数 add 地址 第一行 0~27 */
/* 第二行 40~67 */
/* a[] 字符串 "abc" */
void lcd_show_string(uchar add,uchar a[])
{
uchar i;
lcd_write_com(0x80+add);
for(i=0;a[i]!='
主站蜘蛛池模板:
无遮挡18禁啪啪羞羞漫画
|
欧美日本精品一区二区三区
|
6080伦理久久精品亚洲
|
久久久精品国产sm最大网站
|
内射女校花一区二区三区
|
久久久噜噜噜久久老司机
|
欧美专区在线播放
|
亚洲成人激情片
|
久久国产精品-国产精品
|
精品福利视频在线观看视频
|
91精品国产麻豆福利在线
|
国产性片在线观看
|
欧美一区二区在线播放
|
撕开奶罩揉吃奶高潮av在线观看
|
妞干网免费观看视频
|
日韩精品亚洲专区在线影视
|
尤物网站在线观看
|
97成人精品
|
国产色产综合色产在线视频
|
香蕉依依精品视频在线播放
|
亚洲av综合a色av中文
|
把女人弄爽特黄a大片
|
男女免费爽爽爽在线视频
|
www国产亚洲精品久久
|
国产精品短视频
|
免费看日韩欧美一级毛片
|
92国产精品午夜福利
|
亚洲欧美日韩国产精品专区
|
亚洲国产精品91
|
国产精欧美一区二区三区
|
3d动漫精品一区二区三区
|
天天艹天天
|
国产真人做爰毛片视频直播
|
黄色彩网站网址大全女
|
五月丁香综合缴情六月小说
|
91精品国产麻豆国产自产在线
|
人妻仑乱a级毛片免费看
|
国产首页|
欧美色99|
亚洲精品乱码久久久久久中文字幕
|
福利片在线看
|