久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
關于單片機+1602顯示屏完全沒有反應 求幫助
[打印本頁]
作者:
578414017
時間:
2019-6-27 14:36
標題:
關于單片機+1602顯示屏完全沒有反應 求幫助
這個程序主要是利用紅外對管來實現一個計數這樣子的功能,現在程序出了一點小問題,還望各位大佬指導一下,謝謝。以下是程序
#include <reg52.h>
#define uchar unsigned char
//定義變量
sbit LED3=P2^2; //LED3
sbit LED2=P2^3; //LED2
sbit LED5=P2^4; //LED5
sbit LED4=P2^5; //LED4
sbit IR_Input_IO=P2^1;
sbit Light_Input_IO=P2^7;
sbit en=P1^2; //1602 6管腳
sbit rs=P1^0; //1602端口 4管腳
sbit rw=P1^1;//lcd1602控制端口 5管腳
bit bTime1ms,bTime10ms,bTime100ms;
uchar Time01ms,Time1ms,Time10ms,People_Number;
bit IR_Input_IO_Flag;
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)//延時1ms函數
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void write_com(uchar com)//向1602寫一字節(控制指令)
{
rs=0;
P0=com;
delay(5);
en=0;
delay(10);
en=1;
}
void write_data(uchar date)//向1602寫一字節(數據)
{
rs=1;
P0=date;
delay(5);
en=0;
delay(5);
en=1;
}
/*------------------------------------------------
定時器0中斷處理
------------------------------------------------*/
void tim0_isr (void) interrupt 1 using 1
{
TH0=0xFF;
TL0=0xB2;
Time01ms++;
if(Time01ms>10)
{
Time01ms=0;
bTime1ms=1;
}
}
/*---------------------------------------------- --
定時器0初始化
------------------------------------------------*/
void TIM0init(void)//定時器0初始化
{
TMOD=0x01;//定時器0工作方式1
TH0=0xFF;
TL0=0xB2; //0.1ms初值
ET0=1; //開中斷
TR0=1;
EA = 1; //開總中斷
}
/*------------------------------------------------
系統初始化
------------------------------------------------*/
void system()
{
Time01ms=0;
Time01ms=0;
Time1ms=0;
Time10ms=0;
}
/*------------------------------------------------
IO口檢測
------------------------------------------------*/
void IO_Test()
{
if(IR_Input_IO==0)
{
if(IR_Input_IO_Flag)//掃描10ms
{
if(IR_Input_IO==0)
{
People_Number++;//人數++
LED2=0;//有人就一盞燈
if(10<=People_Number<=20) //小于20人亮兩盞
{
LED2=0;
LED3=0;
LED4=1;
LED5=1;
}
else if(People_Number<=40)//超過20人亮3盞
{
LED2=0;
LED3=0;
LED4=0;
LED5=1;
}
else //超過40人亮4盞
{
LED2=0;
LED3=0;
LED4=0;
LED5=0;
}
}
IR_Input_IO_Flag=0;
}
else
{
IR_Input_IO_Flag=1;
}
}
}
/*------------------------------------------------
主函數
------------------------------------------------*/
void main()
{
system();
TIM0init();
write_com(0x80);
write_data('P');
write_data(':');
while(1)
{
write_com(0x87);
if(People_Number/10000!=0)
write_data(People_Number/10000+0x30); //如果人數的萬位不為0 正常顯示否則顯示空格
else
write_data(' ');
if(People_Number/1000==0)
write_data(' ');
else
write_data(People_Number%10000/1000+0x30); //如果人數小于1000 千位為空格 否則正常顯示
if(People_Number/100==0)
write_data(' ');
else
write_data(People_Number%10000%1000/100+0x30); //如果人數小于100 百位為空格 否則正常顯示
if(People_Number/10==0)
write_data(' ');
else
write_data(People_Number%10000%1000%100/10+0x30); //如果人數小于10 十位為空格 否則正常顯示
write_data(People_Number%10000%1000%100%10+0x30);
write_com(0xd0); //如果沒有這句,當中斷內的顯示函數執行完,就會在人數的位置顯示占空比數據,導致亂碼
//-----定時1ms-----
if(bTime1ms)
{
bTime1ms=0;
Time1ms++;
//-----定時10ms-----
if(Time1ms>10)
{
IO_Test();//檢測
Time1ms=0;
Time10ms++;
bTime10ms=1;
//-----定時100ms-----
if(Time10ms>10)
{
Time10ms=0;
bTime100ms=1;
}
}
}
}
}
按照以上程序燒錄進單片機之后發現液晶顯示屏完全沒有反應,真心求教大佬指導一下。
萬分感謝!!。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久亚洲综合
|
欧美aⅴ
|
找个黄色片
|
中文字幕乱码一区二区三区
|
美女爽到呻吟久久久久
|
男人天堂网址
|
国产午夜精品久久久
|
日韩欧美精品一区
|
在线观看免费av网站
|
激情毛片
|
亚洲免费片
|
亚洲第一女人av
|
91人人澡人人爽
|
亚洲视频区
|
免费av手机在线观看
|
亚洲黄色高清视频
|
av免费在线播放
|
国产在线观
|
欧美成人第一页
|
97国产精品视频人人做人人爱
|
色性av
|
九九热在线视频
|
精品日韩欧美一区二区
|
剑来高清在线观看
|
欧美精品久久久久久
|
成人av网站在线观看
|
欧美日韩一区二区三区视频
|
一级毛片在线看
|
国产成人在线视频播放
|
日本粉嫩一区二区三区视频
|
国产激情视频
|
国产情品
|
亚洲视频中文字幕
|
综合久久综合久久
|
国产精品mv在线观看
|
亚洲不卡在线观看
|
偷拍自拍网
|
日韩亚洲一区二区
|
精品国产乱码一区二区三区a
|
亚洲国产欧美国产综合一区
|
精品国产一区久久
|