while(1){a: p=music_tab[i];if(p==0x00) { i=0, delayms(1000); goto play;} //如果碰到结束符,延时1秒,回到开始再来一遍else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延时100ms,继续取下一音符else {m=music_tab[i++], n=m...
Attansic ATXP1芯片 再来看看超频保护芯片。常见的有微星的MS-3的超频保护芯片、Attansic ATXP1及ATTP1超频控制保护芯片等等,ATXP1是一颗超频/保护二合一的Super PLL芯片,一般在CPU插槽的附近。它能在保证CPU不会因为电压不稳定而出现烧坏的情况下,对CPU、内存和AGP等进行分频设定、电压调节。而ATTP1芯片则能提供独立...
a=0x7f;for(k=0;k<7;k++){ P1=a;delay(500);a=(a>>1)|0x80;a=0xfe;for(k=0;k<7;k++){ P1=a;delay(500);a=(a<<1)|0x01;
define unsigned char uchar//宏定义,就是用后边的代替前边的 define unsigned int uint//宏定义,就是用后边的代替前边的 sbit K1=P1^0;//位定义,应该接的是单片机上的灯控开关 sbit RELAY=P2^4;//位定义,应该是接的继电器吧 //延时函数 void DelayMS(uint ms){ uchar t;while(ms...
使用的变量最少,也不涉及其它接口。代码最少,执行效率最高。这个键盘扫描程序怎么解读?0x10折成二进制是00010000,高四位是列,那么程序就是逐列扫描的了,这是从最低列扫起,用它作为掩码,只留下一位。P1=0xf0;//发全0行扫描码,这句就是让所有的列先置高,行置低,是初始值,建议...
P1=0xf0; //置所有行为低电平,行扫描,列线输入(此时) if((P1&0xf0)!=0xf0) //判断是否有有键按下(读取列的真实状态,若第4列有键按下则P1的值会变成0111 0000),有往下执行 { delays(); //延时去抖动(10ms) if((P1&0xf0)!=0xf0) //再次判断列中是否是干扰信号,不是则向下执行 { sccode=...
定时器初始化函数:void TimerInit(){ TMOD &=0x0F;TMOD |=0x10;TH1=0xB1;TL1=0xE0;//建议将 0xB1、0xE0宏定义为th1、tl1;EA=1;ET1=1;TR1=1;} 0.2秒方波,未说明是脉宽还是周期,只能认为是周期。则脉宽为0.2s÷2=100ms;define T100msAt20msCount 5 sbit WaveOut=P1^7;void ...
0x02, 0x16,0x02, 0x15,0x0B,0x00,0x00 };void InitialSound(void){BeepIO = 1;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; // 计算TL1应装入的初值 (10ms的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; // 计算TH1应装入的初值TH1 = Sound_Temp_TH1...
error c202 指没有定义变量或者定义出现错误 解决方法如下 1 消除函数中i 变量的宣告。2 去掉DelayX1ms函数或利用条件编译if …..endif,可保留该函数并不编译。3 将叙述void Music3写在程序的最前端作宣告如果是其他文件的函数则要写成extern void Music3,即作外部宣告。4 编写一个beep.h 的包含...
//晶振11.0592MHz define HI0 0xff //d8f0==10ms interrupt define LO0 0xA4 //ff47==0.2ms interrupt unsigned char code P1_LED[8]= //高电平亮灯 {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 } void timer0 () interrupt 1 using 1 //timer0 interrupt//定时器0中断 {...