<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[单片机-MCUchina]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[单片机资料网：单片机文献、单片机编程、单片机资讯]]></description>
<link>http://hi.baidu.com/mcuchina</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[平凡的单片机教程下载]]></title>
        <link><![CDATA[http://hi.baidu.com/mcuchina/blog/item/ffd97a16c345ec54f2de32e3.html]]></link>
        <description><![CDATA[
		
		<p><font face="宋体"><strong>前言</strong><br>
　　传统的单片机教学，均是以单片机的结构为主线，先讲单片机的硬件结构，然后是指令，然后是软件编程，然后是单片机系统的扩展和各种外围器件的应用，最后再讲一些实例。按照此种教学结构，按照这种结构，学生普遍感到难学。试想，一个从未接触过计算机结构的人，甚至数字电路也是刚刚接触的人，要他去理解单片机内部结构，这实在不是个容易的事，至于很多书一开始就提出的总线、地址等概念，更是初学者难以理解的&mdash;&mdash;不管用什么巧妙的比方都不容易理解。于是糊里糊涂地学完了第一部份，第二部份一开始就是寻址方式，更抽象，好多人直到学完单片机还不能理解寻址方式究竟是什么意思，为什么需要这么多寻址方式，刚开始学当然更不懂了。然后是指令，111条指令，又不分个重点，反正全是要记住的，等到指令全部学完，大部份人已对单片机望尔生畏，开始打退堂鼓了。第三部份是编程，如果说前面的东西不能理解，还能靠记忆来获得知识的话，这部份就纯是理解和掌握了，如果以前没学过编程，短时间内很难掌握编程的有关知识，更不必说编程技巧了。可是教材上明明规定，要编出这样、那样的程序，学的人编不出来，当然只会认为，教材的要求当然是合理的，应该做到的，我做不到就是我没学好，于是很多人长叹一声：单片机太难学了！放弃吧。可是到这里还根本不知道一个单片机开发的完整过程是什么，什么是编程器还不知道。后面的就不说了，总之，现在教材，基本都是以单片机为蓝本来学习计算机原理，而不纯为学习单片机技术，在教材、教学过程的安排上又没有考虑人的接受能力，使得学习的过程是一个充满不断挫折的过程，于是很多人认为单片机入门难。<br>
<br>
　　基于以上情况，作者尝试编制一套全新的教学方法，以任务为教学单元，打破原有界限，不管硬件结构、指令、编程的先后顺序，将各部份知识分解成一个个知识点，为了完成一个任务抽取每个部份的不同知识点，加以组合，完成第一个任务就能清楚单片机的开发过程，完成第二、三个任务，就能自已模仿性地编出自已的程序，使得学习过程是一个不断成功地完成任务的过程。当所有任务全部完成，知识点就全学完了。即便只完成部份任务，也可以去做一些程序了&mdash;&mdash;事实并没有必要学完全部知识才可以去做开发的，作者在编第一个商用程序时，还不懂定时器怎么用，编第二个商用程序，写了长达2K行的代码，可当时我还不懂怎么样用中断编程，因为当时我根本还不需要用中断。<br>
</font><strong><br>
<font face="宋体">以上的教学方法具有如下特点：</font></strong><br>
<br>
<font face="宋体">1、以人的认知规律为主线，而不是以课程结构为主线。 <br>
<br>
2、以任务为单元构建认知单元，而不是以单片机功能为单元构建。 <br>
<br>
3、完成第一个任务即可进行单片机的初步应用尝试，不必学完单片机的全部知识体系。 随着任务的逐渐进行，知识逐渐完善，能力逐渐提高，所有任务完成时，已具有初步开发能力。 <br>
<br>
　　以上的教学目标是一个很<em>'</em>宏伟<em>'</em>的计划，我不知道我最终会不会完成他，因为完成他也许需要二年、三年甚至更长的时间，当然，对于这个计划能否完成，是否合理，我是充满信心的。要完成以上计划，关键在于要做好以下一些工作：知识点的合理分解，合理组合，任务的合理设计等等。我将尽力去做好他，当然，我也希望诸位大虾能不吝赐教，和我共同完成这个任务，这也算为单片机入门者铺平道路吧。</font></p>
<p><a target="_blank" href="http://down.cndzz.com/sdown/321/121420165163.rar">点击下载</a></p> <a href="http://hi.baidu.com/mcuchina/blog/item/ffd97a16c345ec54f2de32e3.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/mcuchina/blog/category/%B5%A5%C6%AC%BB%FA%D7%CA%D4%B4">单片机资源</a>&nbsp;<a href="http://hi.baidu.com/mcuchina/blog/item/ffd97a16c345ec54f2de32e3.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-05  09:27</pubDate>
        <category><![CDATA[单片机资源]]></category>
        <author><![CDATA[mcuchina]]></author>
		<guid>http://hi.baidu.com/mcuchina/blog/item/ffd97a16c345ec54f2de32e3.html</guid>
</item>

<item>
        <title><![CDATA[单片机毕业设计下载]]></title>
        <link><![CDATA[http://hi.baidu.com/mcuchina/blog/item/95cdacfb5956e861024f56e7.html]]></link>
        <description><![CDATA[
		
		关于单片机毕业设计下载的一些资源。点击即可下载。<br>
 <a href="http://down.sfmcu.com/lunwen/16×16点阵(滚动显示)论文+程序.rar"><font color="#000000">16×16点阵(滚动显示)论文+程序.rar</font></a>
<p><a href="http://down.sfmcu.com/lunwen/cdma通信系统中的接入信道部分进行仿真与分析.rar"><font color="#000000">dma通信系统中的接入信道部分进行仿真与分析.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/LED显示屏动态显示和远程监控的实现.rar"><font color="#000000">LED显示屏动态显示和远程监控的实现.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/MCS-51单片机温度控制系统.rar"><font color="#000000">MCS-51单片机温度控制系统.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/USB接口设计.rar"><font color="#000000">USB接口设计.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/毕业设计(论文)OFDM通信系统基带数据.rar"><font color="#000000">毕业设计(论文)OFDM通信系统基带数据.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/仓库温湿度的监测系统.rar"><font color="#000000">仓库温湿度的监测系统.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/单片机串行通信发射机.rar"><font color="#000000">单片机串行通信发射机.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/单片机课程设计__电子密码锁报告.rar"><font color="#000000">单片机课程设计__电子密码锁报告.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/单片机控制交通灯.rar"><font color="#000000">单片机控制交通灯.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/电动智能小车(完整论文).rar"><font color="#000000">电动智能小车（完整论文）.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/电气工程系06届毕业设计开题报告.rar"><font color="#000000">电气工程系06届毕业设计开题报告.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/电信运营商收入保障系统设计与实现.rar"><font color="#000000">电信运营商收入保障系统设计与实现.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/电子设计大赛点阵电子显示屏(A题)..rar"><font color="#000000">电子设计大赛点阵电子显示屏（A题）..rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/电子时钟.rar"><font color="#000000">电子时钟.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/火灾自动报警系统设计.rar"><font color="#000000">火灾自动报警系统设计.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/基于GSM短信模块的家庭防盗报警系统.rar"><font color="#000000">基于GSM短信模块的家庭防盗报警系统.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/基于GSM模块的车载防盗系统设计%20TC35i%20资料.rar"><font color="#000000">基于GSM模块的车载防盗系统设计 TC35i 资料.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/基于网络的虚拟仪器测试系统.rar"><font color="#000000">基于网络的虚拟仪器测试系统.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/门控自动照明电路.rar"><font color="#000000">门控自动照明电路.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/全遥控数字音量控制的D类功率放大器.rar"><font color="#000000">全遥控数字音量控制的D类功率放大器.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/数控直流稳压电源完整论文.rar"><font color="#000000">数控直流稳压电源完整论文.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/数字密码锁设计.rar"><font color="#000000">数字密码锁设计.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/数字抢答器(数字电路).rar"><font color="#000000">数字抢答器（数字电路）.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/数字时钟.rar"><font color="#000000">数字时钟.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/水箱单片机控制系统.rar"><font color="#000000">水箱单片机控制系统.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/同步电机模型的MATLAB仿真.rar"><font color="#000000">同步电机模型的MATLAB仿真.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/温度监控系统的设计.rar"><font color="#000000">温度监控系统的设计.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/用单片机控制直流电机.rar"><font color="#000000">用单片机控制直流电机.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/用单片机实现温度远程显示.rar"><font color="#000000">用单片机实现温度远程显示.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/智能家用电热水器控制器.rar"><font color="#000000">智能家用电热水器控制器.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/智能型充电器电源和显示的设计.rar"><font color="#000000">智能型充电器电源和显示的设计.rar</font></a></p>
<p><a href="http://down.sfmcu.com/lunwen/自动加料机控制系统.rar"><font color="#000000">自动加料机控制系统.rar</font></a></p>
<p>资源出处：<a href="http://www.sfmcu.com/ns_detail.asp?id=502751&amp;nowmenuid=500416&amp;previd=502755" target="_blank">点这里</a></p> <a href="http://hi.baidu.com/mcuchina/blog/item/95cdacfb5956e861024f56e7.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/mcuchina/blog/category/%B5%A5%C6%AC%BB%FA%D7%CA%D4%B4">单片机资源</a>&nbsp;<a href="http://hi.baidu.com/mcuchina/blog/item/95cdacfb5956e861024f56e7.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-05  09:18</pubDate>
        <category><![CDATA[单片机资源]]></category>
        <author><![CDATA[mcuchina]]></author>
		<guid>http://hi.baidu.com/mcuchina/blog/item/95cdacfb5956e861024f56e7.html</guid>
</item>

<item>
        <title><![CDATA[VHDL时钟程序下载]]></title>
        <link><![CDATA[http://hi.baidu.com/mcuchina/blog/item/14dd72cab972e483c81768e6.html]]></link>
        <description><![CDATA[
		
		<li>完全经过验证的VHDL时钟程序，系统频率为16MHz，2个按键作输入，一个用来切换工作模式，一个用来作加1调整；驱动4位7段数码管作显示</li>
<li>软件语言：简体中文</li>
<li class="grid">软件大小：6KB</li>
<li>运行环境：Windows</li>
<li class="grid">软件类型：国产软件</li>
<p class="grid"><a target="_blank" href="http://down.dzkf.cn/upimg/soft/1_060726205345.rar">点击下载</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  资源出处：<a target="_blank" href="http://www.dzkf.cn/html/yuanmaziliao/2006/0726/79.html">电子开发网</a></p> <a href="http://hi.baidu.com/mcuchina/blog/item/14dd72cab972e483c81768e6.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/mcuchina/blog/category/%B5%A5%C6%AC%BB%FA%D7%CA%D4%B4">单片机资源</a>&nbsp;<a href="http://hi.baidu.com/mcuchina/blog/item/14dd72cab972e483c81768e6.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-05  09:15</pubDate>
        <category><![CDATA[单片机资源]]></category>
        <author><![CDATA[mcuchina]]></author>
		<guid>http://hi.baidu.com/mcuchina/blog/item/14dd72cab972e483c81768e6.html</guid>
</item>

<item>
        <title><![CDATA[USB-BLASTER原理图下载]]></title>
        <link><![CDATA[http://hi.baidu.com/mcuchina/blog/item/88fa7c507b7b9667843524e5.html]]></link>
        <description><![CDATA[
		
		<li>USB-BLASTER原理图，用于Altera可编程芯片的下载</li>
<li>软件语言：简体中文</li>
<li class="grid">软件大小：18KB</li>
<li>运行环境：Windows</li>
<li class="grid">软件类型：国产软件</li>
<li class="grid">说明：解压缩USB的rar格式后为PDF格式的文档。<br>
<br>
<a target="_blank" href="http://down.dzkf.cn/upimg/soft/1_060726134901.rar">点击下载</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  资源出处：<a target="_blank" href="http://www.dzkf.cn/html/yuanmaziliao/2006/0726/71.html">电子开发网</a></li>
<p class="grid"> </p> <a href="http://hi.baidu.com/mcuchina/blog/item/88fa7c507b7b9667843524e5.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/mcuchina/blog/category/%B5%A5%C6%AC%BB%FA%D7%CA%D4%B4">单片机资源</a>&nbsp;<a href="http://hi.baidu.com/mcuchina/blog/item/88fa7c507b7b9667843524e5.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-05  09:12</pubDate>
        <category><![CDATA[单片机资源]]></category>
        <author><![CDATA[mcuchina]]></author>
		<guid>http://hi.baidu.com/mcuchina/blog/item/88fa7c507b7b9667843524e5.html</guid>
</item>

<item>
        <title><![CDATA[指针函数的范例]]></title>
        <link><![CDATA[http://hi.baidu.com/mcuchina/blog/item/0bebcaf5a873db20bd310931.html]]></link>
        <description><![CDATA[
		
		<span class="9pix"><font face="宋体" color="#333333" size="2">关于指针函数的范例:出自<a target="_blank" href="http://www.xiao-qi.com">晓奇单片机工作室</a></font></span><br>
#define ubyte unsigned char<br>
#define uint unsigned int<br>
#define ulong unsigned long<br>
<br>
ubyte kbCode;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键编码纪录<br>
ubyte kbStatus;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 键盘当前状态，可以理解为菜单层次<br>
<br>
// 按键的四种不同工作状态对应的函数指针对照表，每三字节对应一个按键<br>
// 每一项包含三个字节，分别代表按键码，键盘状态，对应处理程序编号<br>
// 本表对应于日常操作，不是修改状态<br>
ubyte code TAB0[46]={<br>
&nbsp;&nbsp;&nbsp;  0x11,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'1'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x12,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'2'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x14,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'3'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x1a,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'4'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x2a,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'5'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x4a,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'6'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x01,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'7'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x02,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'8'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x04,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'9'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x10,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'0'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x20,0x00,0x01,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1<br>
&nbsp;&nbsp;&nbsp;  0x08,0x00,0x02,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'Clear'  func2<br>
&nbsp;&nbsp;&nbsp;  0x18,0x00,0x03,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'U/D'&nbsp;&nbsp;&nbsp;  func3<br>
&nbsp;&nbsp;&nbsp;  0x8a,0x01,0x04,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'shift'  func4<br>
&nbsp;&nbsp;&nbsp;  0x40,0x02,0x05,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'last'&nbsp;&nbsp;  func5<br>
&nbsp;&nbsp;&nbsp;  0x00};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 本表结束标志<br>
<br>
ubyte code TAB1[40]={<br>
&nbsp;&nbsp;&nbsp;  0x12,0x03,0x06,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'2'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func6<br>
&nbsp;&nbsp;&nbsp;  0x14,0x03,0x07,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'3'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func7<br>
&nbsp;&nbsp;&nbsp;  0x2a,0x03,0x08,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'5'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func8<br>
&nbsp;&nbsp;&nbsp;  0x4a,0x03,0x09,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'6'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func9<br>
&nbsp;&nbsp;&nbsp;  0x01,0x03,0x12,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'7'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func18<br>
&nbsp;&nbsp;&nbsp;  0x8a,0x03,0x14,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'shift'  func20<br>
&nbsp;&nbsp;&nbsp;  0x11,0x01,0x0a,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'1'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func10<br>
&nbsp;&nbsp;&nbsp;  0x1a,0x01,0x0b,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'4'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func11<br>
&nbsp;&nbsp;&nbsp;  0x04,0x01,0x0c,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'9'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func12<br>
&nbsp;&nbsp;&nbsp;  0x10,0x01,0x0d,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'0'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func13<br>
&nbsp;&nbsp;&nbsp;  0x80,0x01,0x0e,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'Enter'  func14<br>
&nbsp;&nbsp;&nbsp;  0x08,0x00,0x02,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'Clear'  func2<br>
&nbsp;&nbsp;&nbsp;  0x20,0x03,0x13,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func19<br>
&nbsp;&nbsp;&nbsp;  0x00};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 本表结束标志<br>
<br>
ubyte code TAB2[7]={<br>
&nbsp;&nbsp;&nbsp;  0x40,0x02,0x0f,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'last'&nbsp;&nbsp;  func15<br>
&nbsp;&nbsp;&nbsp;  0x08,0x00,0x02,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'Clear'  func2<br>
&nbsp;&nbsp;&nbsp;  0x00};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 本表结束标志<br>
<br>
ubyte code TAB3[40]={<br>
&nbsp;&nbsp;&nbsp;  0x11,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'1'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x12,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'2'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x14,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'3'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x1a,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'4'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x2a,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'5'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x4a,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'6'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x01,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'7'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x02,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'8'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x04,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'9'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x10,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'0'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x20,0x03,0x10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16<br>
&nbsp;&nbsp;&nbsp;  0x08,0x00,0x02,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'clear'  func2<br>
&nbsp;&nbsp;&nbsp;  0x80,0x01,0x11,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 按键'Enter'  func17<br>
&nbsp;&nbsp;&nbsp;  0x00};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 本表结束标志<br>
<br>
ubyte code *TAB[4]={TAB0,TAB1,TAB2,TAB3};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 总指针表<br>
<br>
// 指针函数列表<br>
code void(code *KeyProcTab[])()={<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  NoKey,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*0#  (00H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*1#  (01H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*2#  (02H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func3,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*3#  (03H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*4#  (04H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func5,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*5#  (05H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func6,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*6#  (06H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func7,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*7#  (07H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func8,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*8#  (08H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func9,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*9#  (09H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*10# (0AH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func11,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*11# (0BH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func12,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*12# (0CH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func13,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*13# (0DH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func14,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*14# (0EH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func15,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*15# (0FH)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func16,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*16# (10H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func17,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*17# (11H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func18,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*18# (12H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func19,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*19# (13H)#*/<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  func20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  /*20# (14H)#*/<br>
};<br>
<br>
void NoKey()<br>
{<br>
&nbsp;&nbsp;&nbsp;  return;<br>
}<br>
<br>
void func0()<br>
{<br>
&nbsp;&nbsp;&nbsp;  ;<br>
}<br>
void func1()<br>
{<br>
&nbsp;&nbsp;&nbsp;  ;<br>
}<br>
....................<br>
void func20()<br>
{<br>
&nbsp;&nbsp;&nbsp;  ;<br>
}<br>
<br>
<br>
//////////////////////////////////////////////////////////////////////<br>
// 键盘监控，根据当前状态特征指向不同的指针表，并调用相应的函数&nbsp;&nbsp;&nbsp;&nbsp;  //<br>
//////////////////////////////////////////////////////////////////////<br>
void mon(ubyte key)<br>
{<br>
&nbsp;&nbsp;  ubyte code *data pTab;<br>
&nbsp;&nbsp;  kbCode=key;<br>
&nbsp;&nbsp;  pTab=*(TAB+kbStatus);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 根据当前状态特征指向分指针表<br>
&nbsp;&nbsp;  while(*pTab != key &amp;&amp; *pTab != 0)&nbsp;&nbsp;&nbsp;  // 按照按键代码查表<br>
&nbsp;&nbsp;  {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  pTab += 3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 查表<br>
&nbsp;&nbsp;  }<br>
&nbsp;&nbsp;  if(*pTab!=0){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  pTab++;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  kbStatus=*pTab;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 取状态特征字节<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  pTab++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 指向执行函数<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  (*KeyProcTab[*pTab])();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // 指针函数调用<br>
&nbsp;&nbsp;  }<br>
}<font face="宋体" color="#333333" size="2">指针函数的范例</font> <a href="http://hi.baidu.com/mcuchina/blog/item/0bebcaf5a873db20bd310931.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/mcuchina/blog/category/%B5%A5%C6%AC%BB%FA%B1%E0%B3%CC">单片机编程</a>&nbsp;<a href="http://hi.baidu.com/mcuchina/blog/item/0bebcaf5a873db20bd310931.html#comment">查看评论</a>]]></description>
        <pubDate>2008-05-04  18:13</pubDate>
        <category><![CDATA[单片机编程]]></category>
        <author><![CDATA[mcuchina]]></author>
		<guid>http://hi.baidu.com/mcuchina/blog/item/0bebcaf5a873db20bd310931.html</guid>
</item>


</channel>
</rss>