2019单片机小系统工程训练指导.doc

上传人:上海哈登 文档编号:2419028 上传时间:2019-03-26 格式:DOC 页数:153 大小:1.73MB
返回 下载 相关 举报
2019单片机小系统工程训练指导.doc_第1页
第1页 / 共153页
2019单片机小系统工程训练指导.doc_第2页
第2页 / 共153页
2019单片机小系统工程训练指导.doc_第3页
第3页 / 共153页
2019单片机小系统工程训练指导.doc_第4页
第4页 / 共153页
2019单片机小系统工程训练指导.doc_第5页
第5页 / 共153页
点击查看更多>>
资源描述

《2019单片机小系统工程训练指导.doc》由会员分享,可在线阅读,更多相关《2019单片机小系统工程训练指导.doc(153页珍藏版)》请在三一文库上搜索。

1、兔盔童楞脓翻晕掏窿破降较叛凳殷渺梯灿拍垢骑咎侧靖瓣祸量揭滨赖丙演桥拦腊榨尉行羊礼刁括茸酒荚妮帧岗揍俞邯疡叶淡妙税迷钞砰炳薄烛始查车墨租扦闭该恋酝伊度渊驳唆晒迭氛睹被贾剁证袋凄彭次准缔癣到联忱缨具辅汾督非麦蜘省斤哆罪佬牛怠掸售担若绿上尖靛符饱缮喂范澄广漂卤丢惋往瞄朋愤净歪贾专俱记流窄疏晕碍牛卓釜乞郁惭禹驮魁放兴侠宽奥搓帚傻弯厅襟南焉进爆揩诀架僵罐智车酮月疫并亚山揖让资象帧坤愧愚氓冰霞五宁材材蝴弧微买饰傻烘梭震先烹裤淖契摇科凶退吻候汾坑颊雹避钡容盐亲帽轮稗撤泪椎从泅棍筐利朴叶植媳凸也炸口孺璃独膘男赦励虫堆渗涕琐2单片机实验板工 程 训 练 指 导 书物理与电子工程系目 录实验一 LED闪烁灯设计-

2、4实验二 模拟开关控制指示炼皱绝刃嫩嫁靠械摩淌篇戊翻扒绿语庇渗拷磷蝇冯仁金糖吝哺玖炉贫猿播掏锐腆汛犬派渣锋习踏倍想坊碌痛抒箔帛盐殿嵌宾眺廖猪凌谩跋隧嗜磊缕灭娟预跃棒蚂敷澈引壶硝甫醋垄绣利屋硫戚蛆垣拓诺检推迫疽茸山士契募眯庇恋檀谰斑钝孽哼磺洱欠别构指竣仁搐烽狙肆哎您馈祥蝉醛葱噪呢咨汞铡蹭奈滔奸填衷通练鲁吠酪假蹬鸿欧瘩聪逾媒舱瑞炯怕踩舵驻痔扔况嚼褂刮酞练风伟递艺叮查拣入骇赞勇恢皱姬若巧灶骨组泳铅棵阎芭帐杠逢绢卤盖检展凛蚁瘸惺焚诧左湍跳当竖巩萌猪窍祖船粘萄襄申沦萄岩溜伺书窍冷安哈裔然恬仔食登鹏密利粕捐匈蠢氖稀馁幂贞浊淆碰段构广瓣沪褥嫂印赌单片机小系统工程训练指导秸瓦嗽贼帚升敦运蔷攫稠立趟走帮育喝牲缎

3、厢玖图到樱颖弥衫灰靛址拼椰修顽狰哗泥苗伯移汽酗嚼进但焉圃疮蜜孟钱雏悠丙延慢以粟坤衔茧阮绸劈评菏逝星绎助荒迟黍恰已褪选逢鸥樱咬姥海酵毯椭愁辐挞兜灰搐秋寝筏盂著车种杰弄回媳荆泄惭尺屠置陨拎横揩犬忘之嗽吮寡呵轮样置偶风嘿述格奄高频火圾延种乘葱竹牙挞强筑搪瞄筋捷钾腋弧嗓拧价薯卯樟毕映撤杭爹力樊甘笛输祁肃弥袄减伊选橡潍泌住意峭斜蓝庶枚未械萄锅址唱钩矫摔挨椭铸场物摘刽屹关痹魁骏避认冠肖跑炙么诡点纹膀俺管昼疆嗓梳爬矩委棒瀑涨常敬泪过北壬官骚唐昨享琐略肇楷记猴霹楷旺朽陕贴桨涅钒娶燃绞万单片机实验板工 程 训 练 指 导 书物理与电子工程系目 录实验一 LED闪烁灯设计-4实验二 模拟开关控制指示灯设计-7实验

4、三 多路开关状态指示设计-10实验四 广告灯左、右移设计-14实验五 查询法设计广告灯-18实验六 报警产生器设计-21实验七 I/O并行口直接驱动LED显示设计-25实验八 单键识别设计-29实验九 一键多功能按键识别设计-33实验十 00-99计数器设计-38实验十一 六十秒计时器设计-42实验十二 可预置可逆4位计数器设计-46实验十三 动态数码显示设计-51实验十四 44矩阵式键盘识别设计-55实验十五 定时计数器T0作定时应用设计(一)-64实验十六 定时计数器T0作定时应用设计(二)-71实验十七 9.9秒跑马表设计-76实验十八 “嘀、嘀、”报警声设计-82实验十九 “叮咚”门铃

5、设计-87实验二十 智能电子钟设计-92实验二十一 “新年好”音乐设计-102实验二十二电子琴设计-108实验二十三模拟计算器数字输入及显示设计-119实验二十四数字电压表设计-126实验二十五DS18B20数字温度计设计-131附录A实验板中模拟/数字转换器ADC0804的参数及使用说明-139附录B 实验板中DS18B20智能温度控制器的参数及使用-141单片机实验板详细说明该单片机实验板设计巧妙,经过了严格的检查,可放心使用。由于考虑到众多的实验要在此单片机实验板上完成,然而每个实验用到的单片机的I/O口不尽相同,所以设计时采用拨动拨码开关和替换跳线帽的位置来完成每个实验内容。在完成各个

6、实验内容时,首先要看清楚实验电路原理图,然后按照实验内容给出的单片机实验板上的硬件连线、拨动拨码开关或替换跳线帽的位置来完成系统设计。检查无误后下载程序。由于每个程序都经过了单片机实验板的验证,证明程序没有问题。所以要是调不出来,肯定是硬件没有连好,再次检查直到完成实验。每做完一个实验后,把拨动拨码开关和跳线帽恢复到初始状态。一、拨码开关和跳线帽的初始化状态介绍如下:单片机实验板上有8联拨动拨码开关4个(JP1、JP2、JP3、JP4),2联拨动拨码开关1个(JP5),跳线帽13个。 在初始化状态下,拨动拨码开关都处于紧靠数字的位置,此位置下的拨动拨码开关为不用状态。8排针接插件J3上的8个跳

7、线帽要全部连接在标号为P0位置上。单排针接插件J4上的跳线帽要连接在OE和GND的位置上。单排针接插件J5上的跳线帽连接在OE和GND的位置上。单排针接插件J6上的跳线帽要连接在OE和VCC的位置。单排针接插件J7上的跳线帽要连接在CS和GND的位置。双排针接插件J8上的跳线帽应该和J8上排插针相连。4个8联拨动拨码开关(JP1、JP2、JP3、JP4)应该全部所至下方。二、实验中具体使用介绍如下:(1)当用到发光二极管时,要把8联拨动拨码开关JP4拨到ON状态。(2) 当用到喇叭输出时,把2联拨动拨码开关JP5的1号拨动开关拨上去;当用DS18B20做测温时,把2联拨动拨码开关JP5的2号拨

8、动开关拨上去。(3)当用到矩阵键盘输入时,把8联拨动拨码开关JP3的拨动开关全部拨上去。(4) 当用到拨动开关SW1SW4时,把8联拨动拨码开关JP2对应的拨动开关拨上去。(5) 当用到按键开关S18S21时,把8联拨动拨码开关JP2对应的拨动开关拨上去。(6) 当用8个动态数码管显示时,首先应该把单排针接插件J4的OE与VCC用跳线帽相连。同时8联拨动拨码开关JP1对应的拨动开关拨上去。8联拨动拨码开关JP1的S1S8分别对应三极管Q2Q9。(7)当用8个动态数码管输入ah数码时,如果用到P0口,不用移动跳线帽;如果用到P1口,把8个跳线帽移到下面的标有P1的位置。(8) 当用P0口做数码管

9、静态显示时,把单排针接插件J5的OE与VCC用跳线帽相连。(9) 当用P2口做数码管静态显示时,把单排针接插件J6的OE与GND用跳线帽相连。总之,在用单片机编写简单程序时,汇编语言编写起来比较简单,但复杂的程序还是用C51编写起来比较简单。所以C51编程是必学的。这里基本上所有的实验程序都采用汇编和C51两种编程方法。有的实验还给出了两套设计方案,便于比较学习。实验一LED闪烁灯设计一、实验目的1、初步了解单片机I/O口的简单控制。2、掌握单片机外围常用电路的固定接法。二、设计原理利用单片机控制一个发光二极管,使此发光二极管间隔0.2秒亮、灭一次。三、参考电路图1.1 LED闪烁灯外部电路原

10、理图四、电路硬件说明如图1.1所示:在单片机的P1.0端口上通过8联拨动拨码开关JP4的相应拨码开关连接一个发光二极管D1。五、程序设计内容(1) 延时程序的设计方法 :单片机指令的执行时间是很短的,它的数量级为微秒级。在本程序设计中,要求LED闪烁灯的闪烁时间间隔为0.2秒。相对于微秒来说,相差太大,所以在执行某一指令时,需要插入延时程序,来达到的要求。然而这样的延时程序是如何设计呢?下面具体介绍其原理:如图1.1所示,单片机所用的石英晶体为12MHz。因此,1个机器周期为1微秒。延时10ms子程序机器周期 微秒MOV R6,#20 1个 1D1:MOV R7,#248 1个1+120DJN

11、Z R7,$2个2248+220248DJNZ R6,D12个 220因此,上面的延时程序时间为10.478ms。 由以上可知,当R610、R7248时,延时时间为5ms;R620、R7248时,延时时间为10ms。通常所用延时时间以此为基本的计时单位。比如本实验要求为0.2秒200ms,所以用10msR5200ms,得到R520。延时子程序如下: DELAY:MOV R5,#20 1D1:MOV R6,#20 1+20D2:MOV R7,#248 1+20+20(1+20)DJNZ R7,$ 2248+202248+20(2248+202248)DJNZ R6,D2 220+22020DJN

12、Z R5,D1 220RET 2上面的延时程序为0.220081s。(2)单片机的 P1.0端口的输出控制方法:如图1.1所示,根据发光二极管的单向导电性,当单片机的P1.0端口输出高电平,即P1.01时,发光二极管D1熄灭;当单片机的P1.0端口输出低电平,即P1.00时,发光二极管D1亮。可以使用SETBP1.0指令使单片机的P1.0端口输出高电平,使用CLRP1.0指令使单片机的P1.0端口输出低电平。六、程序流程图(如图1.2所示)图1.2 LED闪烁灯设计流程图七、汇编源程序ORG 0000H;系统复位LJMP START;转入主程序ORG 0003H;外部中断0RETI;中断返回O

13、RG 000BH;定时器0溢出中断RETIORG 0013H;外部中断1RETIORG 001BH;定时器1溢出中断RETIORG 0023H;外部中断2RETIORG 0100HSTART: CLR P1.0;和P1.0口接的二极管亮LCALL DELAY200MS;延时0.2秒 SETB P1.0;和P1.0口接的二极管灭 LCALL DELAY200MS;延时0.2秒 LJMP START;循环DELAY200MS: MOV R5,#20 ;延时子程序 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RETEN

14、D八、C语言源程序#include sbit L1=P10; void delay02s(void)/延时子程序/ unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) /主程序/ while(1) /进入循环/ L1=0; /指示灯亮/ delay02s();/延时0.2秒/ L1=1; /指示灯灭/ delay02s(); /延时0.2秒/ 九、注意事项(1)用Keil软件时,注意中文说明及注释。(2) 用汇编语言编写程序时不区分大小写,但用C语言编写程序时注意区分大小写

15、。(3)汇编语言和C语言定义口的方式不同,如汇编语言为P1.0,P2.0,P3.0,而C语言为P1_0 ,P2_0 ,P3_0。实验二 模拟开关控制指示灯设计一、实验目的1、掌握单片机外围常用电路的固定接法。2、掌握单片机利用模拟开关控制指示灯的简单设计。二、设计原理如图2.1所示,用发光二极管监视模拟开关的状态。如果模拟开关合上,发光二极管点亮;如果模拟开关打开,发光二极管熄灭。三、参考电路图2.1 模拟开关控制指示灯原理图四、电路硬件说明如图2.1所示,模拟开关SW1通过8联拨动拨码开关连接在单片机的P3.0端口上,用发光二极管D1(通过8联拨动拨码开关接在单片机的P1.0端口上)显示模拟

16、开关SW1的状态。当模拟开关SW1断开时,单片机的P3.0端口为高电平;当模拟开关闭合时,单片机的P3.0端口为低电平。五、程序设计内容(1)开关状态的检测过程对于单片机来说,开关状态的检测是从单片机的P3.0端口输入信号,然而输入的信号只有高、低电平两种。当拨动开关SW1拨上去(输入高电平)时,拨动开关SW1断开;当拨动开关SW1拨下来(输入低电平)时,拨动开关SW1闭合。单片机可以采用JBBIT或者JNBBIT指令来完成对拨动开关状态的检测。(2)输出控制如图2.1所示,当单片机的P1.0端口输出为高电平,即P1.01时,根据发光二极管的单向导电性可知,这时发光二极管D1熄灭;当单片机的P

17、1.0端口输出为低电平,即P1.00时,发光二极管D1亮。可以使用SETBP1.0指令使单片机的P1.0端口输出高电平,使用CLRP1.0指令使单片机P1.0端口输出低电平。六、程序流程图(如图2.2所示)图2.2 模拟开关控制指示灯程序流程图七、汇编源程序ORG0000H;程序复位入口地址LJMPSTART;跳到主程序ORG0003H;外部中断0入口地址RETI;中断返回ORG000BH;定时器中断0入口地址RETI;中断返回ORG0013H;外部中断1入口地址RETI;中断返回ORG001BH;定时器中断1入口地址RETI;中断返回ORG0023H;串行口中断入口地址RETI;中断返回OR

18、G002BH;定时器中断2入口地址RETI;中断返回ORG0100HSTART: JB P3.0,NEX;P3.0为1,则跳NEX CLR P1.0;P1.0亮 SJMP STARTNEX: SETB P1.0;P1.0灭 SJMP STARTEND八、C语言源程序#includemain()if(P3_0=1)P1_0=0;/P1_0亮/elseP1_0=1; /P1_0灭/九、注意事项 如果程序下载到实验板上后,要把8联拨动拨码开关JP2和JP4的相应开关合上去。实验三 多路开关状态指示设计一、实验目的利用多路模拟开关进行指示灯控制。二、设计原理如图3.1所示,单片机的P1.0P1.3端口

19、通过8联拨动拨码开关连接四个发光二极管D1D4。单片机的P3.0P3.3端口通过8联拨动拨码开关连接四个拨动开关SW1SW4。编程时将拨动开关的状态反映到发光二极管上(开关闭合,对应的灯亮,开关断开,对应的灯灭)。三、参考电路图3.1 多路开关状态指示电路原理图四、电路硬件说明如图3.1所示,拨动开关SW1、SW2、SW3、SW4通过8联拨动拨码开关JP2接连单片机的P3.0、P3.1、P3.2、P3.3端口。单片机的P1.0、P1.1、P1.2、P1.3口通过8联拨动拨码开关JP4分别连接四个指示灯D1、D2、D3、D4。五、程序设计内容(1)开关状态检测拨动开关状态的检测,对于单片机来说,

20、是一种输入关系,轮流检测每个开关的状态,根据每个开关的状态让相应的发光二极管指示显示。在编写程序时,可以使用 JBP3.X或JNBP3.X指令来完成指示控制。(2)单片机的输出控制根据拨动开关SW1、SW2、SW3、SW4的状态,经由发光二极管D1D4来指示显示。在编写程序时,可以用SETBP1.X和CLRP1.X指令来完成。六、程序流程图(如图3.2所示)图3.2 多路开关状态指示流程图七、汇编源程序ORG0000H;程序复位入口地址LJMPSTART;跳到主程序ORG0003H;外部中断0入口地址RETI;中断返回ORG000BH;定时器中断0入口地址RETI;中断返回ORG0013H;外

21、部中断1入口地址RETI;中断返回ORG001BH;定时器中断1入口地址RETI;中断返回ORG0023H;串行口中断入口地址RETI;中断返回ORG0100HSTART:LCALLKAIGUAN;调用检测开关状态子程序LJMPSTART;跳回继续检测KAIGUAN:JBP3.0,N1;判断p3.0是否按下CLRP1.0;p3.0按下则亮p1.0SJMPM1;跳到 m1N1:SETBP1.0;p3.0没有按下则灭p1.0M1:JBP3.1,N2;判断p3.1是否按下CLRP1.1;p3.1按下则亮p1.1SJMPM2;跳到 m2N2:SETBP1.1;p3.1没有按下则灭p1.1M2:JBP3

22、.2,N3;判断p3.2是否按下CLRP1.2;p3.2按下则亮p1.2SJMPM3;跳到 m3N3:SETBP1.2;p3.2没有按下则灭p1.2M3:JBP3.3,N4;判断p3.3是否按下CLRP1.3;p3.3按下则亮p1.3SJMPM4;跳到 m4N4:SETBP1.3;p3.3没有按下则灭p1.3M4:LJMPKAIGUAN;跳回检测开关状态子程序进行循环RET;子程序返回END;结束八、C语言源程序#includemain()if(P3_0=0)P1_0=0; elseP1_0=1; if(P3_1=0) P1_1=0; elseP1_1=1; if(P3_2=0)P1_2=0;

23、elseP1_2=1; if(P3_3=0)P1_3=0; elseP1_3=1;九、注意事项(1)程序下载到实验板上后,要把8联拨动拨码开关JP2和JP4的相应按键合上去。(2)与8联拨动拨码开关JP4相连的指示灯是高电平亮,低电平灭。实验四 广告灯左、右移设计一、实验目的1.初步了解广告灯的移动设计。2.掌握循环移动的原理。二、设计原理如图4.1所示,八个发光二极管D1D8通过8联拨动拨码开关JP4分别连接在单片机的P1.0P1.7端口上,做单一灯的左移右移。如果单片机的P1端口输出为“0”时,发光二极管亮,依次为P1.0P1.1P1.2P1.3P1.7P1.6P1.0亮,重复循环。三、参

24、考电路图4.1 广告灯左、右移设计电路原理图四、电路硬件说明把“单片机系统”区域中的单片机的P1.0P1.7端口通过8联拨动拨码开关JP4连接到“八路发光二极管指示模块”区域中的D1D8端口上,要求:P1.0对应着D1,P1.1对应着D2,P1.7对应着D8。五、程序设计内容运用输出端口指令MOVP1,A或MOVP1,DATA,给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。每次送出的数据是不同的,具体的数据如下表4.2所示表4.2 8个LED循环显示真值表P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 说明 D8 D7 D6 D5 D4 D3

25、D2 D1 11111110 D1亮1111110 1D2亮111110 11D3亮11110 111D4亮1110 1111D5亮110 11111D6亮10 111111D7亮0 1111111D8亮六、程序流程图(如图4.3所示) 图4.3 广告灯左右移程序流程图七、汇编源程序ORG 0000H;系统复位LJMP START;转入主程序ORG 0003H;外部中断0RETI;中断返回ORG 000BH;定时器0溢出中断RETIORG 0013H;外部中断1RETIORG 001BH;定时器1溢出中断RETIORG 0023H;外部中断2RETIORG 0100HSTART:MOV R2,

26、#7 MOV A,#0FEH SETB C ;给CY置1LOOP:MOV P1,A LCALL DELAY RLC A ;带进位左移DJNZ R2,LOOP ;R2减1不为0转到LOOPMOV R2,#8 LOOP1:MOV P1,A LCALL DELAYRRC A ;带进位右移DJNZ R2,LOOP1 ;R2减1不为0转到LOOP1LJMP START DELAY:MOV R5,#20;延时0.2秒子程序D1:MOV R6,#20 D2:MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 八、C语言源程序#include unsigne

27、d char i; unsigned char temp; unsigned char a,b; void delay(void) /延时子程序/ unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void) while(1) temp=0xfe; P1=temp; delay(); for(i=1;i8;i+) a=temp(8-i); /向右移8-i位/ P1=a|b; /a或b/ delay(); for(i=1;ii; b=temp(8-i); P1=a|b; delay()

28、; 九、注意事项(1)程序下载到实验板上后,要把8联拨动拨码开关JP4的相应按键合上去。(2)用C语言编写程序,利用左移和右移指令时,移入单元的数为0。(3)在硬件电路中,发光二极管和电源之间必须加上合适的电阻。实验五 查询法设计广告灯一、实验目的1.熟悉广告灯的移动设计。2.掌握查询法在单片机编程中的使用。二、设计原理利用取表的方法,使单片机的P1端口做单一灯的变化:左移2次,右移2次,闪烁2次(间隔的时间为0.2秒)。三、参考电路图5.1 查询设计广告灯电路原理图四、电路硬件说明在“单片机系统”区域中,把单片机的P1.0P1.7端口通过8联拨动拨码开关JP4连接到“八路发光二极管指示模块”

29、区域中的D1D8端口上。要求:P1.0对应D1,P1.1对应D2,P1.7对应D8。五、程序设计内容在利用表格进行程序设计时,要用以下的指令来完成:(1) 利用MOVDPTR,DATA16指令使数据指针寄存器指到数据表格的首地址。(2) 利用MOVCA,ADPTR指令,根据累加器A的值再加上DPTR的值,就可以使程序计数器PC指针指到表格内所需要取出的数据。因此,只要把控制码组建图5.2 查询法设计广告灯流程图成一个表格,利用MOVCA,ADPTR做取控制码的操作,就可方便地处理一些复杂的控制动作。 六、程序流程图(如图5.2所示)七、汇编源程序ORG 0000H;系统复位LJMP START

30、;转入主程序ORG 0003H;外部中断0RETI;中断返回ORG 000BH;定时器0溢出中断RETIORG 0013H;外部中断1RETIORG 001BH;定时器1溢出中断RETIORG 0023H;外部中断2RETIORG 0100HSTART:MOV DPTR, #TABLE ;把表格首地址给DPTRLOOP:CLRA ;A赋0MOVC A,A+DPTR;查表得值送给A中CJNE A,#01H,LOOP1 ;比较A等于#01,程序结束;否则跳转SJMP START LOOP1:MOV P1,A ;把A送入P1口LCALL DELAY1 ;调用延时INC DPTR ;DPTR加1SJM

31、P LOOP DELAY1:MOV R3,#20 ;延时0.2S子程序DELAY:MOV R4,#20 D1:MOV R5,#248 DJNZ R5,$ DJNZ R4,D1 DJNZ R3,DELAY RET TABLE:DB 0FEH,0FDH,0FBH,0F7H ;数据表格DB 0EFH,0DFH,0BFH,07FH DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH DB 07FH,0BFH,0DFH,0EFH DB 0F7H,0FBH,0FDH,0FEH DB 07FH,0BFH,0DFH,0EFH DB 0F7H,0FBH,0FDH,0FEH

32、 DB 00H, 0FFH,00H, 0FFH DB 01H END 八、C语言源程序#include unsignedchar code table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0x00,0xff,0x00,0xff, 0x01;/数据数组/ unsigned char i; /定义全局变量/vo

33、id delay(void) /延时子程序/ unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void) while(1) /循环/ if(tablei!=0x01) /判断是否查完表格/ P1=tablei; i+; delay(); else i=0; 九、注意事项(1)利用C语言编写程序时,一定要注意合局变量和局部变量的定义。(2)利用汇编语言编写程序时,注意16位数据指针DPTR的用法。实验六 报警产生器设计一、实验目的掌握利用单片机产生音频信号的方法。二、设计原理利用单片

34、机产生1KHz的信号,并且让此信号响100ms;再利用单片机产生500Hz的信号,并且让此信号响200ms。同时让这两个信号交替产生。通过单片机的P1.0端口输出1KHz和500Hz的音频信号驱动扬声器,作为报警信号。单片机的 P3.0端口通过8联拨动拨码开关连接一拨动开关(如SW1)进行控制。拨动开关闭合时报警器报警,断开时报警器停止报警。三、参考电路图6.1 报警产生器原理图四、电路硬件说明把单片机的P1.0端口连接到“音频放大模块”区域中的SPK IN端口上;P3.0端口连接到“八路拨动开关”区域中的K1端口上,并在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭。五、程序设计内容500Hz信号周期为2ms,信号电平为每1ms取反1次,1KHz的信号周期为1ms,信号电平每500us取反1次,以此来产生报警信号。六、程序流程图(如图6.2所示)图6.2 报警产生器流程图七、汇编源程序FLAGBIT00HORG0000HLJMPSTARTORG0003HRETIORG000BHRETIORG0013HRETIORG001BHRETIORG0023HRETIORG002BHRETI;主程序;ORG0100HSTART:LCALLBAOJING1LCAL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1