当前位置:首页 > 《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2
.
}
else k=k<<1; } m=m+4;
scancode=~scancode; 1
scancode=scancode>>1; scancode=~scancode; } } } }
void main() //主函数 { uchar *s; uchar z;
uchar i=0,j=0; //i为LCD的行,j为LCD的列 delay_LCM(15);
init_1602(); //1602初始化 s=\
display_1602(s,0,0); //第一行显示\ delay_LCM(200); delay_LCM(200); delay_LCM(200); while(1) {
if (checkkey()==0x00) continue; else
{
{i=1; //LCD在第二行显示 z= keyscan(); if (j>=16)
{j=0;i=1; break; }
//为scancode右移时,移入的数为
可编辑
.
}
else
DisplayOneChar(j,i,a[z]);j++;
delay(100); } }
} 第七章
【例7-4】采用DAC0832实现的波形发生器
#include
#define uchar unsigned char #define DAC0832 XBYTE[0x7fff]
code uchar sintab[ ]={0x7f,0x89,0x94,0x9f,0xaa, 0xb4,0xbe,0xc8,0xd1,0xd9, 0xe0,0xe7,0xed,0xf2,0xf7, 0xfa,0xfc,0xfe,0xff}; sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; uchar m=0;
可编辑
void delay( ) {uchar j;
for(j=0;j<250;j++);} void int0( ) interrupt 0 { P1=0xff; if(P10==0) { m=1;} if(P11==0) { m=2;} if(P12==0) { m=3;} if(P13==0) { m=4;} }
void main( ) { uchar data i; EA=1; EX0=1; IT0=1; while(1) { kkk: switch(m)
{ case 0: goto kk;break; case 1: goto k0;break; case 2: goto k1;break; case 3: goto k2;break; case 4: goto k3;break; default:break; }
k0: while(1)
{for(i=0;i<0xff;i++)
.
可编辑
.
{ DAC0832=i; } goto kkk; } k1:while(1)
{ for(i=0;i<0xff;i++) {DAC0832=i;} for(i=0xff;i>0;i--) {DAC0832=i;} goto kkk; } k2: while(1) { DAC0832=0xff; delay( ); DAC0832=0; delay( ); delay( ); goto kkk; }
k3: while(1)
{ for(i=0;i<18;i++) { DAC0832=sintab[i];} for(i=18;i>0;i--) { DAC0832=sintab[i];} for(i=0;i<18;i++) { DAC0832=~sintab[i];} for(i=18;i>0;i--) { DAC0832=~sintab[i];} goto kkk; }
kk:DAC0832=0; } }
【例7-6】1路模拟输入A/D转换示例
可编辑
共分享92篇相关文档