请教锁相环MB1504的用C51单片机控制驱动程序

请教锁相环MB1504的用C51单片机控制驱动程序,第1张

锁相环调频广播么?

我做过单片机控制MC145152+BA1404的,在网上看到有人用MB1504做锁相控制的。

MC145152是并行输入控制的锁相环,多用在电视机里蠢改迟面,MB1504多用在对讲带李机里歼改。

当然现在也有现成的锁相环调频发射模块,BH1417就不错。

这是一个c语言编的打砖块游戏的雏形肆铅

编译前在主目录下建立一颂雹悔个文本文件(xia.txt)内容为:0 0 0 0 0

#include<dos.h>

#include<stdio.h>

#include<graphics.h>

#include<math.h>

union REGS regs

unsigned int zhuan[5]

int Msinit()

void Setmouse(int left,int right,int top,int buttom)

int Msread(int *xp,int *yp,int *bup)

void Draw(int x,int y,int sizex,int sizey)

main()

{int mode=VGAHI,driver=VGA<br/>unsigned int l<br/>int i,gi,gj,j,flag=1/*i,j是循环变量,flag是标记变量,-1:向x负半轴移动,+1:向x正半轴移动*/<br/>double qx,qy,k,b=0.0,speech=0.4,x,y<br/>double r=2.0,bx=60.0,byy=270.0<br/>double pianx=100.0,piany=100.0,tx=20.0,ty=10.0,jx=2.0,jy=2.0<br/>int mx=0,my=0,mb,sum/*sum纪录砖块的数目*/<br/>FILE * p<br/> if((p = fopen("xia.txt", "r")) == NULL)<br/> {printf("The file cannot open!\n")<br/>exit(1)}

initgraph(&driver,&mode,"\\tc\\BGI")

Msinit()

Setmouse((int)(pianx+1+bx/2),(int)((tx+jx)*8+pianx-1-bx/2),(int)byy+piany,(int)byy+piany)

star:cleardevice()/*程野正序重载的介入点*/

sum=0

qx=100.0+pianx-10qy=180.0+pianx-10k=0.33

setcolor(7)

rectangle((int)(pianx-2),(int)(piany-2),(int)((tx+jx)*8+2+pianx),302+piany)

setcolor(1)

rectangle((int)(pianx-1),(int)(piany-1),(int)((tx+jx)*8+1+pianx),301+piany)

/*读取盘面情况*/

for(i=0i<5i++)

fscanf(p,"%x ",&zhuan[i])

/*画砖块*/

for(i=0i<5i++)

{l=1<br/> for(j=0j<16j++)<br/> {if((zhuan[i]&l)==0)<br/> {Draw((int)((jx+tx)*((16*i+j)%8)+pianx+jx),(int)((jy+ty)*((int)((16*i+j)/8))+piany+jy),<br/><br/>(int)tx,(int)ty)<br/> sum+=1<br/> }

l=l*2

}

}

for()

{ setfillstyle(1, 0)

bar(mx-bx/2,my,mx+bx/2,my+5)

Msread(&mx, &my, &mb)

Draw(mx-bx/2,my,bx,5)

setcolor(0)

circle(qx,qy,r)

/*判断求是否反d*/

if(qx-r<=pianx+1 || qx+r>=(tx+jx)*8+pianx-1) {flag=-flagk=-k}

if(qy-r<=piany+1) k=-k

for(gi=0gi<5gi++)

{l=1<br/> for(gj=0gj<16gj++)<br/> {<br/> if((zhuan[gi]&l)==0)<br/> {j=(16*gi+gj)/8<br/>i=(16*gi+gj)%8<br/>x=(jx+tx)*i+jx+tx/2+pianx<br/>y=(jy+ty)*j+jy+ty/2+piany<br/>/*边判断1*/<br/>if(qy>=y-ty/2 &&qy<=y+ty/2 &&(pow(qx+r-x+tx/2,2)<1 || pow(qx-r-x-tx/2,2)<1))<br/> {flag=-flagk=-k<br/> zhuan[gi]=zhuan[gi]|l<br/> sum-=1<br/> if(sum==0) {printf("Win!\n")getch()goto star}

setfillstyle(1, 0)

bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty)

}

else

/*边判断2*/

if(qx>=x-tx/2 &&qx<=x+tx/2 &&(pow(qy+r-y+ty/2,2)<1 || pow(qy-r-y-ty/2,2)<1))

{k=-k<br/> zhuan[gi]=zhuan[gi]|l<br/> sum-=1<br/> if(sum==0) {printf("Win!\n")getch()goto star}

setfillstyle(1, 0)

bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty)

}

else

/*角判断*/

if(pow(qx-x+tx/2,2)+pow(qy-y+ty/2,int *bup)

{int xnew,ynew,ch<br/> if(kbhit()) return getch()<br/> regs.x.ax=3<br/> int86(0x33,&regs,&regs)<br/> xnew=regs.x.cx<br/> ynew=regs.x.dx<br/> *bup=regs.x.bx<br/>*xp=xnew<br/>*yp=ynew<br/>return -1<br/>}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12501802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存