论坛风格切换切换到宽版
  • 16450阅读
  • 41回复

DIY了个PLL,MC145162四线控制的,成功了,好玩啊! [复制链接]

上一主题 下一主题
离线qiufeng
发帖
401
只看该作者 20楼 发表于: 2007-03-03
但问题就是在这里,没有mc145162的,我就写了个,还有也写了个tb31202的代码:
"玩转pll电路之tb31202,代码在硬件上调试成功"
http://www.hellocq.net/forum/showthread.php?t=147246&
离线qiufeng
发帖
401
只看该作者 21楼 发表于: 2007-03-04
再给大家看看现在的进展代码,键盘部分还未加入,这是测试中频与显示关系的代码,还有部分没有贴上
void main (void)
{
unsigned int tx_count,rx_count;
tx_count=28543;

if(mode!=ture)//这部分是中频与显示的代码,这里只设置了10.7m和21.4m的中频
if(osc==ture)
    rx_count=tx_count+10700;
else
    rx_count=tx_count;
else
    rx_count=tx_count+21400;
mc145162_reset(0x90,0x3fa04000);   //括号里分别是控制寄存器数据,基频控制器数据,
mc145162_pll(tx_count,rx_count);   //发射部分分频控制数据,接收部分分频控制器数据,

init_lcd();
clear_lcd();
display_lcd_number((tx_count)); //display_lcd_number的定义及计算我也改了,至于为什么,大家参见原文《嵌入式c语言程序设计-使用mcs-51》的5.2节比较一下!秋枫
display_lcd_string("khz");
gotoxy(2,0);             //这里我做了修改,至于为什么,大家参见原文《嵌入式c语言程序设计-使用mcs-51》的5.2节比较一下!秋枫
display_lcd_string("to rx tx");


大家请指点!
还有就是上面发的贴中vco部分放大的偏置电阻有问题,大家自己计算一下放大部分的阻值,我在制作vco时是大约的取了个值,没有计算过!
离线BA5SBA
发帖
3088
只看该作者 22楼 发表于: 2007-03-05
留个记号!!以后学习!!
离线3da1
发帖
1704
只看该作者 23楼 发表于: 2007-03-05
'
哈哈!我在7049呼叫,新疆的朋友居然可以抄收到我,希望您到7023khz的cw乐园来玩!
每天早上7点半到10点都有爱好cw的朋友在通联!欢迎! [表情] [表情]
'


我的计算机不能抄收izl的内容,计算机显示说需要对cpu进行重新配置

明天更换计算机了
离线elxyc
只看该作者 24楼 发表于: 2007-03-09
确实值得祝贺!
发帖
30
只看该作者 25楼 发表于: 2007-04-12
hoho
帅哥最近忙工作呢吧
期待新作品啊
离线bd2vaj
发帖
12
只看该作者 26楼 发表于: 2007-04-26
你好
有51汇编语言的程序吗????
谢谢,向你学习
离线yjg
发帖
274
只看该作者 27楼 发表于: 2007-09-14
我用mc145162做了一个振荡器,老是不能锁定,楼主能否给些建议
用的4兆晶振,mc145162的5脚可稳定输出1兆赫兹的信号
离线传播
发帖
1544
只看该作者 28楼 发表于: 2007-09-14
这个用在十米的机上就漂亮了!!!!!!!!!!!!
离线xu.dajiang
发帖
198
只看该作者 29楼 发表于: 2007-09-14
学习了.好文.做记号
离线uniham
发帖
761
只看该作者 30楼 发表于: 2007-09-16
学习了,介绍说明详细,多谢!!
离线szcharle
发帖
13335
只看该作者 31楼 发表于: 2007-09-16
做个记号 有空可得好好看看!
离线BG2TUH
发帖
1222
只看该作者 32楼 发表于: 2007-09-16
pll对于我还是比较实用的,不用去费劲搞9851了.
离线xu.dajiang
发帖
198
只看该作者 33楼 发表于: 2008-01-07
楼主:您好.
您的代码里面有1602的驱动吗?您要是有89c51+1602+145162的原理图和烧写代码的话.可以给小弟一份吗?不会编程啊.
呵呵.谢谢您了
离线efree
发帖
554
只看该作者 34楼 发表于: 2008-03-03
好贴,,支持支持.
离线efree
发帖
554
只看该作者 35楼 发表于: 2008-06-23
//mc145162_reset.c
#include <at89x51.h>
#define clk p2_3
#define din p2_2
#define adin p2_1
#define enb p2_0
void mc145162_reset(unsigned int ctrl_data,unsigned long int ref_data,unsigned int tx_count,unsigned int rx_count)
{
unsigned int i;
unsigned long int mask;
enb=0;
clk=0;
adin=0;
din=0;
enb=1;
mask=0x80;
for(i = 0;i < 8;i++)
{
clk=0;
if(ctrl_data & mask)
{
din=1;
}
else
{
din=0;
}
clk=1;
mask = mask >> 1;
din=0;
}
clk=0;
enb=0;
mask=0x80000000;
enb=1;
for(i = 0;i < 32;i++)
{
clk=0;
if(ref_data & mask)
{
din=1;
}
else
{
din=0;
}
clk=1;
mask = mask >> 1;
din=0;
}
clk=0;
enb=0;
mask = 0x8000;
for(i = 0;i < 16; i++)
{
clk=0;
if(tx_count & mask)
{
adin=1;
}
else
{
adin=0;
}
if(rx_count & mask)
{
din=1;
}
else
{
din=0;
}
clk=1;
mask = mask >> 1;
adin=0;
din=0;
clk=0;
}
enb=1;
enb=0;
}


//delay.c
void delay(unsigned int time_delay)
{

unsigned int time_delay_counter;

for (time_delay_counter=0; time_delay_counter<time_delay; time_delay_counter++)
{}

}
对照mc145162的datasheet看了n遍,怎么也看不懂,哪位给解释一下,为什么这么写啊?
离线efree
发帖
554
只看该作者 36楼 发表于: 2008-06-23
从mc145162的datasheet上看到如图一段话,说mcuclk的输出可以作为单片的时钟使用,那样可以省下单片机的12m(由12m降为1m工作,不知道速度还够不够)的晶振,单片机的干扰也相应降低了,只需要在输出时序上(软件上)做相应调整就行了,不知道我说的对不对。
本主题包含附件,请 登录 后查看, 或者 注册 成为会员
离线黑火药
发帖
95
只看该作者 37楼 发表于: 2008-06-23
好!!!!!!!!!!!
离线BH7KQK
发帖
3425
只看该作者 38楼 发表于: 2008-10-16
qiufeng 万岁!!!!!!!
这资料大好了。做个记号。我也正准备学习用51控制mc145162。
离线田鼠
发帖
235
只看该作者 39楼 发表于: 2009-02-08
学习!