久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
做調(diào)快慢的單片機呼吸燈效果,有呼吸效果了,按鍵卻不能調(diào)
[打印本頁]
作者:
hanxingyijian
時間:
2023-11-25 21:17
標題:
做調(diào)快慢的單片機呼吸燈效果,有呼吸效果了,按鍵卻不能調(diào)
#include <reg51.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
uchar zkb,pwm;
uchar RunMode;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
//**********************************System Fuction*************************************************
void Delay1ms( uint count)
{
uint i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
uchar GetKey(void)
{
uchar KeyTemp,CheckValue,Key = 0x00;
CheckValue = P1&0x43;
if(CheckValue==0x43)
return 0x00;
Delay1ms(10);
KeyTemp = P1&0x43;
if(KeyTemp==CheckValue)
return 0x00;
if(!(CheckValue&0x01))
Key|=0x01;
if(!(CheckValue&0x02))
Key|=0x02;
if(!(CheckValue&0x40))
Key|=0x40;
return Key;
}
uint TimerCount,SystemSpeed,SystemSpeedIndex;
void InitialTimer0(void) //100us@11.0592MHZ
{
// AUXR &= 0x7F; //定時器時鐘12T模式
TMOD = 0x00; //設(shè)置定時器模式
TL0 = 0xA4; //設(shè)置定時初始值
TH0 = 0xFF; //設(shè)置定時初始值
TR0 = 1; //定時器0開始計時
ET0=1;
EA=1;
}
uint code SpeedCode[]={ 1, 2, 3, 5, 8, 10, 14, 17, 20, 30,
40, 50, 60, 70, 80, 90, 100, 120, 140, 160,
180, 200, 300, 400, 500, 600, 700, 800, 900,1000};//30
void SetSpeed( uchar Speed)
{
SystemSpeed =SpeedCode[Speed];
}
void LEDShow( uint LEDStatus)
{
P3 = (LEDStatus&0xFF);
}
void InitialCPU(void)
{
RunMode = 0x00;
TimerCount = 0;
SystemSpeedIndex = 10;
P1 = 0xFF;
P3 = 0xFF;
Delay1ms(500);
P1 = 0xFF;
P3 = 0xFF;
SetSpeed(SystemSpeedIndex);
}
unsigned int LEDIndex = 0;
//bit LEDDirection = 1,LEDFlag = 1;
void Mode_0(void)
{
SystemSpeed=1;
if(pwm>zkb)
{
LEDShow(LEDIndex=0xff);
}
else
{
LEDShow(LEDIndex=0x00);
}
}
//Mode 1
void Mode_1(void)
{
LEDShow(0x80>>LEDIndex);
LEDIndex = (LEDIndex+1)%8;
}
void TimerEventRun(void)
{
if(RunMode==0x00)
{
Mode_0();
}
else if(RunMode ==0x01)
{
Mode_1();
}
}
void Timer0(void) interrupt 1 using 1
{
static uchar max=0;
if(++TimerCount>=SystemSpeed)
{
TimerCount = 0;
TimerEventRun();
}
pwm++; //震蕩周期變量
if(pwm>200) //如果數(shù)值大于100
{
pwm=0; //周期歸零
if(max==0){zkb++;} //MAX占空比漸加漸減標志位 默認max為0.每一周期占空比漸加
if(max==1){zkb--;} //MAX占空比漸加漸減標志位 如果max為1.每一周期占空比漸減
if(zkb==200){max=1;} //如果占空比的值為100 標志位MAX置為1.漸減
if(zkb==0){max=0;} //如果占空比的值為0 標志位MAX置為0.漸加
}
}
unsigned char MusicIndex = 0;
void KeyDispose(unsigned char Key)
{
if(Key&0x01)
{
LEDDirection = 1;
LEDIndex = 0;
LEDFlag = 1;
RunMode = (RunMode+1)%2;
}
if(Key&0x02)
{
if(SystemSpeedIndex>0)
{
--SystemSpeedIndex;
SetSpeed(SystemSpeedIndex);
}
else
{
}
}
if(Key&0x40)
{
if(SystemSpeedIndex<28)
{
++SystemSpeedIndex;
SetSpeed(SystemSpeedIndex);
}
else
{
}
}
}
//***********************************************************************************
main()
{
unsigned char Key;
P1M0 = 0x00;
P1M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
InitialCPU();
InitialTimer0();
while(1)
{
Key = GetKey();
if(Key!=0x00)
{
KeyDispose(Key);
}
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
av男人的天堂av
|
亚洲欧美视频一区二区
|
久久成人综合
|
成人免费看黄网站在线观看
|
日韩人体视频
|
国产成人精品久久二区二区91
|
日韩精品一区二区不卡
|
九九综合
|
av中文字幕在线
|
中文字幕在线观看第一页
|
欧美一级α片
|
91精品国产91久久久久久密臀
|
国产亚洲人成a在线v网站
|
国产在线视频一区二区
|
国产一区亚洲
|
国产一区二
|
福利社午夜影院
|
久久久精品网
|
亚洲国产成人精品女人久久久
|
欧美一级精品片在线看
|
精品免费国产一区二区三区四区介绍
|
精品久久一区
|
精品国产乱码久久久久久中文
|
国产成人高清
|
亚洲激情在线
|
色婷婷综合久久久中文字幕
|
久草新在线
|
久久在线
|
日韩国产免费
|
亚洲一区二区三区四区五区中文
|
久久精品国产a三级三级三级
|
日韩成人在线视频
|
91原创视频
|
精品久久99
|
天天视频成人
|
国内91在线
|
欧美亚洲国产精品
|
婷婷91
|
亚洲成人一区
|
亚洲精品电影
|
欧美日韩一二三区
|