昨天才考完两门小科目,往后每个礼拜都少了8节课,哈哈,可以多来看看帖子了。
这个帖子我到很久没有看到了,6bf让我说说输入10进制数,输出相应的频率的那一段话也是刚刚才看到。看来翻老帖的人还是真厉害啊。
激将法真的很管用的,我就来说说101里面怎么实现的吧。
事先申明,我的汇编也是本学期上微机原理课才开始学的,我做的都是c的程序。
首先,矩阵键盘是要有的,呵呵~~~~不然拿什么输入频率啊。
其次,研究过相应的芯片资料后,写一个单独的函数,比如kn101里面的mc145162,它需要两种数据,一个是置参考分频比,一个是置环路分频比。由于参考分频比是在设计时就定了,所以这个数据开机送一次就可以了,没必要在每次换频率时再送一次;而环路分频比是和当前接受频率相关的,因此,把当前工作频率(十进制)做为该函数的变量,再在函数内部把频率按芯片控制格式的要求转化为一个控制字,送给芯片,因此只要在调用函数时给定变量,就能够实现频率的变换。lcd也是类似的。
第三,将矩阵键盘的操作转换成十进制数,这和把电脑键盘输入的数据转换成电脑里面的格式是一样的,定义好矩阵键盘上哪个键是哪个数字,再定义一个初始值为零的量(比如x),如果按下一个键,就自动把x乘10加上相应键代表的数字,如果前后一共按了5下,就把结果乘1000(kn101是1khz步进)做为变量送入第二步的函数,如果按的键不足5个就按ent键盘退出了,就把x乘以(不足的次数)次10,再乘以1000送交上面那个函数。
具体到每个函数,那就比较长了,而且还牵涉到vco、输入回路、解调器等等的切换,各个部分紧密配合,才能完成一台机器的全部功能,
也不知我笨嘴拙舌,有没有把事说清楚,希望大家能看明白,希望对刚开始学面向过程编程的朋友有帮助。