久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機的聲光控照明系統Proteus仿真+程序
[打印本頁]
作者:
qindongaaa
時間:
2019-4-14 11:22
標題:
51單片機的聲光控照明系統Proteus仿真+程序
這是一些和聲光控照明有關的資料
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(14.33 KB, 下載次數: 69)
下載附件
2019-4-14 20:55 上傳
0.png
(12.41 KB, 下載次數: 78)
下載附件
2019-4-14 20:55 上傳
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define delay4us() {_nop_();_nop_();_nop_();_nop_();} //??4us
unsigned char dat = 0x00;
unsigned char count = 0x00;
unsigned char CH;
unsigned char dis[] = {0x00, 0x00, 0x00};
unsigned int displaynum;
sbit RS = P2^0;
sbit RW = P2^1;
sbit E= P2^2;
sbit buzzer= P2^4;
sbit led= P2^3;
sbit CS = P3^5;
sbit Clk = P3^4;
sbit DATI = P3^3;
sbit DATO = P3^3;
void Disp_temper_range(uchar add,uint T);
void Display();
uchar code table1[]="GZ:";
uchar code table2[]="SY:";
uchar code table5[]="SPEED:";
uchar code table3[]={0x07,0x05,0x07,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x06,0x09,0x10,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0x12,0x0C,0x00,};
uchar code table4[]={14,12,7,5,0};
uchar code table6[]="1";
uchar code table7[]="2";
uchar code table8[]="3";
uchar code table9[]="0";
uchar d,a,temp,*p,aa,s,m,i=0;
unsigned int num=0;
unsigned char gz;
unsigned char sy;
unsigned char openflag=0;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void delay_(uint i)
{
while(i--);
}
void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
bit LCD_Busy_Check() //LCD判忙
{
bit result;
RS = 0;
RW = 1;
E= 1;
delay4us();
result = (bit)(P0&0x80);
E= 0;
return result;
}
void LCD_Write_Command(uchar cmd) //LCD寫命令
{
while(LCD_Busy_Check());
RS = 0;
RW = 0;
E = 0;
_nop_();
_nop_();
P0 = cmd;
delay4us();
E = 1;
delay4us();
E = 0;
}
/*
void Set_Disp_Pos(uchar pos)
{
LCD_Write_Command(pos | 0x80); //???
}
*/
void LCD_Write_Data(uchar dat)
{
while(LCD_Busy_Check());
RS = 1;
RW = 0;
E = 0;
P0 = dat;
delay4us();
E = 1;
delay4us();
E = 0;
}
void set_XY(uchar X,uchar Y) //????????
{
if(Y==0)
X+=0x80;
else
X|=0xC0;
LCD_Write_Command(X);
}
void DispOneChar(uchar X,uchar Y,uchar Data) //??????
{
set_XY(X,Y);
LCD_Write_Data(Data);
}
void LCD_Initialise() //LCD初始化
{
LCD_Write_Command(0x38); DelayMS(1);
LCD_Write_Command(0x38); DelayMS(1);
LCD_Write_Command(0x38); DelayMS(1);
LCD_Write_Command(0x38); DelayMS(1);
LCD_Write_Command(0x0c); DelayMS(1);
LCD_Write_Command(0x06);
LCD_Write_Command(0x01);
delay4us();
delay4us();delay4us();delay4us();
}
void Display_fre(uchar f) //
{
uchar a1,a2,a3;
a1=f/100;
a2=f/10%10;
a3=f%10;
DispOneChar(4,0,0x30+a1);
DispOneChar(5,0,0x30+a2);
DispOneChar(6,0,0x30+a3);
}
void Display_fre1(uchar s)
{
uchar b1,b2,b3;
b1=s/100;
b2=s/10%10;
b3=s%10;
DispOneChar(13,0,0x30+b1);
DispOneChar(14,0,0x30+b2);
DispOneChar(15,0,0x30+b3);
}
void Display_fre2(uint ss)
{
uint c1,c2,c3,c4;
c1=ss/1000;
c2=ss/100%10;
c3=ss/10%10;
c4=ss%10;
DispOneChar(7,1,0x30+c1);
DispOneChar(8,1,0x30+c2);
DispOneChar(9,1,0x30+c3);
DispOneChar(10,1,0x30+c4);
}
void DispChars(uchar X,uchar Y,uchar *p,uchar count) //?????
{
uchar i;
for(i=0;i<count;i++)
{
set_XY(X,Y);
LCD_Write_Data(*p);
X++;
p++;
}
}
/*****CH=0X00,對CH1進行轉換,TGS260******/
unsigned char adc0832(unsigned char CH) //模數轉化
{
unsigned char i,test,adval;
adval = 0x00;
test = 0x00;
Clk = 0;
DATI = 1;
_nop_();
CS = 0;
_nop_();
Clk = 1;
_nop_();
if ( CH == 0x00 ) //CH=0X00,對CH1進行轉換,TGS260
{
Clk = 0;
DATI = 1; //
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 1;
_nop_();
Clk = 1;
_nop_();
}
else
{
Clk = 0;
DATI = 1;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
DATI = 0;
_nop_();
Clk = 1;
_nop_();
}
Clk = 0;
DATI = 1;
for( i = 0;i < 8;i++ ) //
{
_nop_();
adval <<= 1;
Clk = 1;
_nop_();
Clk = 0;
if (DATO)
adval |= 0x01;
else
adval |= 0x00;
}
for (i = 0; i < 8; i++)
{
test >>= 1;
if (DATO)
test |= 0x80;
else
test |= 0x00;
_nop_();
Clk = 1;
_nop_();
Clk = 0;
}
if (adval == test)
dat = test;
_nop_();
CS = 1;//ADC0832
DATO = 1;
Clk = 1;
return dat;
}
void main(){
led = 1;
LCD_Initialise(); //LED初始化
// DelayMS(5);
DispChars(0,0,p=table1,4); //??“tgs”
// DelayMS(5);
DispChars(8,0,p=table2,4); //??“mq2”
while (1){
gz=100-100*adc0832(0x00)/255;
Display_fre(gz);
sy= 100*adc0832(0x11)/255;
Display_fre1(sy);
if (gz<50){
openflag = 0;
}
if ((50<=gz)&&(sy>40)){
openflag = 1;
}
else {
openflag = 0;
}
if (openflag==1){
led = 0;
num++;
delay(200);
if (num>180){
num=0;
led=1;
openflag = 0;
}
}
else{
if (num!=0){
num++;
delay(200);
if (num>180){
num=0;
led=1;
openflag = 0;
}
}
}
}
}
復制代碼
所有資料51hei提供下載:
聲控燈.rar
(81.57 KB, 下載次數: 160)
2019-4-14 11:21 上傳
點擊文件名下載附件
原理圖加仿真
下載積分: 黑幣 -5
作者:
qz347413614
時間:
2019-12-7 13:48
我照著圖片接了實物,可是LCD不亮怎么辦呢
作者:
虛擬寵物iejk
時間:
2020-1-5 10:53
沒有仿真圖啊,打不開
作者:
shirayuki_lumi
時間:
2020-5-26 22:24
這個紅色LED燈要在什么情況下亮?
作者:
MIBABA
時間:
2020-6-24 21:34
有人仿真成功了嗎,求助
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
在线观看视频一区二区三区
|
一区二区三区国产视频
|
男女操网站
|
色77777
|
九九精品国产
|
天天操狠狠干
|
国产欧美一区二区精品忘忧草
|
狠狠做深爱婷婷久久综合一区
|
亚洲黄色大片
|
在线观看日韩视频
|
久久精品日韩
|
欧美日韩久久
|
精品小视频
|
国产盗摄一区二区三区
|
久久久久国产视频
|
欧美日韩黄
|
亚洲成人中文字幕
|
欧美日韩中文字幕在线
|
欧美高清视频在线观看mv
|
丝袜美腿一区二区三区
|
亚洲在线中文字幕
|
在线观看国产一区
|
久久亚洲国产精品
|
国产精品视频久久久
|
国产一级黄色大片
|
97cao
|
久久这里都是精品
|
久久精品亚洲
|
91午夜精品亚洲一区二区三区
|
狼人色
|
成人a视频
|
91狠狠
|
久久成人毛片
|
人人爱人人插
|
中文字幕97
|
国产色婷婷
|
亚洲午夜久久
|
欧美一级黄色片
|
91看片淫黄大片
|
国产寡妇亲子伦一区二区三区四区
|
亚洲免费在线视频
|