久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機定時器測量頻率程序 用1602液晶顯示
[打印本頁]
作者:
老手
時間:
2021-4-16 16:55
標題:
單片機定時器測量頻率程序 用1602液晶顯示
/*******************************************************************
* *
* 555定時器試驗 -—— 頻率計 *
* *
* *
* LCD1602顯示 *
*改變VR1電位器的電阻值,觀察液晶屏頻率發生變化 *
* *
*******************************************************************/
#include <reg52.h>
#include <intrins.h>
#include "1602.h"
unsigned char code cdis1[] =
{
" CYMOMETER " //頻率計
};
unsigned char code cdis2[] =
{
"FREQ: Hz "
};
bit sec = 0;
unsigned char msec = 0, Hdata = 0, Ldata = 0, Count = 0;
unsigned long temp = 0;
unsigned char data display[] =
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
char code reserve[3]_at_ 0x3b; //保留0x3b開始的3個字節
/*********************************************************
us延時函數 (4.34us)
*********************************************************/
void delayNOP()
{
_nop_();
_nop_();
_nop_();
_nop_();
}
/*********************************************************
ms延時函數
*********************************************************/
void delayms(unsigned int ms)
{
unsigned char n;
while (ms--)
{
for (n = 0; n < 114; n++)
;
}
}
/**********************************************************
* *
* 顯示函數 *
* *
**********************************************************/
void play()
{
unsigned char n;
for (n = 0; n <= 4; n++)
//數據轉換
{
display[n] = temp % 10+0x30;
temp = temp / 10;
}
display[5] = temp + 0x30;
for (n = 5; n > 0; n--)
//高位為"0"不顯示
{
if (display[n] == 0x30)
display[n] = 0x20;
else
break;
}
lcd_pos(0x46); //顯示實際頻率值
for (n = 5; n != 0xff; n--)
lcd_wdat(display[n]);
}
/*********************************************************
* *
* 主函數 *
* *
*********************************************************/
void main()
{
unsigned char m;
unsigned long frq_num;
P3 = 0xff;
lcd_init();
lcd_pos(0x00); //設置顯示位置為第一行
for (m = 0; m < 16; m++)
lcd_wdat(cdis1[m]);
//顯示字符
lcd_pos(0x40); //設置顯示位置為第二行
for (m = 0; m < 16; m++)
lcd_wdat(cdis2[m]);
//顯示字符
TMOD = 0x51; //定時器0工作在定時方式
//定時器1工作在計數方式
TH0 = 0x4c; //50ms定時
TL0 = 0x00;
TH1 = 0x00; //計數初值
TL1 = 0x00;
ET0 = 1; //使能TIMER0中斷
ET1 = 1; //使能TIMER1中斷
EA = 1; //允許中斷
PT1 = 1; //定義TIMER1中斷優先
TR0 = 1;
TR1 = 1;
while (1)
{
if (sec)
{
Hdata = TH1; //取計數值
Ldata = TL1;
frq_num = ((Count *65535+Hdata * 256+Ldata) *108 / 100);
TH1 = 0;
TL1 = 0;
sec = 0;
Count = 0;
TR1 = 1;
TR0 = 1;
}
temp = frq_num;
play();
}
}
/**********************************************************
* *
* Time0中斷函數 *
* *
**********************************************************/
void Time0()interrupt 1
{
TH0 = 0x4c; //50ms定時
TL0 = 0x00;
msec++;
if (msec == 20)
//50*20=1S
{
TR0 = 0; //關閉TIMER0
TR1 = 0; //關閉TIMER1
msec = 0;
sec = 1; //置秒標記位
}
}
/**********************************************************
* *
* Time1中斷函數 *
* *
**********************************************************/
void Time1()interrupt 3
{
Count++;
}
/*********************************************************/
復制代碼
hex文件:
21 555脈沖發生器.rar
(172.81 KB, 下載次數: 13)
2021-4-16 16:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美成ee人免费视频
|
婷婷五月色综合
|
国产网站久久
|
岛国av一区二区
|
欧美日韩福利视频
|
午夜不卡一区二区
|
国产成人久久精品一区二区三区
|
久久免费大片
|
欧美精品久久
|
国产一级特黄真人毛片
|
亚洲福利一区
|
亚洲成av人片在线观看
|
精品香蕉一区二区三区
|
av网站免费在线观看
|
国产中文字幕在线
|
成人h视频在线观看
|
一级免费视频
|
欧美综合一区二区
|
国内精品久久久久
|
久久精品二区
|
综合成人在线
|
日韩一区在线播放
|
国产一区二区在线免费观看
|
涩涩视频大全
|
91视频入口
|
一区二区三区中文字幕
|
成人av高清在线观看
|
成人欧美一区二区三区在线观看
|
91精品国产综合久久久久久丝袜
|
日韩中文字幕在线观看
|
婷婷二区
|
欧美日韩精品一区
|
国产成人99av超碰超爽
|
日韩视频一区二区
|
99re超碰
|
一区二区不卡高清
|
久久久久免费观看
|
www.嫩草
|
日韩精品一区二区三区在线观看
|
五月综合激情在线
|
国产成人精品久久二区二区91
|