单片机C语言例程模块.pdf

上传人:文*** 文档编号:88048794 上传时间:2023-04-20 格式:PDF 页数:153 大小:16.19MB
返回 下载 相关 举报
单片机C语言例程模块.pdf_第1页
第1页 / 共153页
单片机C语言例程模块.pdf_第2页
第2页 / 共153页
点击查看更多>>
资源描述

《单片机C语言例程模块.pdf》由会员分享,可在线阅读,更多相关《单片机C语言例程模块.pdf(153页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第二章 Keil C软件使用.12第三章 实验及实践课题 .170 1.闪烁灯.170 2.模拟开关灯.200 3.多路开关状态指示.210 4.广告灯的左移右移.23mMB|0 6.报警产生器.2807.0并行口直接驱动LED显示.300 8.按键识别方法之一.3209.一键多功能按键识别技术.3510.0099 计数器.3911.0059秒计时器(利用软件延时).4112.可预置可逆4位计数器.4313.动态数码显示技术.4614.4 X 4矩阵式键盘识别技术.4915.定时计数器T0作定时应用技术一(一).5716.定时计数器T0作定时应用技术(二).6117.9 9秒马表设计.6418

2、.“嘀、嘀、”报警声.6719.“叮咚”门铃.7020.,口 .7321.拉幕式数码显示技术.79.8423.模拟计算器数字输入及显示.9324.8X8 LED点阵显示技术.9925.点阵式LED 0-9 数字显示技术.10226.点阵式LED简单图形显示技术.1077.ADC0809A/D转换器基木应用技术 熟,28.数字电压表.11429.两点间温度控制.11730.四位数数字温度计.12131.6位数显频率计数器.12432.电子密码锁设计.12733.4 X 4键盘及8位数码管显示构成的电子密码锁.13134.带有存储器功能的数字温度计一DS1624技术应用.14()35.DS18B2

3、0数字温度计使用.AT89S51单片机实验及实践系统板简介A T8 9 S 5 1 单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不I司阶层的单片机爱好者及单片机开发者提供不同的开发环境。每个硬件模块介绍如下:1 .继电甥控制模块系统板上提供了 2 路继电器控制模块,分苗在系统板的最左上端区域中,输入信号由R e a l y i n 1 和 R e a l y i n 2 端口输入分别控制两路继电器,继电器控制的信号分别由最上端的两个插针输入和输出。分别称为“c o m l o p e n l s h o r t 1

4、,c o m 2 o p e n 2 s h o r t 2 ,由F 这个两个继电器是单刀单掷控制,当继电器不吸合时,“c o m l”和“s h o r t l”相通,“c o m 2”和“s h o r t 2”相通:当继电器吸合时,“c o m l”和“o p e n l”相通,“c o m 2”和“o p e n 2”相通。其电路原理图1.1 所示。图 1.12 .参考电压源模块在系统板上写有“参考电压源”区域中,是由TL 4 3 1 来完成参考电压的调节,调节范围在0 2.5 0 V 之间;主要为是系统板上需要参考电压芯片或是为外部设备提供参考电压,由V a r V r e f Ou

5、 t 端子输出。其电路原理图如图1.2 所示。图 1.2图 1.33 .三路可调电压模块此模块主要是用于提供0-5 V 之间的可变的模拟电压值,即可以作为参考电压源也可以作为模拟电压信号。这三路是相互独立的。分别对应着由V R 1,V R 2,V R 3 端口输出。具体的电路原理图如图1.3 所示。4 .电源模块电源模块为系统板上其它模块提供+5 V 电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大了 7.5V,交流输入应大于5V,通过78 0 5三端稳压器得到5V 的直流电源供给系统其它模块工作,另一种为从U S B 接口获取+5 V 电源,只要用相应配

6、套的U S B 线从电脑上机获取+5 V 直流电源,在电源模块中加有保护电路,即电路中有短路,不会对78 0 5 9 端稳压器及电脑主机电源有损害!其电路原理图如图1.4 所示.U307305DllVQCJ745.程序下载模块该模块完成源程序代码下载到A T8 9 s 51 或者是A T8 9 s 5 2 芯片中,它需要和微机上的I S P下载器软件配合使用来完成这样的功能。具体的电路原理图如图1.5所示。2051VCC2 0 T19年161514rnrr图 1.56.2 3 2 电平转换模块2 3 2 电平转换采用M A X 2 3 2 芯片把TTL 电平转换成R S-2 3 2 电平格式,

7、可以用于单片机与微机通信,以及单片机与单片机之间的通信,在该系统板上提供了两个D B 9 的接口,其中一个用I S P下载器模块的程序下载接口,称 为“I S P I nt e r f a c e ,另一个接口为单片机与其它具有 R S 2 3 2 接口的通信端口,称 为“C o m m o n Po r t”。具体的电路原理图如图1.6 所示。J67J667.频率产生器模块该模块采用555芯片产生一些连续频率的方波信号,由“W AVE GND”端口输出,其稳定可调的频率范围在5KHz-100KHz之间变化。电路原理图如图L 7所示:系统板上的模数转换模块采用ADC0809芯片,组成8路8位的

8、A/D转换,8路模拟电压的输入由IN 0-IN 7的端口输入,控制ADC0809芯片工作的控制信号由CLK OE EOC ST A2 Al AO”端口输入,转换的数据从DOD7的端口输出。具体的电路原理图如图1.9所示:V r e f InIM7 IN 5 IN4 IN 3 1M2 INI INOADCOgOSiI 26IN-01 Ki im b3-12-2o-21ADTTD7I NK12720AI?D61,ADTD51 iM-1*-5*A18ADCD4INK 228f Kf O4 Ti rM-zo 8ADCD315ADTTD21NK31f KT Q,r14ADCD1 J/f17ADCDO1N

9、 K 42I Kf AJ二。4-。k C L7cIN K S3(N-5Ez1_*1 _A r_ic_ A25ADCAO4IN-6 A D D BA r r-i24ADCA123ADC A 2TNK75IN-7G N DCiZDV L L13A l E.22STA11G N D169OEAC?T-A AT-612yC L O C K.10CLKADCAOJ421A DC Al345678910111213昊口osADCA2STAEQQOEACLK151 0.动态数码显示模块图1.9该系统中采用8位的动态数码显示,控制数码显示的数据由两部分组成,H”端口输入,而控制位显示的控制信号由“S I S

10、2 S 3 S 4 S 5 S 6 S 7的电路原理图如图I.1 0所示:一部分为笔段完灭控制的信号输入由“A B C D E FS 8”端口输入,同时该动态数码显示采用共阴数码管;具日日日日5DU7 V L S N 4 53.八路发光二极管指示模块该模块采用8 个发光:极管作为指示信号作用,即可以用排线来控制,也可以单个地控制每个发光.:极管的亮灭,当控制信号为低电平时,发 光:极管亮,为高电平时,发 光:极熄灭;控制电平的输入由“L 1-L 8”输入。电路原理图如图1.13。14.三八译码模块在系统板上提供了三八译码模块,控制译码器译码信号由“C B A”端口输入,译出的控制信号由“Y0-

11、Y7”输出。电路原理图如图 1.14。15.串并转换模块该系统板上采用了四个74LS164(移位寄存器)作为串并转换模块,这四路串并转换模块已经级连起来。串行数据从“RXD TXD端口输入;具体的电路原理图如图1.15所示。L6 L7 L8K IY 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7J30J23J29J3I图L14图 1.1516.数模转换模块统板上的数模转换模块采用了 8位的D/A转换芯片DAC0832来完成数模转换过程,DAC0832是电流输出型D/A转换芯片,闪此,.接有集成运放LM358来完成电流到电压的转换。其中的数字信号的输入从“DOD7”端口输入,控制DA

12、C0832 1:作的控制信号由“WR CS口输入,模拟量的输出从“AOUT”端口输出,由于LM358工作在双电源条件下,因此要给LM358加入 12V电压,从“+12V GND12V”端口加入。具体的电路原理图如图1.16所示:.12V GND*12V以8(65r4 3t2(lD皿DI wDtDlDlwbb四路拨动开关模块关控制信号由“KI K2 K3 K4”端口输出,具体的电路原理图如图1.17所示:J23图 1.1718 .单片机系统陵系统板上的单片机系统把全部的I/O 端口资源提供出来,因此,在实际应用的时候,可以灵活地组合成不同的单片机应用系统,该单片机采用12 M UZ 晶振,具体的

13、电路原理图如图1.18 所示。19 .分频模块核系统板卜一的分频电路采用2片 7 4 L S7 4(双 D触发器)来完成最大16 分频,输入的时钟信号由“C K I N”端口输入,经 过 2片 7 4 L S7 4分频后的信号分别由“/I /2 /4 /8 /16”端口输出,分别表示未分频,2分频,4分频,8分频,16 分频:具体的电路原理图如图1.19W te M M a I 把 H w E K Q K E-t-8z.au,xc8 2ag,ETS02Y二-_-一定口黄黄i|a2SvI I I I I I I*I MI|I I I 1*I-I-I *%*I f I或 口育二不口 后 S 3 a

14、 NKNa n u|piJ37J80C K NI三I,5 V D Q G N P,5 V S G N D1 2 3图 1.19JYlgG N D,工IgG N PJ49PIN1 PIN2 PINS PIN4 PIN5 PIN6图 1.2113 N 2iii122.独立式键盘模块盘是人机通信不可缺少的部件,独立式键盘是最基本的一种键盘方式,在本系统中提供了四个独立式按键;具体的电路原理图如图1.22示:图 1.2223.4X4行列式键盘模块行列式键盘也即矩阵式键盘,它由行和列组成,在每个行列的交叉点上放置 个按键,这样4X4行列式键盘共需要16个键盘组成:具体的电路原理图如图1.23所示:图 1

15、.2 3为了适应大容量的数据处理的需要,在系统板上加入了 3 2 K B数据存储器(RA M),数据总线从“D O-D 7”的端口愉入,高8 位地址总从“A 8 A 15”端口输入,控制数据存储器的读写控制信号从“A L E C S WR RD”端口输入,具体的电路原理图如图】.2 4 所示:GND U27ocRAMALE 11cJ69ORAMDO 2in i c*7RAMDlon o nRAMD2RAMD34TJ AClARAMD4qn 4 c3RAMD5 7久n A CRAMD67 n i c1RAMD7 98D 8赵ALE CS WR RDJ71RAMCSCON874HC57o765A3

16、21RAMCS 20RAMWR 2719 ADRO-i?18 ADRI 917 ADR216 ADR3 F15 ADRQ y14 ADR5 513 ADR6 F12 ADR7APRS 25ADR9 五ADR1O 21ADR11 23ADR12ADR13 既ADR14-TRAMRD 22RAM 62256-0-0 CE QOWE QIAO Q2A l Q3A2 Q4A3 Q5A4 Q6A5 Q7A6A7A8A9A10A llA12A13AMOE11 RAMDO12 RAMD113 RAMD215 RAMD316 RAMD417 RAMD518 RAMD619 RAMD7A l5 A14 A l3

17、 A12 A li A10 A9 A8图 1.2 4以上是“A T8 9 s 5 1单片机实验及实践系统板”的所有硬件资源简介,通过这2 4 个模块之间的相互组合,可以设计出从基本的单片机系,到复杂的单片机应用控制系统的设计,是初学者对单片机入门和开发不可缺少的过程。第二章 Keil C 软Keil C51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于体,支持汇编,PLM语言和C 语言的程序设计,界面友好,易学易用。下面介绍Keil C51软件的使用方法进 入 Keil C51后,屏幕如下图所示。儿秒钟后出现编辑界Y日SOFTWARE7?ue IntegrationIDE fo

18、rWISQN 圆M icrocontrollerThis program is protected by U.S.and international copyright laws.C51进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧.1)建立一个新工程单击Projcc I 菜单-,在弹出的下拉菜单中选中New Project选项 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Nc Proj t c t.Import

19、 P Vixionl ProjectOpen ProjectClose ProjectPile Rtenhionxz Eoiiks and Envirweiit图 以HO值 修 懊 陋砂 区 地 区I2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51如下图所示,然后点击保存.Create H r Project文件名(X)同|保 存 0)|慢存类5S(I)|Projct F iltt(u2)三J 取消_.I3)这时会弹出 个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用

20、的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.0 定4)完成上步骤后,屏幕如下图所示到现在为止,我们还没有编写一句程序,下而开始编写我们的第 个程序。5)在下图中,单 击“F ile”菜单,再在下拉菜单中单击“New”选项新建文件后屏幕如下图所示此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“F i l e”,在卜挝菜单中选中“S a v e A s”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C

21、语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.a s m)。然后,单 击“保存”按钮。6)回到编辑界面后,单 击“T a rg e t 1”前面的+”号,然 后 在“S o u rce G ro u p 1”上单击右键,弹出如下菜单S e le c t D eviee for Txr-get z Target 1Op 11 ons for Group S o u r s Group 1,3Open FlB*build迳B u ild targetTr-axx*ilate F ileStop IdT7Add F il s to Group,Sourc*Group 1

22、*X arcts,Groups,F ile sRmov Group/Source G rou p and 11*s F il s然后单击 A d d F i l e t o G ro u p *S o u rce G ro u p 1 ,屏幕如下图所示选中Test.c,然后单击Add 屏幕好下图所示注意到Source Group 1”文件夹中多了-个子项Textl.c”了吗?7)现在,请输入如卜.的C语言源程序:ttinclude#include void main(void)包含文件SC0N=0 x52:TM0D=0 x20:THl=0 xf3;TR1=1;此行及以上3行为p rin tf函

23、数所必须printf(Hello I a m KEIL.n);打印程序执行的信息p rin tf(will be your friend.nM);while(1);在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会白动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如F图所示8)在上图中,单 击“P roject”菜单,再在下拉菜单中单击 B u i lt T arg et 选 项(或者使用快捷键F 7),编译成功后?再单击“P roject”菜单,在下拉菜单中单击“S t art/S t op D ebu

24、 g S es s i onM(或者使用快捷键C t rl+F 5),扉幕如卜.所示-101x1口 t&Q (reject g by rt t W kls 工!J C S 也4 4 t f e l pr,:C 5 l M h nt t Z 久 r0 f S X(kt kt Q C 5 lK T-t l e5ASM ASSIGN B reakD isableipnanjECKK T/Lood”C:、WIND0WS、g 3 k to p、xC51、C 5 TF r K 1 1.f rt t t F l9)调试程序:在上图中,单击“D ebu g”菜单,在下拉菜单中单击“G o”选项,(或拧使用快捷

25、键F 5),然后再单击“D ebu g”菜单,下拉菜单中单击“S t op R u nni ng”选 项(或者使用快捷键E s c);再单击 V i ew 菜单,再在下拉菜单中单击*S eri al W i ndow s U 1 选,就可以看到程序运行后的结果,其结果如下图所示%C51-Wision2-S tritl fl,1!X|Edit Erojtci Pt,iphrls 工。ols$M CS&ndsr jlp葡 百H 0 P -值 a|l R B iiiD Command人 Finds Ffes|:|r I;hLocals人Wafch#1 入%h#2入&I曲彳7For Kelp,pres

26、s FlMl-I-至此,我们在Keil C51上做了 个完整工程的全过程。但这只是纯软件的开发过程,如何使用程序下载器看看程序运行的结果呢?0)单 击“Project”菜单,再在下拉菜单中单击“Options for Target?Target 1”在下图中,单击“Output”中单击Create H EX File,选项,使程序编译后产生HEX代码,供下载器软件使用。把程序下载到AT89s51单片机中.第三章实验及实践课题0 1.闪烁灯L实验任务如图4.1.1所示:在 P1.0端口上接一个发光二极管L 1,使U 在不停地一亮一灭,一亮一灭的时间间隔为0.2 秒。2.电路原理图Q H D|8?

27、a8M空出一度姆Z A7A0124507p op op op op op op op oE,sM/a么P 2空P 2P 2窄A近0123.4.5Q711111111ppppppppVCCP 3 O/R X DP 3 i r r x np 3.2/fb r r oP 3 3/lb lT lP 3 4/TOP 3 5/T 1P 3 6A V RP 3.7/R O艮.系统板上硬件连线“单片机系统”区域中的P 1.0端口用导线连接到“八路 发 光:极管指示模块”区域中的L 1端I I上。图4.1.1所示的石英晶体为12M H z,机器周期.程序设计内容(1)延时程序的设计方法为单片机的指令的执行的时间

28、是很短,数最大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?卜面具体介绍其原理:M O V R 6,#20D I:M O V R 7,#248D J N Z R 7,$因此,1个机器周期为1微秒微2个22X 248D J N Z R 6,D I2个2个2个2 X 2 0=4 02+2 X 2 4 8=4 9 810 0 0 2因此,匕面的延时程序时间为10.0 0 2m s 由以上可知,当R 6 =10、R 7=2 4 8时,延时5m s,R 6=20、R 7=2 4 8时,延

29、时10 m s,以此为基本的计时单位。如本实验要求0.2秒=20 0 n)s,0 m s X R 5=20 0 m s,贝lj R 5=2 0,I E L A Y:H:M O VM O VM O VD J N ZD J N ZD J N Z延时子程序如下:R 5,#20R 6,#20R 7,#248:R 7,$:R 6,D 2:R 5.D 1R E T(2)输出控制图4.1.1所示,当P 1.0端口输出高电平,即P 1.0 =1时,根据发光二极管的单向导电性可知,这时发光:极管1熄灭:当P 1.0口输出低电平,即P 1.0=0时,发光二极管L I亮:我们可以使用S E T B P 1.0指令使

30、P 1.0端口输出高电平,使用C L R P 1.0指令使P 1.口输出低电平。.程序框图如图4.1.2所示图 4.1.26 .汇编源程序O R G 0S T A R T:C L R P L 0L C A L L D E L A YS E T B P 1.0L C A L L D E L A YL J M I S T A R TD E L A Y:M O V R 5,#20 ;延时子程序,延时0.2秒D I:M O V R 6,#20D 2:M O V R 7,#248D J N Z R 7,$D J N Z R 6,D 2D J N Z R 5,D 1R E TE N D7 .C语言源程序#

31、i n c l u d e s b i t L l=P r o;v o i d d e l a v 0 2s (v o i d)延时 0.2 秒子程序(u n s i g n e d c h a r i,j,k:f o r(i=20;i 0;i)f o r(j=20;j 0;j)f o r(k=248;k O;k);v o i d m a i n(v o i d)Iw h i l e d)L l=0;d e l a y。2s();延时 0.2 秒L l=l;d e l a y。2s ();延时 0.2 秒0 2.模拟开关灯实验任务如 凶1.2.1所示,监视开关K 1(接在P 3.。端 口 物

32、次 用 发 光:极 管I(接在单.片机P 1.0端口上)显乐开关状态,如果开关分I:,E,开关打开,L 1熄灭。电路原理图g i-q 6 .J 0 6 8、q v y g z 一C -f F y E s -I -E C J C);J -l C 3 C l-:I:1 C-V C C工 40318WOZd6WlZdnd二V/SZdzlv/qzdNdsv/9Nd2wczd此崽TIVcdv/cod9ov/90dcov/codOVGOdgawrodzavNodiov二。doovsodX 2g9mdoeqEdnibHKmdOXXHmdclxwomd3.系统板上硬件连线(1)把“单片机系统”区域中的P L

33、0端口用导线连接到“八路发光二极管指示模块”区域中的1端口上:(2)把“单片机系统”区域中的P 3.0端口用导线连接到“四路拨动开关”区域中的K I端口上;4.程序设计内容(1)开关状态的检测过程对开关状态的检测相对于单片机来说,是从单片机的P 3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K 1拨上去,即输入高电平,相当开关断开,当拨动开关K 1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB B I T,R E L或者是JN BB I T,R E L指令来完成对开关状态的检测即可。(2)输出控制如图3所示,当P I.0端口输出高电平,即P I.0 =1时,根据发光

34、:极管的单向导电性可知,这时发光二极管L 1熄灭;当P 1.0端口输出低电平,即P 1.0=0时,发光二极管I亮;我们可以使用SE T B P 1.0指令使P 1.0端口输出高电平,使用C L R 1 1 0指令使P I.0端口输出低电平。5 .程序框图6.汇编ST AR T:3、4 4-5_火.O R G 0 0 HJB P 3.0,L I GC L R P 1.00 3.多路开关状态指示醺图4.3.1所小,AT89s5 1单片机的Pl.0 Pl.3接四个发光二极管L IL4,PL L P l.7接了四个开关K IK 4,编程将开关的状态反央到发光二极管上。(开关闭合,对应的灯亮,开关断开,

35、对应的灯灭)。.电路原理图D4G NX845Nd2WZZdndZWbZddNdmzduzdNHSdnL2Lod90VqodsovqodxwqodEGVsodZOVNOdIov=odOCWOodcPAVE-X 2gi gcnd囱9EdTDsEdol/Tsd一INSndOI FNUZEdag-mdanVCCT f Y I J图 4.3.13 .系统板上硬件连线(1)把“单片机系统”区域中的P l.O P 1.3用导线连接到“八路 发 光:极管指示模块”区域中的L I L 4端口上;(2)把“单片机系统”区域中的P 1.4-P 1.7用导线连接到“四路拨动开关”区域中的K 1-K 4端口上;4 .程

36、序设计内容(1)开关状态检测对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P l.X,R E L或JN B P l.X,R E L指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用M O V A,P l指令次把P l端口的状态全部读入,然后取高4位的状态来指示。(2)输出控制根据开关的状态,由发光:极管L 1-L 4来指示,我们可以用SE T B PLX和C L R P l.X指令来完成,也可以采用M O V P l,t t llllX X X X B方法一次指示。5 .程序框图读P1 数据到Ac

37、c(Acc内容蒋移4次)Ac c内容与F0H相或Acc内容送入P1 口E N D7.方法一(C语言源程序)#i n c lud e un s i g n e d c h a r t e m p;图 4.3.2voi d m a i n(voi d)(wh i le d)t e m p=P l 4;t e m p=t e m p O x f 0;P l=t e m p;方法二(汇编源程序)O R G O O HAR T:JB P 1.4,N E X T 1C L R P l.OSJM P N E X 1N E X T 2:N E X 2:SE T B P l.OJB P 1.5,N E X T

38、2C L R P L 1SJM P N E X 2SE T B P l.IJB P l.6,N E X T 3C L R P l.2SJM P N E X 3SE T B P l.2JB P 1.7,N E X T 4C L R P l.3SJM P N E X 4SE T B P l.3SJM P ST AR TE N D.方 法 二(C 语i n c lud e voi d m a i n (voi d)(wh i le(l)(i f(P U 5=0)温3i f(P l 7=0)P l_ 3=0;e ls eP l 3=1;广告灯的左移右;单一灯的左移右移,硬件电路如图4.4.1 所示,八

39、个发光二:极管L 1 L 8 分别接在单片机的门.0-P 1.7 接口上,输 出“0”时,发管亮,开始时 P L O-P L I f P 1.2 P L 3 f -P 1.7-P l.6-P L 0 亮,重复循环。.电路原理图vc cVCCQ-lOuF-co TJC 2 zzi=:12MH:P1 0Pl 1P1.2P1.3P1 4P1 5P1 6P1 7P3.O/RXDP3.1/TXDP3 2/fNTOP3 3j0lTfTP3 4/TOP3 5/T1P3 6/WRP3.7/K5-8PO O/ADOPO 1/AD1PO.2/AD2P0.3/AD3PO 4/AD4PO 5/AD5PO 6/AD6P

40、O 7/AD7ALEPSENP2.7/A15P2.6/A14P2 5/A13P2 4/A12P2 3/A11P2 2/A1OP2 1/A9P2.0/A830pFC3邑oGND图 4.4.13.系统板上硬件连线把“单片机系统”M域中的R I.0-P I.7用8芯排线连接到“八路发光二极管指示模块”区域中的L 1-L 8端口上,要求:P 1.0对应着L L P l.1对应着L 2,,P L 7对应着L 8。4.程序设计内容我们可以运用输出端口指令M O V P l,A或M O V P l,#D A T A,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作._每次送出的数据是不同,

41、具体的数据如下表1所示.程序框图如图4.4.2所示.汇编源程序,AR T:O R GMO VMO VSETB CR 2.#8A,#0FEHLO O P:MO V P l,ALCALL DELAYLO O P 1:R LC ADJN Z R 2,LO O PMO V R 2,#8MO V P l,ALCALL DELAYIELAY:U:12:R R C ADJN Z R 2,LO O P 1LJMP STAR TMO V R 5,#20MO V R 6,#20MO V R 7,#248DJN Z R 7,$DJN Z R 6,D2DJN Z R 5,D1R ETEN D;.c语言源程序#incl

42、udeunsignedunsignedunsignedchar i;char temp;char a,b;v oid delay(v oid)unsigned char m,n,s;for(m=20;m0;m-)for(n=20;n0;n-)for(s=248:s0;s-);v oid main(v oid)(w hi le(l).temp=O x fe;P l=temp;delay ();for(i=l;i8;i+)a=temp(8-i);P l=a|b;delay ();Ffor(i=l;i8;i+)a=temp i;b=temp(8-i);P l=a|b;delay ();0 5.广告灯

43、(利用取表方式)利用取表的方法,使端口 P 1 做单一灯的变化:左移2 次,右移2 次,闪烁2 次(延时的时间0.2秒)。:.电路原理图电路如图4.5.1 所示。L 系统板上硬件连线把“单片机系统”区域中的P 1.O-P I.7 用 8 芯排线连接到“八路发光二极管指示模块”区域中向L 1-L 8端口上,要求:P 1.0对应着LI,P l.1 对应着L2,.,P 1.7对应着L8。:.程序设计内容在用发格进行程序设计的时候,要用以下的指令来完成(1)利用MO V DP TR,#DATA16的指令来使数据指针寄存器指到表的开头。(2)利用MO VC A,A+D P T R 的指令,根据累加器的值

44、再加上DP TR 的值,就可以使程序计数器P C指涉表格内所要取出的数据.因此,只要把控制码建成一个表,而利用M OV C 匚,A+D P T R 做取码的操乍,就可方便地处理一些复杂的控制动作,取表过程如卜图所小:OPO 1/AD1PO 2/AD2PO 3/AD3PO.4/AD4PO 5/AD5PO 6/AD6PO 7/AD7A LEPSENP2 7/A 15P2.6/A14P2.5/A13P2 4/A12P2 3/A1 1P2 2/A10P2.1/A9P2 O/A8O3OpF图 4.5.1图 4.5.26.汇编源程序O R G 0STAR T:MO V DP TR,STABLELO O P

45、:CLR AMO VC A,A+DP TRCJN E A,#01H,LO O P 1JMP STAR TLO O P 1:MO V P l,AMO V R 3,#20LCALL DELAYIN C DP TRJMP LO O PDELAY:MO V R 4,#20DI:MO V R 5,#248DJN Z R 5,$DJN Z R 4,D1DJN Z R 3,DELAYR ETTABLE:DB O FEH,O FDH,O FBH,0F7IIDB O EFH,O DFH,O BFH,07F1IDB O FEH,O FDH,O FBH,O F7HDB O EFH,O DEH,O BFH,07FHD

46、B 07FH,O BFH,O DFH,O EEHDB 0F7H,O FBH,O FDH,O FEHDB 07FH,O BFH,O DFH,O EFHDB 0F7H,O FBH,O FDH,O FEHDB O O H,O FFH,0011,O FFHDB 01HEN D7.C语言源程序#include unsigned char code table=O x fe,O x fd,O x fb,0 x f7,O x ef,O x df,O x bf,0 x 7f,O x fe,O x fd,O x fb,0 x f7,O x ef,O x df,O x bf,0 x 7f,0 x 7f,O x b

47、f,O x df,O x ef,0 x f7,O x fb,O x fd,O x fe,0 x 7f,O x bf,O x df,O x ef,0 x f7,O x fb,O x fd,O x fe,0 x 00,O x ff,0 x 00,O x ff,0 x 01;igned char i;)id delay(v oid)Iunsigned char m,n,s;for(m=20;m0;m-)for(n=20;n0:n-)for(s=248;s0;s-);0 6.报警产生器用P l.0输出IKHz和50011Z的音频信号驱动扬声器,作报警信号,要求IKHz开关进行控制,当开关合上响报警信号

48、,当开关断开告警信号停止,编出程序。电路原理图1 0 0 m s,50 0 H z信号响2 0 0 m s,交替进行,P L 7接0uFUIAT89S51i6w-zd2WZZd二VKNdz-vzdc*W9ZdSWCZd31VL2Fs90wodS2一SsKJVodfowodZQWZod【ov=OdoovoodX 2nFE一一HUSEi ezQKCra省oClThr2ddcn dddcn ddco d13.系统板上硬件连线(1)把“单片机系统”区域中的P 1.0端口用导线连接到“音频放大模块”区域中的S P K IN端口上;(2)在“音频放大模块”区域中的S P K O U T端口上接上一个8欧的

49、或者是1 6欧的喇叭;(3)把“单片机系统”区域中的P 1.7/R D端口用导线连接到“四路拨动开关”区域中的K 1端口上;4 .程序设计内容(有问题2 0 0 50 93 0 )50 0 H z信号周期为2 m s,信号电平为每1 m s变反1次,l K H z的信号周期为1 m s,信号电平每50 0 u s变反1次;5.程序框图图 4.6.26 .汇编源程序F L A G B IT O O HO R G O O HS T A R T:JB P l.7,S T A R TJNB F L A G,NE X TMO V R 2,隹D V:C P L P l.0L C A L L D E L Y

50、50 0L C A L L D E L Y50 0D JNZ R 2,lC P L F L A GNE X T:MO V R 2,#:)V1:C P L P l.0L C A L L D E L Y50 0D JNZ R 2,D V1C P L F L A GS JMP S T A R T)E L Y50 0:MO V R 7,#2 50O O P:NO PD JNZ R 7,L O O PR E TE ND7 .C语言源程序#i n c l u d e 4 i n c l u d e bi t f l ag;u n si g n e d c h ar c o u n t;v o i d d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁