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

上传人:文*** 文档编号:83245220 上传时间:2023-03-29 格式:DOCX 页数:159 大小:6.34MB
返回 下载 相关 举报
单片机C语言例程模块.docx_第1页
第1页 / 共159页
单片机C语言例程模块.docx_第2页
第2页 / 共159页
点击查看更多>>
资源描述

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

1、第二章 Keil C软件使用第三章实验及实践课题AT89S51单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者及单片机开发者提供不同的开发环境。每个硬件模块介绍如下:1 .继电器控制模块系统板上提供了2路继电器控制模块,分布在系统板的最左上端区域中,输入信号由Realy in 1和Realy in 2端口输入分别控制两路继电器,继电器控制的信号分别由最上端的两个插针输入和输出。分别称为“coml openl short 1, ucom2 open2 short2,由于这个两个继电器是单刀单掷控制,当

2、继电器不吸合时,“coml”和“short一相通,“com2”和“short2”相通;当继电器吸合时,coml和“openl”相通,“com2”和“open2H相通。其电路原理图1.1所示。图1.12 .参考电压舞喇在系统板匕写有“参考电压源”区域中,是由TL431来完成参考电压的调节,调节范围在。一2.50V之间;1:要为是系统板上需要参考电压芯片或是为外部设备提供参考电压,由Var Vref Out端口输出。其电路原理图如图1.2所示。VUCVUCVCT?图1.2图1.33 .三路可调电压模块此模块主要是用厂提供0-5V之间的可变的模拟电压值,即可以作为参考电压源也可以作为模拟电压信号。这

3、三路是相用独立的。分别对应着由VR1, VR2, VR3端口输出。具体的电路原理图如图1.3所示。4 .电源模块电源模块为系统板上其它模块提供+5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,宜流输入应大F7.5V,交流输入应大F5V,通过7805三端稳压器得到5V的直流电源供给系统其它模块工作,另种为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V宜流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害!其电路原理图如图1.4所示.IS -13J7S5 .程序下载模块该模块完成源程序代码下载到AT8

4、9S51或者是AT89S52芯片中,它需要和微机上的ISP下载器软件配合使用来完成这样的功能。具体的电路原理图如图1.5所示。vccC12I . 2J 定IOuF10KZJ|gnd U26RXC2TXC311.0592MHz焉)43工至ToRST VCCP3.0/RXP1.7P3.1/TXP1.6X2 XIGNDi 2051 C15VCC |111 GND10412I11IN4148UL1Pl.5 Pl.4VCC20TP3.2/TT0P1.3P33,TTI PI.2P3.4b0 Pl.lP3.5rri pi.oGND P3.7BMIOuFVCCIOuFogndi ju; 110?GND U24

5、J67 ConimcMi PortJ66ISP Interface2_5支7T2O T2INR2IN R2OMAX232vcc GND T1O RUN RIOT1IN| VCC Ygnd 忒 RXD TXDTXC- RXCTXD RXD6 .232电平转换模块232电平转换采用MAX232芯片把TTL电平转换成RS-232电平格式,可以用于单片机与微机通信,以及单片机与单片机之间的通信,在系统板上提供了两个DB9的接口,其中一个用ISP下载器模块的程序下载接口,称为“ISP Interface”,另个接口为单片机与其它仃RS232接口的通信端口,称为Common Port。具体的电路原理图如图

6、1.6所示。7 .频率产生器模块该模块采用555芯片产生一些连续频率的方波信号,由“AVE GND”端口输出,其稳定可调的频率范闱在5KHz-100KHz之间变化。电路原理图如图1.7所示:VCC该音频放大模块采用LM386芯片作为音频的功率放大,音频信号由“SPK IN”端口输入,信号的输出由“SPK OUT”端口输出,只要在“SPK om”接一个喇叭即可。具体的电路原理图如图L 8所示:9.模数转换模块系统板上的模数转换模块采用ADC0809芯片,组成8路8位的A/D转换,8路模拟电压的输入由IN0-IN7的端口输入,控制ADC0809芯片工作的控制信号由“CLK OE EOC ST A2

7、 Al A0”端口输入,转换的数据从DO-D7的端口输出。具体的电路原理图如图1.9所示:IIN-0 msb2l 2-2IN.12-32-4IN*22-52-6IN 32 7lsb2-8IN-4 EOCIN-5ADD-A IN 6 ADD B ADD-C IN 7 GND ALE VCC reE)NABLE START r-LOCK .21ADCD7INK1 2720ADCDll19ADCD5INK2 2818ADTD48ADCD3INK3 115ADCD214ADCD1INK4 217Apcno7 EOCINKS 325ADC AOINK6 424ADCA1TNK7 323ADCA222JS

8、TAOND vcc ONO13119OBA16o12toCLKADCAO1 2 3 4ADCA1ADCA2STA6 7明KQC8 QO1 n*OEA11oa NGLK Q141516港J42该系统中采用8位的动态数码显示,控制数码显示的数据由两部分组成,一部分为笔段亮灭控制的信号输入由“A B C D E F H”端口输入,而控制位显示的控制信号由“SI S2 S3 S4 S5 S6 S7 S8”端LI输入,同时该动态数码显示采用共阴数码管;具的电路原理图如图1.10所示:货6占匕司qqqqc - V 1 M74LS245巴11.四路静态数码显示模块在该模块中,每一路端口对应着 个具体的数码管

9、Z d,具体的电路原理图如图1.11所示:U|t-86C_IU-46一II7C lC 7me-c-白tjiL-3c|5cSB3C3C3B303E3k1 -12 X图i.n12 .8X8点阵模块该系统板上提供了8X8点阵模块,用f理解单片机是如何控制点阵数码管的I:作过程,它行两个输入控制端II,对卜点阵数码管有行和列之分,这两个端口分别控制它们的行和列,“DR1DR8”为8X8点阵模块的行信号控制端II,“DC1DC8”为8X8点阵模块的列信号控制端口。具体的电路原理图如图L 12所示。KE工 WKEZ 及慕3 ,KB 4KHD 6. C 7KB 7 X kua q7。LS 24 5O 123

10、 A 567BBBDBBBBCON8iaVUU5X7 KA231 C K A W A 15 KA4匚 c 1, KAS /12 KA7 8 11 KA8 9R.1222Ivcc sou|ONP图1.1213 .八路发光二极管指示模块该模块采用8个发光二极管作为指示信号作用,即可以用排线来控制,也可以单个地控制每个发光:极管的亮火,巧控制信号为低电平时,发光:极管亮,为高电平时,发光:极熄灭;控制电平的输入由“L1-L8”输入。电路原理图如图1.13.14 .三八译码模块/I系统板上提供了三八译码模块,控制译码器译码信号由“C B A”端LJ输入,译出的控制信号由“Y0-Y7”输出。电路原理图如

11、图1.14.15 .串并转换模块该系统板上采用了四个74LS164(移位寄存器)作为串并转换模块,这四路串并转换模块e经级连起来。串行数据从“RXD TXD”端口输入:具体的电路原理图如图1.15所示。1uF11uF22uE33A B CVY V YV V V YO 1 2 3E E E1234 56 7-15尸F114FF2:13FF312FF411FF5:1OFp69EF77pp8Y0Y1Y2Y3Y4Y5Y6Y7J23J29J30J31三三二4: * 1 L: -5 V 4 6 丐、J36COM316 .数模转换模块系统板上的数模转换模块采用了8位的D/A转换芯片DAC0832来完成数模转

12、换过程,DAC0832是电流输出型D/A转换芯片,因此,后接有集成运放LM358来完成电流到电压的转换。其中的数字信号的输入从“D0-D7”端口输入,控制DAC0832工作的控制信号由“WR CS 口输入,模拟量的输出从“AOUV端口输出,由于LM358工作在双电源条件下,因此要给LM358加入土12V电压,从“+12V GND -12V端口加入。具体的电路原理图如图1.16所示:IZV GND 412V图 1. 16s 2SS2SE0A17 .四路拨动开关模块开关控制信号由“KI K2 K3 K4”端口输出,具体的电路原理图如图1.17所示:J23VCC GNDVCC GNDVCC GNDV

13、CC GND二s该系统板上的单片机系统把今部的1/0端口资源提供出来,因此,在实际应用的时候,可以灵活地组合成不同的单片机应用系统,该单片机采用12MHz晶振,具体的电路原理图如图1.18所示。19 .分频模块舞系统板上的分频电路采用2片741574(双D触发器)来完成最大16分频,输入的时钟信号由CK IN端口输入,经过2片74LS74分频后的信号分别由“/I /2/4/8/16”端口输出,分别衣小束分频,2分频,4分频,8分频,16分频;具体的电路原理图如图1.19sgaUIo足总爱gig运在主4二:AU11BKUA3 CLKe74ts74B q2D RCLK6Ut2AU12B6 Q D图

14、11920 .四路单总线模块适应新技术的需要,增加l-Wire总线接口,在本系统板上提供了四路l-Wire的线接I I,数据传输通过“DQ1 DQ2 DQ3 DQ4”端口来完成;具体的电路原理图如图1.20所示:,厂、,,WSGNDDQGND,土SGND豳图21.二线总线模块(Il总线)为了适应新技术的需要,增加了 2路12c总线接口,适用8脚的1口总线芯片,左边的“PIN1 PIN2 PIN3 PIN4 连接,右边的“PIN1 P1N2 PIN3 P1N4 P1N5 PIN6”与F面的接口连接;具体的电路原理图如图1.21所示:PIN5 PIN6与上面的接口J49PN PIN2 PIN3 P

15、IN4 PN PIN6图 L2122 .独立式键盘模块键盘是人机通信不可缺少的部件,独信式键盘是最基本的一种键盘方式,在本系统中提供了四个独立式按键;具体的电路原理图如图L22所示:图1.2223 .4X4行列式键盘模块行列式键盘也即矩阵式键盘,它由行和列组成,在每个行列的交叉点上放置一个按键,这样4X4行列式键盘共需要16个键盘组成:具体的电路原理图如图1.23所示:SI!S3图L霸24. 32KB为了适应大容量的数据处理的需要,在系统板上加入了 32KB数据存储器(RAM),数据总线从“D0-D7”的端口输入,高8线从“A8-A15”端口输入,位地址总控制数据存储器的读写控制信号从“ALE

16、 CS WR RD”端口输入,具体的电路原理图如图1.24所示:GNDU27J69OC cJ7120RAMCS87 65 43RAMDO2RAMD13RAMD24RAMD35RAMD46RAML57RAMD68RAMD7RAMALE 11ID 2D 3D 4D 5D 6D 7D 8D1Q2Q3Q4Q5Q6Q1918ADRI917ADR2816ADR3715ADR4614ADR5513ADR6A12ADR73RAMWR 27CON88765432ADR825ADR924ADR1021ADR1123ADR122ADR1326ADR141RAMRD 22RAMCSA15 A14 A13 A12 A1

17、1 A10 A9 A8 CE WEQ0Q1Q4Q5Q6C7OERAM 6225611 RAMD012 RAMD113 RAMD215 RAMD316 RAMD4RAMD518 RAMD6 )RAMD7图1.24以上是“AT89s51单片机实验及实践系统板”的所有硬件资源简介,通过这24个模块之间的相”.组合,可以设计出从胜本的单片,统到复杂的单片机应用控制系统的设计,是初学者对单片机入门和开发不可缺少的过程。第二章KeilKeil C51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真丁体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。卜.面介绍Keil C51软件的

18、使用方法进入Keil C51后,屏幕如下图所示.几秒钟后出现编辑界KEIL.SOFTWARE7?ue IntegrationIDE foruVISIONMicrocontrollerThis program is protected by U.S. and international copyright laws.1I 19启动Keil C51时的屏幕进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的底木使用方法和基本的调试技巧。1)建立一个新工程单击印力”,在弹出的下拉菜单中

19、选中New Project选项File dit Vitw project Dbu Peripherals 工oohlindo*w ProjectI*port M Vxionl Project Qpn Project Close ProjectFile Exteniioxiz Bocka end Eaviroisnent2)然后选择你要保存的路径,输入匚程文件的名字,比如保存到C51目录里,I:程文件的名字为C51如下图所示,然后点击保存.文怦名)保存类也I)Filttto国T*rc | | R BwH Xdommand 入 And r Fies /5)在下图中再在下拉菜单中单击ErojtciP

20、eripheralsWindow、冷聃CtrlWCtrlfSATSTPSI KTBTP51K AWP52 AT89C105I AT99C105IU AT9VC20S1 ATB9C4O51 ATS9csi4)完成上一步骤后,屏幕如下图所示;为止,我们还没仃编写句程序,F面开始编写我们的第个程序.3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机务 这里还是以大家用的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定Project3此时光标在编辑窗口里闪烁,

21、这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下书菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm).然后,单击“保存”按钮。保存在(X):| tC513凶三一直呼应P保存取消%gC51.plg jac5i文件名堡):|Textl. c|保存类型复):|A11 Files (*.*)6)回到编辑界面后,单击MTarget 1前面的+”号,然后在Source Group 1”

22、上单击右键,弹出如下菜单& C YIHDOVSD*ktopC51TxtlQpn File build tarct guild tarct Translate File K Stop bildSelect Devxce for Target , Target 1Op11ons for Group Sourc, Group 1然后单击Add File to Group * Source Group 1”屏幕如下图所示Add Files to Group 1 Source Group 1a凶 三一回呼应b查找范围支):16c51Close文件名国):|Textl文件类型复):|C Source fi

23、le (*. c)选中Test. c,然后单击“Add ”屏幕好下图所示LI CIMH注意到“Source Group 1”文件夹中多了一个子项“Textl.c”了吗?子项的多少与所增加的源程序的多少相同7)现在,请输入如卜的C语言源程序:ttinclude include void ma in(void)SCON=Ox52;TMOD=0x20;THl=0xf3;TR1=1;此行及以上3行为printf函数所必须printf( MHello I am KEIL.n);打印程序执行的信息printf( will be your friend.nM );while(l);在输入上述程序时,读者已经

24、看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如F图所示1*1. gt bojtct gVoc Fipbrals lls JVCS faniov国东。匕:二二h 47:6恒昌由购e命-a-:J Xz I- _3 Sc Gre I2 T1U c77KF7#/9 耻 B4S2;E420:Hll-hct3:mijtt,及以上所延立如inctrsa”。i - mi. urjj ,用*18甲收行船1tgt(r will be youc tciaad. n*);Fw Kal|, *rt F

25、l4:| ll I BuM卜 CcrrtMi人 AndoFfes /Fr N1丸8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击 Projectw菜单,在F拉菜单中单击aStart/Stop Debug Session M (或者使用快捷键Ctrl+F5),屏幕如卜.所示向no0 e -_ a,1,*r0& tn is b r 89S U O tH (?11。森差役母0修口*;0include loclude void Min(void)9)调试程序:在图中,单击“Debug”菜单,在下拉菜单中单击“Go”选

26、项,(或者使用快捷键F5),然后再单击“1)(山菜中,在下拉菜单中单击“Stop Runningw选项(或者使用快捷键Esc);再单击View”菜单,再在下拉菜单中单击44Serial Windows #1w选项,就可以看到程序运行后的结果,其结果如下图所示-101x1,d哪C51 - Wnion2 - Stritl SiHello I am KEIL.I will be your friend.IdFor prss Flxia5 A 10)单击“Project”菜单,再在下拉菜单中单击“Options for Target / Target T”在下图中,单击“Output”中单击Creat

27、e HEX File选项,使程序编译后产生HEX代码,供下载器软件使用。把程序下载到AT89S51单片机中。至此,我们 Keil C51上做/个完整I的全过程.但冠乂是娅软件的”:质过程,如彳F的i丽序下载器看行程庠运行的结果呢?第三章实验及实践课题及任务L如图4.1.1所示,在P1.0端口上接一个发光二极管LL使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒.2 .电路原理图3 .系统板上硬件连线4 .程序设计内容1580123:.6.7PPPPPPPP8防川8M 盆r7 ZAZA发优ZAZA O12X45C7 P1P1P1PIP1PP p543210985差力弱222222PPPPFP

28、hp“单片机系统”区域中的PLO端口用导线连接到“八路发光:极管指示模块”区域中的L1端【上。(1)延时程序的设计方法为单片机的指令的执行的时间是很短,数最大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相时于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?卜面具体介绍其原理:图4.1.1所示的石英晶体为12MHz,机器周期因此,1个机器周期为1MOV R6,#20DI:MOV R7,#248DJNZ R7,$DJNZ R6,D12个2X2482个2X20=402+2X248=498因此,上面的延时程序时间为10.002ms。由以上

29、可知,当R6=10、R7=248时,延时5ms, R6=20、R7=248时,延时10ms,以此为法本的计时单位。如本实验要求0.2秒=200ms,10ms XR5=200ms,则R5=20,延时子程序如下:MOV IMOV IMOV IDJNZDJNZR5,#20R6,#20 R7,#248:R7,$:R6.D2DJNZ R5,D1RET前出控制图4.1.1所示,当Pl.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管1熄火;节P1.口输出低电平,即PL 0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使PL0端口输出高电平,使用CLR P1.

30、0指令使P1J 口输出低电平。如图4. L 2所示.程序框图sbit Ll=Pro;void delay02s(void)延时0.2秒子程序unsigned char i,j,k;for(i=20;i0;i-)for(j=20;j0;j)for(k=248;k0;k-);void main(void)(whiled)(Ll=0;delay02s();延时0.2秒Ll=l;delay。2s();延时0.2秒02.模拟开关灯图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机PL0端口上)显示开关状态,如果开关合上,1亮,开关打开,L1熄灭。.电路原理图62 r- u

31、-y , j ,=6X)i、q y s i)rc。yk E rr,F , E C J- J:111C J C )71: I.* J:X28 WO Zd md 6 VHzd m9 md sVRZd Il/smd 二 V/Zd 01/qEd nd mn/ESd m【VKZdPWK 9 nd GxlHmd nd oxwomd maHTVCOV/C od L -d 90v/9od 9 Id cov/sod Sid OVGOdgovEod Es ZGVK Od Z -d 一 ovlod lid oava od OS cb T VCEARSTVCC-4。31图 4. 2. 13 .系统板上硬件连线(1)把

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

33、发光二极管的单向导电性可知,这时发光二极管L1熄灭:当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。5 .程序框图图4.2.26 .汇编源程序ORG 00HSTART:JB P3.0, LIGCLR Pl.0SJMP LIG:SETB Pl.SJMP START END7 . C语言源程序#include sbit Kl=P3-0;sbit Li=pro; void main(void)(while (1)if(Kl=0) Ll=0;else /Kl=lLl=l; I)灯

34、亮/灯灭大循环使返回到前曲的语句执行如图4. 3.1所示,AT89s51单片机的P1.0P1.3接四个发光二极管L1-L4, P1.4P1.7接了四个开关K1-K4,编程将开关的状态反 映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。2.电路原理图VCCNDxl G8W0 Zd 6s IZd 2WZ Zd 二WE Nd ZW Nd d Nd : W9Zd n N2Sd L2F od 9ov、90d Savs od s od mav/s od ZOVNdd mod oav/o od4020遑L Cd 由岁9 EdEd 01/PGd UHl/c RN1/Z Ed axL/一 Gd

35、 anB4.3J3 .系统板上硬件连线(1)把“单片机系统”区域中的P1.0P1.3用导线连接到“八路发光.极管指示模块”区域中的L1L4端口上;(2)把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上:4 .程序设计内容(1)开关状态检测对r开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB Pl.X, REL或JNB Pl.X, REL指令来完成:也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A, Pl指令次把Pl端口的状态全部读入,然后取高4位的状态来指示。

36、(2)输出控制根据开关的状态,由发光:极管L1-L4来指示,我们可以用SETB P1.X和CLR PLX指令来完成,也可以采用MOV Pl,#11UXXXXB 方法一次指示.5 .程序框图ORG 00HSTART: MOV A,PlANL A,#OFOH RR A RR A RR A RR AXOR A,#OFOHMOV Pl, A SJMP START END7 .方法一(C语言源程序)#include unsigned char temp;void main (void)whi le (1)Itemp=Pl4;temp=temp I OxfO;Pl=temp;ORG OOH START:

37、JB P1.4.NEXT1CLR Pl.OSJMP NEX1NEXT1:SETB Pl.ONEX1:JB P1.5.NEXT2CLR PL 1SJMP XEX2NEXT2:SETB Pl.1NEX2:JB P1.6.NEXT3CLR PL 2SJMP NEX3NEXT3:SETB Pl.2NEX3:JB P1.7.NEXT4CLR Pl.3 SJMP NEX4 SETB Pl.3 SJMP START END二(C e void main (void)while (1)if(Pl 4=0)P1 O=O;elseP1 O=1;if(Pl_5-0)elsePl_2=l;_if(Pl_7=0)一Pl

38、 3=0;elsePl_3=l;一I,1 .实验任务做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发极 ,I 始时l-*PL2fPl.3fPL7fPL6-4L0亮,重复循环。2 .电路原理图R210K6VCC i-Lt1cllOuF后tsP10PO O/ADOP1】PO 1/ADlP1.2PO.2/AD2P13PO.3/AD3P14PO 4/AD4P15PO 5/AD5P16PO 6/AD6P17PO 7/AD7ALEPSENP3 O/RXDP2.7/A15P31/TXDP2.6/A14P324NT0P25/A1

39、3P33/INT1P24/A12P34/T0P23/Al 1P3 srriP22/A1OP36AVRP21/A9P37/RDP2.O/A8艮O及Ooo3OpF30*n 4.4. iGND3 .系统板上硬件连线把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光:极管指示模块”区域中的域一18端口上,要求:P1.0对应着LL P1.1对应着L2,,P1.7对应着L8。4 .程序设计内容们可以运用输H1端U指令MOV Pl, A或MOV Pl,-DATA,只要给累加器值或常数值,然后执行I:述的指令,即可达到输出控制的动作。每次送出的数据是不同,具体的数据如下表所5 .程序框图如图

40、4.4.2所示6 .汇编源程序START:ORG 0MOV R2,#8MOV A,#OFEHSETB CLOOP:MOV Pl, A LCALL DELAYRLC ALOOP1:DJNZ R2 MOV R2, MOV Pl,D2:LCALL DELAY RRC ADJNZ R2,LOOP1 LJMP STARTMOV R5,#20 MOV R6,#20 MOV R7,#248 DJNZ R7,$DJNZ R6,D2 DJNZ R5,D1 RETENDr. c语言源程序ude igned signed igned char i; char temp; char a, b;d delay(void)unsigned char m,n,s;for(m=20;m0;m-) for(n=20;n0;n-) for(s=248:s0;s-);1void main(void)while (1)temp=0xfe;Pl=temp; delay ();for(i=l;i8;i+)a=tempi;b=temp(8i);Pl=a|b;delay ();for(i=l;i8;i+)(a=tempi;b=temp(8-i);Pl=a|b:delay ();.广告灯(利用取表方式)用取表的方法,使端DP

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

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

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

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