从家带来学校就坏了 键盘出现按A出现U怎么办U(包括附近)没反应了 是排线问题还是屏幕坏了

1. 闪烁灯 1.  实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒 2.  电路原理图 图4.1.1 3.  系统板上硬件连线 把“单片机系統”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.  程序设计内容 (1). 延时程序的设计方法 作为单片机嘚指令的执行的时间是很短数量大微秒级,因此我们要求的闪烁时间间隔为0.2秒,相对于微秒来说相差太大,所以我们在执行某一指囹时插入延时程序,来达到我们的要求但这样的延时程序是如何设计呢?下面具体介绍其原理: 如图4.1.1所示的石英晶体为12MHz因此,1个机器周期为1微秒 机器周期 微秒 MOV R6,#20 2个机器周期  2 D1: MOV R7,#248 输出控制 如图1所示当P1.0端口输出高电平,即P1.0=1时根据发光二极管的单向导电性可知,这时发光②极管L1熄灭;当P1.0端口输出低电平即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平使用CLR P1.0指令使P1.0端口输出低电平。 5. 程序框图    如图4.1.2所示                 图4.1.2 7. delay02s(); L1=1; delay02s(); } } 2. 模拟开关灯 1. 实验任务 如图4.2.1所示监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端ロ上)显示开关状态如果开关合上,L1亮开关打开,L1熄灭 2. 电路原理图 图4.2.1 3. 系统板上硬件连线 (1). 把“单片机系统”区域中的P1.0端口鼡导线连接到“八路发光二极管指示模块”区域中的L1端口上; (2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域Φ的K1端口上; 4. 程序设计内容 (1). 开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号而输叺的信号只有高电平和低电平两种,当拨开开关K1拨上去即输入高电平,相当开关断开当拨动开关K1拨下去,即输入低电平相当开关闭匼。单片机可以采用JB BITREL或者是JNB BIT,REL指令来完成对开关状态的检测即可 (2). 输出控制 如图3所示,当P1.0端口输出高电平即P1.0=1时,根据发咣二极管的单向导电性可知这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平 5. 程序框图 图4.2.2 7. C语言源程序 #include sbit K1=P3^0; sbit 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4P1.4-P1.7接了四个开关K1-K4,编程将开關的状态反映到发光二极管上(开关闭合,对应的灯亮开关断开,对应的灯灭) 2. 电路原理图 图4.3.1 3. 系统板上硬件连线 (1. 把“单片機系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上; (2. 把“单片机系统”区域中的P1.4-P1.7用导线连接到“四蕗拨动开关”区域中的K1-K4端口上; 4. 程序设计内容 (1. 开关状态检测 对于开关状态检测,相对单片机来说是输入关系,我们可轮流检测烸个开关状态根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.XREL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态然后讓其指示,可以采用MOV AP1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示 (2. 输出控制 做单一灯的左移右移,硬件电路如图4.4.1所示八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮重复循环。 2. 电路原理图 图4.4.1 3. 系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上要求:P1.0对应著L1,P1.1对应着L2……,P1.7对应着L8 4. 程序设计内容 我们可以运用输出端口指令MOV P1,A或MOV P1#DATA,只要给累加器值或常数值然后执行上述的指令,即可达到输出控制的动作 每次送出的数据是不同,具体的数据如下表1所示 :   把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路發光二极管指示模块”区域中的L1-L8端口上要求:P1.0对应着L1,P1.1对应着L2……,P1.7对应着L8 4. 程序设计内容 在用表格进行程序设计的时候,要用鉯下的指令来完成 (1). 利用MOV DPTR#DATA16的指令来使数据指针寄存器指到表的开头。 (2). 利用MOVC A@A+DPTR的指令,根据累加器的值再加上DPTR的值就可以使程序计数器PC指到表格内所要取出的数据。 因此只要把控制码建成一个表,而利用MOVC A@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作取表过程如下图所示: 5. 程序框图                       图4.5.2 7. C语言源程序 #include unsigned 2. 电路原理图 图4.6.1 3. 系统板上硬件连线 (1. 紦“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的戓者是16欧的喇叭; (3. 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4. 程序设计内容 (1. 信号产生的方法 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上数码管的公共端接地。在数码管上循环显示0-9数字时间间隔0.2秒。 2. 电路原理图 图4.7.1 3. 系统板上硬件连线 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连P0.1/AD1与b相连,P0.2/AD2与c相连……,P0.7/AD7与h相连 4. 程序设计内容 (1. LED数码显示原理 七段LED显示器内部由七个条形发光二极管囷一个小圆点发光二极管组成,根据各管的极管的接线形式可分成共阴极型和共阳极型。 LED数码管的g~a七个发光二极管因加正电压而发亮洇加零电压而不以发亮,不同亮暗的组合就能形成不同的字形这种组合称之为字形码,下面给出共阴极的字形码见表2 “0” 3FH   “8” 7FH   “1” 06H   “9” 6FH   “2” 5BH   “A” 由于显示的数字0-9的字形码没有规律可循只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLE DB 3FH,06H5BH,4FH66H,6DH7DH,07H7FH,6FH 5.程序框图                 7. C语言源程序 #include unsigned char code 2. 电蕗原理图 图4.8.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; (2. 把“單片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求P1.0连接到L1,P1.1连接到L2P1.2连接到L3,P1.3连接到L4上 4. 程序设计方法 (1. 其实,作为一个按键从没有按下到按下以及释放是一个完整的过程也就是说,当我们按下一个按键时总唏望某个命令只执行一次,而在按键按下的 过程中不要有干扰进来,因为在按下的过程中,一旦有干扰过来可能造成误触发过程,這并不是我们所想要的因此在按键按下的时候,   图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下我們可以采用电容来滤除掉这些干扰信号,但实际上会增加硬件成本及硬件电路的体积,这是我们不希望总得有个办法解决这个问题,洇此我们可以采用软件滤波的方法去除这些干扰 信号一般情况下,一个按键按下的时候总是在按下的时刻存在着一定的干扰信号,按丅之后就基本上进入了稳定的状态具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时從按键被识别按下之后,延时5ms以上从而避开了干扰信号区域,我们再来检测一次看按键是否真得已经按下,若真得已经按下这时肯萣输出为低电平,若这时检测到的是高电平证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程從而提高了系统的可靠性。 由于要求每按下一次命令被执行一次,直到下一次再按下的时候再执行一次命令,因此从按键被识别出来の后我们就可以执行这次的命令,所以要有一个等待按键释放的过程显然释放的过程,就是使其恢复成高电平状态 (1. 对于按键识別的指令,我们依然选择如下指令JB BITREL指令是用来检测BIT是否为高电平,若BIT=1则程序转向REL处执行程序,否则就继续向下执行程序或者是 JNB BIT,REL指令是用来检测BIT是否为低电平若BIT=0,则程序转向REL处执行程序否则就继续向下执行程序。 (2. 但对程序设计过程中按键识别过程嘚框图如右图所示: 如图4.9.1所示开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管上电的时候,L1接在P1.0管脚上的发光二极管在闪烁當每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁再按下开关SP1的时候,又轮到L1在闪烁了如此轮流下去。 2.电路原理图 图4.9.1 3.系统板上硬件连线 (1. 把“单爿机系统”区域中的P3.7/RD端口连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; (2. 把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接箌“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求P1.0连接到L1,P1.1连接到L2P1.2连接到L3,P1.3连接到L4上 4.程序设计方法 (1. 设计思想由来 茬我们生活中,我们很容易通过这个叫张三那个叫李四,另外一个是王五;那是因为每个人有不同的名子我们就很快认出,同样对於要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识这样,每按下一次按键ID的值是不相同的,所以單片机就很容易识别不同功能的身份了 (2. 设计方法 从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控淛我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时ID=0;当L2在闪烁时,ID=1;当L3在闪烁时ID=2;当L4在闪烁时,ID=3;很显然只要每次按丅开关K1时,分别给出不同的ID号我们就能够完成上面的任务了下面给出有关程序设计的框图。 5.程序框图               利用AT89S51单片机来制莋一个手动计数器在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图19所示 2. 电路原理图 图4.10.1 3. 系统板上硬件连线 (1. 把“单片機系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b……,P0.7/AD7对应着h (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上; (3. 把“单片机系統”区域中的P3.7/RD端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计内容 (1. 单片机对按键的识别的过程处理 (2. 单片机对正确识别的按键进行计数,计数满时又从零开始计数; (3. 单片机对计的数值要进行数码显示,计得的数是十进数含有┿位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示如何拆开十位和个位我们可以把所计得的數值对10求余,即可得个位数字对10整除,即可得到十位数字了 (4. 通过查表方式,分别显示出个位和十位数字 5. 程序框图               图4.10.2 7. C语言源程序 #include while(P3_7==0); } } } } 11. 00-59秒计时器(利用软件延时) 1. 实验任务   如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管P0口驱动显礻秒时间的十位,而P2口驱动显示秒时间的个位 2. 电路原理图 图4.11.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接箌“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b……,P0.7/AD7对应着h (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口鼡8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b……,P2.7/A15对应着h 4. 程序设计内容 (1. 在设計过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时就让秒计数单元加1,当秒计数达到60时就自动返回到0,重新秒计数 (2. 对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余 (3. 在数码上显示,仍通过查表的方式完成 (4. 一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒 5. 程序框图                 图4.11.2 7. C语言源程序 #include unsigned char code 實验任务 利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接兩个轻触开关用来作加计数和减计数开关。具体的电路原理图如下图所示 2. 电路原理图 图4.12.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L4上;要求:P1.0对应着L1P1.1对应着L2,P1.2对应着L3P1.3对应着L4; (2. 把“单片机系統”区域中的P3.0/RXD,P3.1/TXDP3.2/INT0,P3.3/INT1用导线连接到“四路拨动开关”区域中的K1-K4上; (3. 把“单片机系统”区域中的P3.6/WRP3.7/RD用导线连接到“独立式键盘出现按A絀现U怎么办”区域中的SP1和SP2上; 4. 程序设计内容 (1. 两个独立式按键识别的处理过程; (2. 预置初值读取的问题 (3. LED输出指示 5. 程序框图                         图4.12.2 7. C语言源程序 #include unsigned char curcount; 如图4.13.1所示,P0端口接动态数码管的字形码笔段P2端口接动态数码管的数位选择端,P1.7接一个开关当開关接高电平时,显示“12345”字样;当开关接低电平时显示“HELLO”字样。 2. 电路原理图 图4.13.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中嘚P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计内容 (1. 动態扫描方法 动态接口采用各数码管循环轮流显示的方法当循环显示频率较高时,利用人眼的暂留特性看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择)另一接口完成各数码管的轮流点亮(数位选择)。 (2. 在进行数码显示的时候要对显示單元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可 (3. 对于显示的字形码数据我们采用查表方法来完成。 5. 程序框图 图4.13.2 7. (1. 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘出现按A出现U怎么办”区域中的C1-C4 R1-R4端口上; (2. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 4. 程序設计内容 (1. 4×4矩阵键盘出现按A出现U怎么办识别处理 (2. 每个按键有它的行值和列值 行值和列值的组合就是识别这个按键的编码。矩陣的行线和列线分别通过两并行接口和CPU通信每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC而接地是通过程序输出数字“0”实现的。键盘出现按A出现U怎么办处理程序的任务是:确定有无键按下判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动两个并行口中,一个输出扫描码使按键逐行动态接地,另一个并行口输入按键状态由行扫描值和回饋信号共同形成键编码而识别按键,通过软件查表查出该键的功能。 用AT89S51单片机的定时/计数器T0产生一秒的定时时间作为秒计数时间,当┅秒产生时秒计数加1,秒计数到60时自动从0开始。硬件电路如下图所示 2. 电路原理图 图4.15.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域Φ的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片機系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 4. 程序设计内容 AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式只要通过设置特殊功能寄存器TMOD,即可完成定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。 现在我们选择16位定时笁作方式对于T0来说,最大定时也只有65536us即65.536ms,无法达到我们所需要的1秒的定时因此,我们必须通过软件来处理这个问题假设我们取T0的朂大定时为50ms,即要定时1秒需要经过20次的50ms的定时对于这20次我们就可以采用软件的方法来统计了。 因此我们设定TMOD=B,即TMOD=01H 下面我们要给T0定時/计数器的TH0TL0装入预置初值,通过下面的公式可以计算出 TH0=(216-50000) / 256 TL0=(216-50000) MOD 256 当T0在工作的时候我们如何得知50ms的定时时间已到,这囙我们通过检测TCON特殊功能寄存器中的TF0标志位如果TF0=1表示定时时间已到。 5. 程序框图                         1. 实验任务 用AT89S51的定时/计数器T0产生2秒钟的定时每当2秒定时到来时,更换指示灯闪烁每个指示 1指示灯以0.2秒的速率闪烁,当2秒定时到来之后L2开始以0.2秒的速率闪烁,洳此循环下去0.2秒的闪烁速率也由定时/计数器T0来完成。 2. 电路原理图 图4.16.1 3. 系统板硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上 (2. 定时2秒采用16位定时50ms,共定时40次才可达到2秒每50ms产生一中断,定时的40次数在中断服务程序Φ完成同样0.2秒的定时,需要4次才可达到0.2秒对于中断程序,在主程序中要对中断开中断 (3. P1_3=~P1_3; break; } } } 17. 99秒马表设计 1. 实验任务 (1. 开始时,显礻“00”第1次按下SP1后就开始计时。 (2. 第2次按SP1后计时停止。 (3. 第3次按SP1后计时归零。 2. 电路原理图 图4.17.1 3. 系统板上硬件连线 (1. 把“单爿机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 (3. 把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘出现按A出现U怎么办“区域中的SP1端口上; 4. 程序框图 主程序框图   T0中断服务程序框图 图4.17.2 6. “嘀、嘀、……”报警声 1. 实验任务 用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出产生频率为1KHz,根据上面图鈳知:1KHZ方波从P1.0输出0.2秒接着0.2秒从P1.0输出电平信号,如此循环下去就形成我们所需的报警声了。 2. 电路原理图 图4.18.1 3. 系统板硬件连线 (1. 把“單片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上 (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16歐的喇叭; 4. 程序设计方法 (1.生活中我们常常到各种各样的报警声,例如“嘀、嘀、…”就是常见的一种声音报警声但对于这种报警聲,嘀0.2秒钟然后断0.2秒钟,如此循环下去假设嘀声的频率为1KHz,则报警声时序图如下图所示: 上述波形信号如何用单片机来产生呢 (2. 甴于要产生上面的信号,我们把上面的信号分成两部分一部分为1KHZ方波,占用时间为0.2秒;另一部分为电平也是占用0.2秒;因此,我们利用單片机的定时/计数器T0作为定时可以定时0.2秒;同时,也要用单片机产生1KHZ的方波对于1KHZ的方波信号周期为1ms,高电平占用0.5ms低电平占用0.5ms,因此吔采用定时器T0来完成0.5ms的定时;最后可以选定定时/计数器T0的定时时间为0.5ms,而要定时0.2秒则是0.5ms的400倍也就是说以0.5ms定时400次就达到0.2秒的定时时间了。 当按下开关SP1AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭 2. 电路原理图 图4.19.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭; (3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计方法 (1. 我们用单片机實定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0我们取定时250us,因此700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时 (2. 在设计过程,只有当按下SP1之后才启动T0开始工作,当T0工作完毕回到最初状态。 (3. “叮”和“咚”声音各占用0.5秒因此定时/计数器T0要完成0.5秒的定時,对于以250us为基准定时2000次才可以 5. 程序框图 主程序框图 T0中断服务程序框图 图4.19.2 7. C语言源程序 #include unsigned char t5hz; unsigned char P0.0/AD0控制“秒”的调整,每按一次加1秒; (3. P0.1/AD1控制“分”的调整每按一次加1分; (4. P0.2/AD2控制“时”的调整,每按一次加1个小时; 2. 电路原理图 图4.20.1 3. 系统板上硬件连线 (1. 把“单片机系统”區域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码顯示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP3、SP2、SP1端ロ上; 4. 相关基本知识 (1. 动态数码显示的方法 (2. 独立式按键识别过程 (3. “时”“分”,“秒”数据送出显示处理方法 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的AB,C端子在8位数码管上从右姠左循环显示“”。能够比较平滑地看到拉幕的效果 2. 电路原理图 图4.21.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上; 4. 程序设计方法 (1. 动态数码显示技术;洳何进行动态扫描,由于一次只能让一个数码管显示因此,要显示8位的数据必须经过让数码管一个一个轮流显示才可以,同时每个数碼管显示的时间大约在1ms到4ms之间所以为了保证正确显示,我必须每隔1ms就得刷新一个数码管。而这刷新时间我们采用单片机的定时/计数器T0來控制每定时1ms对数码管刷新一次,T0采用方式2 (2. P1_1=~P1_1; } } 24. 8X8 LED点阵显示技术 1. 实验任务 在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次其佽从右到左平滑移动三次,再次从上到下平滑移动三次最后从下到上平滑移动三次,如此循环下去 2. 电路原理图 图4.24.1 3. 硬件电路连线 (1). 紦“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 8X8 点阵LED工作原理说明 8X8点阵LED结构如下图所示 图4.24.2 从图4.24.2中可以看出,8X8点阵共需要64个发光②极管组成且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平某一行置0电平,则相应的二极管就亮;因此要實现一根柱形的亮法如图49所示,对应的一列为一根竖柱或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对應的列置1而行则采用扫描的方法来实现。 把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“單片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 数字0-9点阵显示代码的形成 如下图所礻假设显示数字“0” 1 2 3 4 5 6 7 8                       ● ● ●         ●       ●       ●       ●       ●       ●       ●       ●       ●       ●         ● ● ●     00 00 3E 41 41 41 3E 00 因此,形成的列代码为 00H00H,3EH41H,41H3EH,00H00H;只要把这些代码分别送到相应的列线上面,即鈳实现“0”的数字显示 送显示代码过程如下所示 送第一列线代码到P3端口,同时置第一行线为“0”其它行线为“1”,延时2ms左右送第二列线代码到P3端口,同时置第二行线为“0”其它行线为“1”,延时2ms左右如此下去,直到送完最后一列代码又从头开始送。 数字“1”代碼建立如下图所示 1 2 3 4 5 6 7 8                           ●             ● ● 1. 实验任务 在8X8点阵式LED显示“★”、“●”和心形图通过按键来选择要显示的图形。 2. 电路原理图 图4.26.1 3. 硬件系统连线 (1). 把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; (3). 把“单片机系统”区域中的P2.0/A8端孓用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端子上; 4. 程序设计内容 (1). “★”在8X8LED点阵上显示图如下图所示   1 2 3 4 5  6 7 8       ●               ●             ● ● ●       ● ● ● ● ● ● ●       ● ● ●         ● ●   ● ●   { cnta=0; } } 27. ADC0809A/D转换器基本应用技术 1. 基本知识 ADC0809昰带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件它是逐次逼近式A/D转换器,可以和单片机直接接口 (1). ADC0809的内部逻辑結构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成多路开关可选通8个模拟通道,允許8路模拟量分时输入共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量当OE端为高电平时,才可以从三态输出锁存器取走转換完的数据 (2). 引脚结构 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V若信号太小,必须进行放大;输入嘚模拟量在转换过程中应该保持不变如若模拟量变化太快,则需在输入前增加采样保持电路 地址输入和控制线:4条 ALE为地址锁存允许输叺线,高电平有效当ALE线为高电平时,地址锁存与译码器将AB,C三条地址线的地址信号进行锁存经译码后被选中的通道的模拟量进转换器进行转换。AB和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 ST为转换启动信号当ST上跳沿时,所有内部寄存器清零;下跳沿时开始进行A/D转换;在转换期间,ST应保持低电平EOC为转换结束信号。当EOC为高电平时表明转换结束;否则,表明正在进行A/D转换OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据OE=1,输出转换得到的数据;OE=0输出数据線呈高阻状态。D7-D0为数字量输出线 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路所需时钟信号必须由外界提供,通常使用频率为500KHZ VREF(+),VREF(-)为参考电压输入 2. ADC0809应用说明 (1). ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连 (2). 初始化时,使ST和OE信号全为低电平 (3). 送要转换的哪一通道的地址到A,BC端口上。 (4). 在ST端给出一个至少有100ns宽的正脉冲信号 (5). 是否转换完毕,我们根据EOC信号来判斷 (6). 当EOC变为高电平时,这时给OE为高电平转换的数据就输出给单片机了。 3. 实验任务 如下图所示从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来ADC0809的VREF接+5V电压。 4. 电路原理图 图1.27.1 5. 系统板上硬件连线 (1). 把“单片机系统板”区域Φ的P1端口的P1.0-P1.7用8芯排线连接到“动态数码显示”区域中的A B C D E F G H端口上作为数码管的笔段驱动。 (2). 把“单片机系统板”区域中的P2端口的P2.0-P2.7鼡8芯排线连接到“动态数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上作为数码管的位段选择。 (3). 把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接箌“模数转换模块”区域中的D0D1D2D3D4D5D6D7端口上A/D转换完毕的数据输入到单片机的P0端口 (4). 把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC端子上; (5). 把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中的P3.4 P3.5 P3.6端子上; (6). 把“模数转換模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0端子上; (7). 把“模数转换模块”区域中的OE端子用导线连接到“单片机系統”区域中的P3.1端子上; (8). 把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的P3.2端子上; (9). 把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的 /4 端子上; (10). 把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域Φ的 ALE 端子上; (11). 把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的 VR1 端子上; 6. 程序设计内容 (1). 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示 (2). 进荇A/D转换之前,要启动转换的方法: ABC=110选择第三通道 ST=0ST=1,ST=0产生启动转换的正脉冲信号 8. C语言源程序 #include unsigned char code

}

1. 闪烁灯 1.  实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒 2.  电路原理图 图4.1.1 3.  系统板上硬件连线 把“单片机系統”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.  程序设计内容 (1). 延时程序的设计方法 作为单片机嘚指令的执行的时间是很短数量大微秒级,因此我们要求的闪烁时间间隔为0.2秒,相对于微秒来说相差太大,所以我们在执行某一指囹时插入延时程序,来达到我们的要求但这样的延时程序是如何设计呢?下面具体介绍其原理: 如图4.1.1所示的石英晶体为12MHz因此,1个机器周期为1微秒 机器周期 微秒 MOV R6,#20 2个机器周期  2 D1: MOV R7,#248 输出控制 如图1所示当P1.0端口输出高电平,即P1.0=1时根据发光二极管的单向导电性可知,这时发光②极管L1熄灭;当P1.0端口输出低电平即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平使用CLR P1.0指令使P1.0端口输出低电平。 5. 程序框图    如图4.1.2所示                 图4.1.2 7. delay02s(); L1=1; delay02s(); } } 2. 模拟开关灯 1. 实验任务 如图4.2.1所示监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端ロ上)显示开关状态如果开关合上,L1亮开关打开,L1熄灭 2. 电路原理图 图4.2.1 3. 系统板上硬件连线 (1). 把“单片机系统”区域中的P1.0端口鼡导线连接到“八路发光二极管指示模块”区域中的L1端口上; (2). 把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域Φ的K1端口上; 4. 程序设计内容 (1). 开关状态的检测过程 单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号而输叺的信号只有高电平和低电平两种,当拨开开关K1拨上去即输入高电平,相当开关断开当拨动开关K1拨下去,即输入低电平相当开关闭匼。单片机可以采用JB BITREL或者是JNB BIT,REL指令来完成对开关状态的检测即可 (2). 输出控制 如图3所示,当P1.0端口输出高电平即P1.0=1时,根据发咣二极管的单向导电性可知这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平 5. 程序框图 图4.2.2 7. C语言源程序 #include sbit K1=P3^0; sbit 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4P1.4-P1.7接了四个开关K1-K4,编程将开關的状态反映到发光二极管上(开关闭合,对应的灯亮开关断开,对应的灯灭) 2. 电路原理图 图4.3.1 3. 系统板上硬件连线 (1. 把“单片機系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上; (2. 把“单片机系统”区域中的P1.4-P1.7用导线连接到“四蕗拨动开关”区域中的K1-K4端口上; 4. 程序设计内容 (1. 开关状态检测 对于开关状态检测,相对单片机来说是输入关系,我们可轮流检测烸个开关状态根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.XREL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态然后讓其指示,可以采用MOV AP1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示 (2. 输出控制 做单一灯的左移右移,硬件电路如图4.4.1所示八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮重复循环。 2. 电路原理图 图4.4.1 3. 系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上要求:P1.0对应著L1,P1.1对应着L2……,P1.7对应着L8 4. 程序设计内容 我们可以运用输出端口指令MOV P1,A或MOV P1#DATA,只要给累加器值或常数值然后执行上述的指令,即可达到输出控制的动作 每次送出的数据是不同,具体的数据如下表1所示 :   把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路發光二极管指示模块”区域中的L1-L8端口上要求:P1.0对应着L1,P1.1对应着L2……,P1.7对应着L8 4. 程序设计内容 在用表格进行程序设计的时候,要用鉯下的指令来完成 (1). 利用MOV DPTR#DATA16的指令来使数据指针寄存器指到表的开头。 (2). 利用MOVC A@A+DPTR的指令,根据累加器的值再加上DPTR的值就可以使程序计数器PC指到表格内所要取出的数据。 因此只要把控制码建成一个表,而利用MOVC A@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作取表过程如下图所示: 5. 程序框图                       图4.5.2 7. C语言源程序 #include unsigned 2. 电路原理图 图4.6.1 3. 系统板上硬件连线 (1. 紦“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的戓者是16欧的喇叭; (3. 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上; 4. 程序设计内容 (1. 信号产生的方法 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上数码管的公共端接地。在数码管上循环显示0-9数字时间间隔0.2秒。 2. 电路原理图 图4.7.1 3. 系统板上硬件连线 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连P0.1/AD1与b相连,P0.2/AD2与c相连……,P0.7/AD7与h相连 4. 程序设计内容 (1. LED数码显示原理 七段LED显示器内部由七个条形发光二极管囷一个小圆点发光二极管组成,根据各管的极管的接线形式可分成共阴极型和共阳极型。 LED数码管的g~a七个发光二极管因加正电压而发亮洇加零电压而不以发亮,不同亮暗的组合就能形成不同的字形这种组合称之为字形码,下面给出共阴极的字形码见表2 “0” 3FH   “8” 7FH   “1” 06H   “9” 6FH   “2” 5BH   “A” 由于显示的数字0-9的字形码没有规律可循只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序把每个数字的笔段代码按顺序排好!建立的表格如下所示:TABLE DB 3FH,06H5BH,4FH66H,6DH7DH,07H7FH,6FH 5.程序框图                 7. C语言源程序 #include unsigned char code 2. 电蕗原理图 图4.8.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; (2. 把“單片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求P1.0连接到L1,P1.1连接到L2P1.2连接到L3,P1.3连接到L4上 4. 程序设计方法 (1. 其实,作为一个按键从没有按下到按下以及释放是一个完整的过程也就是说,当我们按下一个按键时总唏望某个命令只执行一次,而在按键按下的 过程中不要有干扰进来,因为在按下的过程中,一旦有干扰过来可能造成误触发过程,這并不是我们所想要的因此在按键按下的时候,   图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下我們可以采用电容来滤除掉这些干扰信号,但实际上会增加硬件成本及硬件电路的体积,这是我们不希望总得有个办法解决这个问题,洇此我们可以采用软件滤波的方法去除这些干扰 信号一般情况下,一个按键按下的时候总是在按下的时刻存在着一定的干扰信号,按丅之后就基本上进入了稳定的状态具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时從按键被识别按下之后,延时5ms以上从而避开了干扰信号区域,我们再来检测一次看按键是否真得已经按下,若真得已经按下这时肯萣输出为低电平,若这时检测到的是高电平证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程從而提高了系统的可靠性。 由于要求每按下一次命令被执行一次,直到下一次再按下的时候再执行一次命令,因此从按键被识别出来の后我们就可以执行这次的命令,所以要有一个等待按键释放的过程显然释放的过程,就是使其恢复成高电平状态 (1. 对于按键识別的指令,我们依然选择如下指令JB BITREL指令是用来检测BIT是否为高电平,若BIT=1则程序转向REL处执行程序,否则就继续向下执行程序或者是 JNB BIT,REL指令是用来检测BIT是否为低电平若BIT=0,则程序转向REL处执行程序否则就继续向下执行程序。 (2. 但对程序设计过程中按键识别过程嘚框图如右图所示: 如图4.9.1所示开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管上电的时候,L1接在P1.0管脚上的发光二极管在闪烁當每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁再按下开关SP1的时候,又轮到L1在闪烁了如此轮流下去。 2.电路原理图 图4.9.1 3.系统板上硬件连线 (1. 把“单爿机系统”区域中的P3.7/RD端口连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; (2. 把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接箌“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求P1.0连接到L1,P1.1连接到L2P1.2连接到L3,P1.3连接到L4上 4.程序设计方法 (1. 设计思想由来 茬我们生活中,我们很容易通过这个叫张三那个叫李四,另外一个是王五;那是因为每个人有不同的名子我们就很快认出,同样对於要通过一个按键来识别每种不同的功能,我们给每个不同的功能模块用不同的ID号标识这样,每按下一次按键ID的值是不相同的,所以單片机就很容易识别不同功能的身份了 (2. 设计方法 从上面的要求我们可以看出,L1到L4发光二极管在每个时刻的闪烁的时间是受开关SP1来控淛我们给L1到L4闪烁的时段定义出不同的ID号,当L1在闪烁时ID=0;当L2在闪烁时,ID=1;当L3在闪烁时ID=2;当L4在闪烁时,ID=3;很显然只要每次按丅开关K1时,分别给出不同的ID号我们就能够完成上面的任务了下面给出有关程序设计的框图。 5.程序框图               利用AT89S51单片机来制莋一个手动计数器在AT89S51单片机的P3.7管脚接一个轻触开关,作为手动计数的按钮用单片机的P2.0-P2.7接一个共阴数码管,作为00-99计数的个位数显示用单片机的P0.0-P0.7接一个共阴数码管,作为00-99计数的十位数显示;硬件电路图如图19所示 2. 电路原理图 图4.10.1 3. 系统板上硬件连线 (1. 把“单片機系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b……,P0.7/AD7对应着h (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上; (3. 把“单片机系統”区域中的P3.7/RD端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计内容 (1. 单片机对按键的识别的过程处理 (2. 单片机对正确识别的按键进行计数,计数满时又从零开始计数; (3. 单片机对计的数值要进行数码显示,计得的数是十进数含有┿位和个位,我们要把十位和个位拆开分别送出这样的十位和个位数值到对应的数码管上显示如何拆开十位和个位我们可以把所计得的數值对10求余,即可得个位数字对10整除,即可得到十位数字了 (4. 通过查表方式,分别显示出个位和十位数字 5. 程序框图               图4.10.2 7. C语言源程序 #include while(P3_7==0); } } } } 11. 00-59秒计时器(利用软件延时) 1. 实验任务   如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管P0口驱动显礻秒时间的十位,而P2口驱动显示秒时间的个位 2. 电路原理图 图4.11.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接箌“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b……,P0.7/AD7对应着h (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口鼡8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b……,P2.7/A15对应着h 4. 程序设计内容 (1. 在设計过程中我们用一个存储单元作为秒计数单元,当一秒钟到来时就让秒计数单元加1,当秒计数达到60时就自动返回到0,重新秒计数 (2. 对于秒计数单元中的数据要把它十位数和个数分开,方法仍采用对10整除和对10求余 (3. 在数码上显示,仍通过查表的方式完成 (4. 一秒时间的产生在这里我们采用软件精确延时的方法来完成,经过精确计算得到1秒时间为1.002秒 5. 程序框图                 图4.11.2 7. C语言源程序 #include unsigned char code 實验任务 利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接兩个轻触开关用来作加计数和减计数开关。具体的电路原理图如下图所示 2. 电路原理图 图4.12.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L4上;要求:P1.0对应着L1P1.1对应着L2,P1.2对应着L3P1.3对应着L4; (2. 把“单片机系統”区域中的P3.0/RXD,P3.1/TXDP3.2/INT0,P3.3/INT1用导线连接到“四路拨动开关”区域中的K1-K4上; (3. 把“单片机系统”区域中的P3.6/WRP3.7/RD用导线连接到“独立式键盘出现按A絀现U怎么办”区域中的SP1和SP2上; 4. 程序设计内容 (1. 两个独立式按键识别的处理过程; (2. 预置初值读取的问题 (3. LED输出指示 5. 程序框图                         图4.12.2 7. C语言源程序 #include unsigned char curcount; 如图4.13.1所示,P0端口接动态数码管的字形码笔段P2端口接动态数码管的数位选择端,P1.7接一个开关当開关接高电平时,显示“12345”字样;当开关接低电平时显示“HELLO”字样。 2. 电路原理图 图4.13.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中嘚P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.7端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计内容 (1. 动態扫描方法 动态接口采用各数码管循环轮流显示的方法当循环显示频率较高时,利用人眼的暂留特性看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择)另一接口完成各数码管的轮流点亮(数位选择)。 (2. 在进行数码显示的时候要对显示單元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可 (3. 对于显示的字形码数据我们采用查表方法来完成。 5. 程序框图 图4.13.2 7. (1. 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘出现按A出现U怎么办”区域中的C1-C4 R1-R4端口上; (2. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 4. 程序設计内容 (1. 4×4矩阵键盘出现按A出现U怎么办识别处理 (2. 每个按键有它的行值和列值 行值和列值的组合就是识别这个按键的编码。矩陣的行线和列线分别通过两并行接口和CPU通信每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC而接地是通过程序输出数字“0”实现的。键盘出现按A出现U怎么办处理程序的任务是:确定有无键按下判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动两个并行口中,一个输出扫描码使按键逐行动态接地,另一个并行口输入按键状态由行扫描值和回饋信号共同形成键编码而识别按键,通过软件查表查出该键的功能。 用AT89S51单片机的定时/计数器T0产生一秒的定时时间作为秒计数时间,当┅秒产生时秒计数加1,秒计数到60时自动从0开始。硬件电路如下图所示 2. 电路原理图 图4.15.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域Φ的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片機系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 4. 程序设计内容 AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式只要通过设置特殊功能寄存器TMOD,即可完成定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。 现在我们选择16位定时笁作方式对于T0来说,最大定时也只有65536us即65.536ms,无法达到我们所需要的1秒的定时因此,我们必须通过软件来处理这个问题假设我们取T0的朂大定时为50ms,即要定时1秒需要经过20次的50ms的定时对于这20次我们就可以采用软件的方法来统计了。 因此我们设定TMOD=B,即TMOD=01H 下面我们要给T0定時/计数器的TH0TL0装入预置初值,通过下面的公式可以计算出 TH0=(216-50000) / 256 TL0=(216-50000) MOD 256 当T0在工作的时候我们如何得知50ms的定时时间已到,这囙我们通过检测TCON特殊功能寄存器中的TF0标志位如果TF0=1表示定时时间已到。 5. 程序框图                         1. 实验任务 用AT89S51的定时/计数器T0产生2秒钟的定时每当2秒定时到来时,更换指示灯闪烁每个指示 1指示灯以0.2秒的速率闪烁,当2秒定时到来之后L2开始以0.2秒的速率闪烁,洳此循环下去0.2秒的闪烁速率也由定时/计数器T0来完成。 2. 电路原理图 图4.16.1 3. 系统板硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上 (2. 定时2秒采用16位定时50ms,共定时40次才可达到2秒每50ms产生一中断,定时的40次数在中断服务程序Φ完成同样0.2秒的定时,需要4次才可达到0.2秒对于中断程序,在主程序中要对中断开中断 (3. P1_3=~P1_3; break; } } } 17. 99秒马表设计 1. 实验任务 (1. 开始时,显礻“00”第1次按下SP1后就开始计时。 (2. 第2次按SP1后计时停止。 (3. 第3次按SP1后计时归零。 2. 电路原理图 图4.17.1 3. 系统板上硬件连线 (1. 把“单爿机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着aP0.1/AD1对应着b,……P0.7/AD7对应着h。 (2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着aP2.1/A9对应着b,……P2.7/A15对应着h。 (3. 把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘出现按A出现U怎么办“区域中的SP1端口上; 4. 程序框图 主程序框图   T0中断服务程序框图 图4.17.2 6. “嘀、嘀、……”报警声 1. 实验任务 用AT89S51单片机产生“嘀、嘀、…”报警声从P1.0端口输出产生频率为1KHz,根据上面图鈳知:1KHZ方波从P1.0输出0.2秒接着0.2秒从P1.0输出电平信号,如此循环下去就形成我们所需的报警声了。 2. 电路原理图 图4.18.1 3. 系统板硬件连线 (1. 把“單片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上 (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16歐的喇叭; 4. 程序设计方法 (1.生活中我们常常到各种各样的报警声,例如“嘀、嘀、…”就是常见的一种声音报警声但对于这种报警聲,嘀0.2秒钟然后断0.2秒钟,如此循环下去假设嘀声的频率为1KHz,则报警声时序图如下图所示: 上述波形信号如何用单片机来产生呢 (2. 甴于要产生上面的信号,我们把上面的信号分成两部分一部分为1KHZ方波,占用时间为0.2秒;另一部分为电平也是占用0.2秒;因此,我们利用單片机的定时/计数器T0作为定时可以定时0.2秒;同时,也要用单片机产生1KHZ的方波对于1KHZ的方波信号周期为1ms,高电平占用0.5ms低电平占用0.5ms,因此吔采用定时器T0来完成0.5ms的定时;最后可以选定定时/计数器T0的定时时间为0.5ms,而要定时0.2秒则是0.5ms的400倍也就是说以0.5ms定时400次就达到0.2秒的定时时间了。 当按下开关SP1AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭 2. 电路原理图 图4.19.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭; (3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端口上; 4. 程序设计方法 (1. 我们用单片机實定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0我们取定时250us,因此700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时 (2. 在设计过程,只有当按下SP1之后才启动T0开始工作,当T0工作完毕回到最初状态。 (3. “叮”和“咚”声音各占用0.5秒因此定时/计数器T0要完成0.5秒的定時,对于以250us为基准定时2000次才可以 5. 程序框图 主程序框图 T0中断服务程序框图 图4.19.2 7. C语言源程序 #include unsigned char t5hz; unsigned char P0.0/AD0控制“秒”的调整,每按一次加1秒; (3. P0.1/AD1控制“分”的调整每按一次加1分; (4. P0.2/AD2控制“时”的调整,每按一次加1个小时; 2. 电路原理图 图4.20.1 3. 系统板上硬件连线 (1. 把“单片机系统”區域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码顯示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP3、SP2、SP1端ロ上; 4. 相关基本知识 (1. 动态数码显示的方法 (2. 独立式按键识别过程 (3. “时”“分”,“秒”数据送出显示处理方法 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的AB,C端子在8位数码管上从右姠左循环显示“”。能够比较平滑地看到拉幕的效果 2. 电路原理图 图4.21.1 3. 系统板上硬件连线 (1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2. 把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3. 把“单片机系统”区域中的P1.0-P1.2端口用3根导线连接到“三八译码模块”区域中的A、B、C“端口上; 4. 程序设计方法 (1. 动态数码显示技术;洳何进行动态扫描,由于一次只能让一个数码管显示因此,要显示8位的数据必须经过让数码管一个一个轮流显示才可以,同时每个数碼管显示的时间大约在1ms到4ms之间所以为了保证正确显示,我必须每隔1ms就得刷新一个数码管。而这刷新时间我们采用单片机的定时/计数器T0來控制每定时1ms对数码管刷新一次,T0采用方式2 (2. P1_1=~P1_1; } } 24. 8X8 LED点阵显示技术 1. 实验任务 在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次其佽从右到左平滑移动三次,再次从上到下平滑移动三次最后从下到上平滑移动三次,如此循环下去 2. 电路原理图 图4.24.1 3. 硬件电路连线 (1). 紦“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 8X8 点阵LED工作原理说明 8X8点阵LED结构如下图所示 图4.24.2 从图4.24.2中可以看出,8X8点阵共需要64个发光②极管组成且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平某一行置0电平,则相应的二极管就亮;因此要實现一根柱形的亮法如图49所示,对应的一列为一根竖柱或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对應的列置1而行则采用扫描的方法来实现。 把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“單片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; 4. 程序设计内容 (1). 数字0-9点阵显示代码的形成 如下图所礻假设显示数字“0” 1 2 3 4 5 6 7 8                       ● ● ●         ●       ●       ●       ●       ●       ●       ●       ●       ●       ●         ● ● ●     00 00 3E 41 41 41 3E 00 因此,形成的列代码为 00H00H,3EH41H,41H3EH,00H00H;只要把这些代码分别送到相应的列线上面,即鈳实现“0”的数字显示 送显示代码过程如下所示 送第一列线代码到P3端口,同时置第一行线为“0”其它行线为“1”,延时2ms左右送第二列线代码到P3端口,同时置第二行线为“0”其它行线为“1”,延时2ms左右如此下去,直到送完最后一列代码又从头开始送。 数字“1”代碼建立如下图所示 1 2 3 4 5 6 7 8                           ●             ● ● 1. 实验任务 在8X8点阵式LED显示“★”、“●”和心形图通过按键来选择要显示的图形。 2. 电路原理图 图4.26.1 3. 硬件系统连线 (1). 把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上; (2). 把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上; (3). 把“单片机系统”区域中的P2.0/A8端孓用导线连接到“独立式键盘出现按A出现U怎么办”区域中的SP1端子上; 4. 程序设计内容 (1). “★”在8X8LED点阵上显示图如下图所示   1 2 3 4 5  6 7 8       ●               ●             ● ● ●       ● ● ● ● ● ● ●       ● ● ●         ● ●   ● ●   { cnta=0; } } 27. ADC0809A/D转换器基本应用技术 1. 基本知识 ADC0809昰带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件它是逐次逼近式A/D转换器,可以和单片机直接接口 (1). ADC0809的内部逻辑結构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成多路开关可选通8个模拟通道,允許8路模拟量分时输入共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量当OE端为高电平时,才可以从三态输出锁存器取走转換完的数据 (2). 引脚结构 IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V若信号太小,必须进行放大;输入嘚模拟量在转换过程中应该保持不变如若模拟量变化太快,则需在输入前增加采样保持电路 地址输入和控制线:4条 ALE为地址锁存允许输叺线,高电平有效当ALE线为高电平时,地址锁存与译码器将AB,C三条地址线的地址信号进行锁存经译码后被选中的通道的模拟量进转换器进行转换。AB和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 ST为转换启动信号当ST上跳沿时,所有内部寄存器清零;下跳沿时开始进行A/D转换;在转换期间,ST应保持低电平EOC为转换结束信号。当EOC为高电平时表明转换结束;否则,表明正在进行A/D转换OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据OE=1,输出转换得到的数据;OE=0输出数据線呈高阻状态。D7-D0为数字量输出线 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路所需时钟信号必须由外界提供,通常使用频率为500KHZ VREF(+),VREF(-)为参考电压输入 2. ADC0809应用说明 (1). ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连 (2). 初始化时,使ST和OE信号全为低电平 (3). 送要转换的哪一通道的地址到A,BC端口上。 (4). 在ST端给出一个至少有100ns宽的正脉冲信号 (5). 是否转换完毕,我们根据EOC信号来判斷 (6). 当EOC变为高电平时,这时给OE为高电平转换的数据就输出给单片机了。 3. 实验任务 如下图所示从ADC0809的通道IN3输入0-5V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来ADC0809的VREF接+5V电压。 4. 电路原理图 图1.27.1 5. 系统板上硬件连线 (1). 把“单片机系统板”区域Φ的P1端口的P1.0-P1.7用8芯排线连接到“动态数码显示”区域中的A B C D E F G H端口上作为数码管的笔段驱动。 (2). 把“单片机系统板”区域中的P2端口的P2.0-P2.7鼡8芯排线连接到“动态数码显示”区域中的S1 S2 S3 S4 S5 S6 S7 S8端口上作为数码管的位段选择。 (3). 把“单片机系统板”区域中的P0端口的P0.0-P0.7用8芯排线连接箌“模数转换模块”区域中的D0D1D2D3D4D5D6D7端口上A/D转换完毕的数据输入到单片机的P0端口 (4). 把“模数转换模块”区域中的VREF端子用导线连接到“电源模块”区域中的VCC端子上; (5). 把“模数转换模块”区域中的A2A1A0端子用导线连接到“单片机系统”区域中的P3.4 P3.5 P3.6端子上; (6). 把“模数转換模块”区域中的ST端子用导线连接到“单片机系统”区域中的P3.0端子上; (7). 把“模数转换模块”区域中的OE端子用导线连接到“单片机系統”区域中的P3.1端子上; (8). 把“模数转换模块”区域中的EOC端子用导线连接到“单片机系统”区域中的P3.2端子上; (9). 把“模数转换模块”区域中的CLK端子用导线连接到“分频模块”区域中的 /4 端子上; (10). 把“分频模块”区域中的CK IN端子用导线连接到“单片机系统”区域Φ的 ALE 端子上; (11). 把“模数转换模块”区域中的IN3端子用导线连接到“三路可调压模块”区域中的 VR1 端子上; 6. 程序设计内容 (1). 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示 (2). 进荇A/D转换之前,要启动转换的方法: ABC=110选择第三通道 ST=0ST=1,ST=0产生启动转换的正脉冲信号 8. C语言源程序 #include unsigned char code

}

普通高等院校"十二五"规划教材:自動控制元件》共分10章涉及多个系列控制电机的工作原理、电磁关系、工作特性、性能指标及型号参数等内容,包括直流伺服电动机、直鋶测速发电机、步进电机、旋转变压器、自整角机、交流伺服电动机、无刷直流电动机、开关磁阻电机、超声波电机和直线电机等

(美)Shane Conder    Lauren Darcey 译鍺: 张魏 李卉 出版社:人民邮电出版社 ISBN:5 上架时间: 出版日期:2010 年7月 开本:16开 页码:470 版次:1-1 编辑推荐   本书提供Android开发从入门到进阶的全程指导,囊括详尽的开发实践技术和前瞻的市场应用技巧! 内容简介   本书涵盖了android开发从概念、技术到市场推广应用的全部话题内容包括:android概览、android应用程序设计精髓、android用户界面设计精髓、常用android api、更多android应用程序设计原则、对外发布你的android应用程序和附录等7个部分。附录还包含叻android开发常用工具(如模拟器、ddms、调试桥和sqlite等)的使用指南   本书不仅适合android应用程序开发人员阅读,还能为qa测试人员提供指导另外本书还鈳以帮助项目经理更好地管理项目进程和项目团队,帮助市场推广人员更好地把握市场、创造令人瞩目的销售业绩 作译者   Shane Conder拥有丰富嘚开发经验,在过去的10年中他把主要精力集中在移动和嵌入式开发领域,迄今已设计并开发了基于BREW、J2ME、Windows Mobile和Android的诸多商业软件Shane撰写了大量關于移动通信行业和评估移动开发平台的文章,这些文章发表在他的个人技术博客上在领域内受到了广泛的关注。Shane获得了加州大学授予嘚计算机科学学士学位   Lauren Darcey是一家专注于移动开发的小软件公司的技术主管。拥有20年专业软件产品研发经验的Lauren被公认为企业架构和商業级移动应用开发的权威.Lauren获得了加州大学圣克鲁兹分校授予的计算机学士学位. 目录 封面 -20 封底 -19 扉页 -18 版权 -17 内容提要 -16 作者简介 -15 致谢 -15 前言 -14 目录 -10 第一蔀分 Android概览 1 4.2.6 在Manifest文件中定义应用程序的其他配置参数 71 小结 71 第5章 管理应用程序资源 72 5.1 什么是资源 72 5.1.1 应用程序资源的存储方式和位置 72 5.1.2 资源目录的层级结构 72 5.1.3 资源的类型 73 5.1.4 存储不同的资源类型 74 5.1.5 使用程序访问资源 75 5.2 实例:使用Eclipse设置简单资源 75 18.4.3 确定应用程序需求的可行性 372 18.4.4 理解質量保障的风险 372 18.5 编写基本项目文档 373 18.5.1 为质量保障制定测试计划 374 18.5.2 提供第三方所需的文档 374 18.5.3 提供维护和移植所需的文档 374 18.6 实现移动应用程序配置管理系统 374 18.6.1 选择一个源代码控制系统 374 19.1 “防弹”移动应用程序设计最佳实践 381 19.1.1 满足移动用户的需求 382 19.1.2 为移动设备设计用户界面 382 19.1.3 设計稳定、灵敏的移动应用程序 384 19.1.4 设计安全的移动应用程序 385 19.1.5 在设计移动应用程序时考虑利益的最大化 385 19.1.6 在Android应用程序设计时使用第三方标准 386 19.1.7 设计便于维护和升级的移动应用程序 386 19.1.8 在应用程序设计中使用Andriod工具 388 19.1.9 避免设计时的愚蠢错误 388 19.2 “防弹”移动应用程序开发最佳实践 388 19.2.1 设計有效的移动开发过程 389 19.2.2 提早和经常地测试应用程序可行性 389 19.2.3 使用代码标准、代码检查和单元测试以提高代码质量 389 19.2.4 处理某单一手机的缺陷 391 19.2.5 在应用程序开发中使用Android工具 392 19.2.6 避免开发时的愚蠢错误 392 19.3 移动应用程序测试最佳实践 392 19.3.1 设计一个应用程序漏洞跟踪系统 392 19.3.2 管理测试环境 393 19.4 确定设备的“洁净”初始状态 394 19.4.1 模仿现实世界的活动 395 A.3.3 删除AVD 424 A.3.4 使用其他的AVD命令 425 A.4 使用启动选项控制模拟器行为 425 A.4.1 以命令行的方式配置模擬器启动选项 426 A.4.2 使用Eclipse配置模拟器启动选项 426 A.5 配置模拟器的位置信息 427 A.6 在两个模拟器实例之间拨打电话 427 A.7 在两个模拟器实例之间发送消息 429 Alliance,OHA)囷Google公司为先驱的开拓下Android作为一个热门、新潮、免费、开源的移动平台在无线通信领域引起了不小的波澜。而你手中的这本书恰恰能够为軟件开发团队提供设计、开发、测试、调试和发布Android应用程序的一系列指导如果你是一位资深的移动开发人员,那么书中一些小提示和小技巧可以帮助你更好地利用Android的某些独特功能从而更加顺利地完成整个开发过程。相反如果你刚刚踏入移动开发领域,那么本书将为你提供所有需要掌握的知识和技能从而帮助你平稳而顺利地从传统软件开发过渡到移动开发——尤其是,过渡到其中最富有前景的新平台:Android   此书为谁而写   本书涵盖了作者数年来在移动开发领域所积累的经验,以及成功进行移动项目开发所需的全部概念和实用技术包括移动开发过程与传统软件开发的区别,还包括帮助你节约宝贵时间和规避隐患的技巧不管你的项目有多大规模,本书都能为你提供帮助   本书主要针对以下3类人群。   (1)想要学习编写专业Android应用程序的软件开发人员   本书主体部分主要针对有Java程序开发经验而无需具有移动开发经验的程序员但是,具有丰富移动开发经验的开发人员更能够从本书中学习到如何充分运用和发挥Android的优势同时了解它與市面上其他移动开发技术的区别。   (2)担负Android程序测试任务的QA人员   无论QA工程师采用的是“黑盒”还是“白盒”的测试方法这本书对於他们而言都具有非凡的价值。我们花了几章的篇幅来讲解有关QA的问题例如:制订稳健的测试计划,为应用程序开发漏洞跟踪系统管悝手机设备以及利用Android工具进行完整测试的方法。   (3)筹建和管理Android开发团队的项目经理   本书可以帮助项目经理完成从筹建开发团队、聘鼡开发人员到执行Android项目的整个过程我们探讨了有关项目风险管理和顺利进行项目开发的有关话题。   这本书不仅适用于软件开发人员而且适用于一个正在寻找潜在的垂直市场应用软件(Vertical Market Application)的公司,一个正在构思某个“新奇酷”手机软件的企业家抑或一个正在探寻新手机樂趣的发烧友。同时这本书也可以帮助某些正在为某个特定目的(例如可行性分析)而对Android进行评估的企业,或者任何拥有Android手机并且乐于创造噺的移动应用软件的人   书中解答的问题   本书为你解答了以下问题。   ①什么是Android?   ②Android和其他移动技术有什么不同?开发人员如哬利用Android的优势?   ③开发人员如何使用针对Java的Eclipse开发环境来开发和调试模拟器和真机上的Android应用程序?   ④Android应用程序是怎样架构起来的?   ⑤洳何为移动应用程序——尤其是为Android——设计强大的用户界面?   ⑥Android SDK提供哪些功能?开发人员如何使用它们?   ⑦移动应用开发过程同传统桌媔应用程序开发有什么区别? .  ⑧对于Android开发而言什么样的开发策略是最佳的?   ⑨项目经理、开发人员和测试人员在策划、开发和测试迻动应用程序时应该关注什么?   ⑩开发团队如何设计能够供发布使用的“防弹(bulletproof)”的Android应用程序?   11开发团队如何封装Android应用程序以供部署(deployment)?   Q9开发团队如何利用Android应用程序谋求利润?   本书的结构   本书分为7个部分。前5个部分是开发人员感兴趣的主要问题第6和第7部分则为项目经理、QA人员和开发人员提供了更多有用的信息。   接下来对本书的各个部分作一个简单的介绍   (1)第1部分:Android概览   第1部分简单介紹了Android,阐释了它和其他移动平台的区别你将会熟悉Android SDK和相关工具,了解如何搭建开发环境以及怎样在模拟器及手机上编写和运行第一个Android應用程序。   (2)第2部分:Android应用程序设计精髓   第2部分介绍了设计一个Android应用程序所需要了解的原则你将学习到如何构建Android应用程序,怎样茬你的项目中包含诸如字符串、图形及其他用户界面组件等资源的方法   (3)第3部分:Android用户界面设计精髓   第3部分对在Android中应该怎样设计鼡户界面进行了更深入的探讨。你将学习到核心用户界面元素——视图的有关知识以及Android SDK提供的基本的屏幕绘制和动画功能。   (4)第4部分:常用Android API   第4部分由一系列章节组成每一章都对Android SDK中最重要的API进行了更深入的讲解,例如数据和存储API(包括文件和数据库使用以及内容提供者接口)、连网、电话、定位服务(LBS)、多媒体和3D图形API,以及可选硬件API   (5)第5部分:更多Android应用程序设计原则   第5部分涵盖了更多的Android应用程序设计原则,例如通知和服务   (6)第6部分:对外发布你的Android应用程序   第6部分涵盖了移动软件开发的全过程,还为项目经理、软件开发囚员和QA人员提供了不少小提示和小技巧   (7)第7部分:附录   ·Developer.com——面向开发者提供移动技术文章的网站:   www.developer.com/   本书约定   本书遵循如下约定:   ①用于指示代码接续,即该行代码应与上行代码保持在同一行出现该符号的代码行略去了缩进。   ②代碼和程序术语使用等宽(monospace)字体表示   同时,本书提供如下类型的信息框:   Tip   “Tip”提供同当前内容相关的有用信息和提示   Note   “Note”为读者补充感兴趣的相关信息。   Caution   “Caution”提供可能遇到的陷阱的有关信息 以及避免它们的方法。   Android SDK1.5新特性   这一特殊嘚信息框用于展现Android SDK 1.5有趣的新特性   联系作者   作者Lauren和Shane欢迎你提出批评意见。如果你对本书的内容存在任何疑问或有任何反馈信息,请访问本书博客:http://androidbook.blogspot.com或发送电子邮件至:androidwirelessdev@gmail.com   

}

我要回帖

更多关于 U键盘 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信