资源描述
、刖 B1单片机应用介绍1.1 什么是单片机:将微处理器(CPU)、存储器(ROM和RAM等)、输出/输入口(I/O 口)、定时/计 数器、中断系统等集成在一块集成电路芯片上。称之为单片微型计算机,简称单片 机(MCU)。1.2 单片机的应用领域:目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的 踪迹:导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿 车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子 宠物等等,这些都离不开单片机,更不用说自动控制领域的机器人、智能仪表、医 疗器械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智 能化管理及过程控制等领域,大致可分如下几个范畴:1.2.1在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优 点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功 率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力 等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且 功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波 器,各种分析仪)。1.2.2在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智 能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统 等。1.2.3在家用电器中的应用1可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣 机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八 门,无所不在。1.2.4在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在 计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本 上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通 信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动 通信,无线电对讲机等。1.2.5单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护 仪,超声诊断设备及病床呼叫系统等等。1.2.6在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微 缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原 理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读 出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损 坏、错误率,也方便于更换。1.2.7单片机在汽车设备领域中的应用单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN 总线的汽车发动机智能电子控制器,GPS导航系统,ab s防抱死系统,制动系 统等等。22课程设计目的加深所学知识的应用,帮助学生掌握程序设计的思想和方法,解决实际问题。学生围绕要解决的问题,进行分析和研究,查阅、自学相关的文献资料,确定技术 路线和实施方案,写出课程设计报告,最后进行综合评分。1、使学生增进对单片机的感性认识,加深对单片机原理和接口技术知识的理解。了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为实现单片机应用系 统打下良好基础。2、使学生掌握单片机内部功能模块的应用,如定时器/计数器、中断、片内外 存贮器、I/O 口、串行口通信接口。实现键盘显示、电机控制应用等。3、培养学生根据课题需要选学参考书籍、查阅手册和阅读文献资料的能力;学会 方案论证的比较,拓宽知识而,初步掌握工程设计的基本方法。4、学会软、硬件的设计和凋试方法。培养学生综合运用专业知识,增强分析问题 和解决问题的能力。使学生养成严谨、踏实的工作作风。5、了解与课题有关的硬件元器件使用规范,能按课程设计任务书的要求撰写课程 设计报告,能正确反映设计和实验成果,能绘制正确电路图和流程图。3课程设计内容3.1 基本要求部分3.1.1数码管显示系统:利用动态显示方式实现在数码管上稳定显示0123453.L2步进电机控制系统:通过单片机的I/O 口控制步进电机运转,实现正转和反 转。3.L3直流电机PWM调速系统:利用单片机控制直流电机,掌握脉宽调制直流调 速的方法。通过调节脉冲宽度,改变占空比,从而改变输出,达到改变直流电 机转速的目的。3.2 题目4:点阵LED广告屏设计16X 16 LED点阵由四块8X 8 LED点阵组成。控制点阵的扫描显示,使16X 16LED 点阵循环显示汉字。例如:新年好,同学们好,欢迎您。33.3题目1:数据采集显示系统设计连接A/D转换硬件电路,将ADC单元中提供的0V-5V信号源作为ADC0809的 模拟输入量,在IN O进行A/D转换,转换结果在数码管上进行显示。使用按键输入报警值并在数码管上显示。根据设置的报警值,当采集数据超过报警值,点亮报警灯,并发出声响。3.4 题目7:字符型LCD显示设计在液晶显示器上显示字符串、数字等,并循环动态显示。如显示“Happy ne w ye ar!”按下不同按钮,显示内容改变。3.5 题目13:定时器控制交通指示灯假定A,B两个交通干道交于一个十字路口,A为主干道,B为支干道,A,B干道各 有一组红、黄、绿三色指示灯,指挥行人和车辆的通行。初始状态四个路口都亮红 灯,2s后正常工作。白天工作期间:东西方向为主干道,南北方向为支干道,共有四种状态,东西路口 的绿灯亮,南北路口的红灯亮,东西方向通车。延时5s后东西路口的绿灯熄灭,黄灯闪烁,闪烁若干次后,东西路口的红灯亮,同时南北路口的绿灯亮,南北方向 通车,延时4 s后南北路口的绿灯熄灭,黄灯闪烁若干次后,再切换到东西路口方 向。循环重复上述过程,其状态如表所示。控制状态信号灯状态车道运行状态状态1东西绿灯亮,南北红灯亮,延时5s东西车道路通行,南北车道禁行状态2东西黄灯闪5次,南北红灯亮东西车道路缓行,南北车道禁行状态3东西红灯亮.南北绿灯亮.延时4s东西车道路禁行,南北车道通行状态4东西红灯亮,南北黄灯闪5次东西车道路禁行,南北车道缓行3.6 题目18:生产车间流水线自动控制模拟4模拟生产车间流水线自动控制及产生故障后白动报警停止流水线工作,只要按下按 钮就产生报警信号,排除后继续工作。当SO按下时开始工作,按照一定工序,利用发光二极管DOD7的依次循环点亮 指示工序号位,实现流水线自动控制。按下S1时表示需要处理紧急故障,此时正 在点亮的DOD7对应工序号位常亮,同时在数码管显示对应工序号并发出声音报 警。3.7 题目27:步进电机转速控制系统设计要求能对步进电机实现正、反转及速度控制。依次输出适当的代码,就可让电机正 转或反转。改变每一输出代码的延续时间T,就可以改变电机的转速。采用四个按键来控制步进电机的正转、反转、加速、停止,按键分别为:0#键:作为步进电机正向旋转的启动键,按一次后按指定的速度正向旋转。1#键:作为步进电机反向旋转的启动键,按一次后按指定的速度反向旋转。2#键:加速键,按一次使电机转速提高一倍。3#键:停止键,按一次后,步进电机停止转动。3.8 题目28:简易电梯系统设计用5个键或开关代表15层,点阵显示器显示当前层数。例如电梯停在2层时,按下开关5,点阵显示器滑动显示3,4,5,并保持显示5。再按下开关1,点阵 显示器依次滑动显示4,3,2,1,并保持显示1。3.9 题目24:篮球比赛计分器在篮球比赛过程中,根据比赛得分情况,分别通过3个计分按键进行加分,当前 总分值通过两个数码管显示出来。当比赛队得1分时,按下S1键加1分,得2分 时按下S2键加2分,得3分时按下S3键加3分。如分数计错需减分时.每按一次 S4键减1分。3.10 题目30:计时器系统设计利用单片机的定时器/计数器实现定时,用LED数码管或者LCD1602显示计时的时 间;K1键按下秒计时,再按一下K1键停止计时;K2键按下,时间计时器清零;按键按下时蜂鸣器发声。5目录61数码管显示系统1.1程序功能利用动态显示方式实现在数码管上稳定显示012345L2原理图及参考接线8255可编程外围接口芯片是Inte l公司生产的通用并行I/O接口芯片,它具有 A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0 基本输入/输出方式、方式1-选通输入/输出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图所示,8255工作方式控制字和C 口按位置位/复位控 制字格式如图所示。PA3-PA?-PAJ-UD*C5-L1 401 游 K ni me H1 11g 12S;55 h U KI1 o BM 1,It IS1?14H iW 22 21-TM-?A5-?AA-PA?)-WJt-RESET-DO-Dl-02-DS-04-D5-D6-07V-FBfl一?BS绅-HII图(上)8255内部结构及外部引脚图图(下)8255控制字格式口 的位 L D3D2DI 0 0 0 01 0 0 t 2 0 10)0 t I4 o a 5 i G 1 I 1 01b c rmc fC7键盘扫描及数码管显示单元原理图DID2D3,5D4D5我升机系统总线16D6D7Ao一二feWRc s-PBOB2 55恰元键盘及数玛显示单元A键盘扫描及数码显示接线图81.3程序代码及注释ttinc l ude ttinc l ude ttde fine uc har uns igne d c harttde fine uint uns igne d intvoid de l ay(uint);void dis pl ay(void);uc har dis b uffe r6=5,2,0,5,2,0;/六个数码管分别显示的内容void main(void)X BY T E0 x7f03=0 x80;whil e(1)dis pl ay();)void de l ay(uint i)/延时程序,使数码管的闪烁速度在人眼能看清的范围 内uint j;for(j=0;ji;j+);void dis pl ay(void)数码管显示子程序9uc harc ode val ue 16=0 x3f,0 x06,0 x5b,0 x4 f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;0F 的数码管段码uc har c hoc ode6=Oxfe,Oxfd,Oxfb,0 xf7,Oxe f,Oxdf);uc har i,p,te mp;for(i=0;i6;i+)(p=dis b uffe ri;te mp=c ode val ue p;X BY T E0 x7F01=te mp;te mp=c hoc ode i;X BY T E0 x7f00=te mp;de l ay(20);101.4实验箱硬件连线图及运行结果LCD演事*吊隼七2步进电机控制系统2.1程序功能通过单片机的I/O 口控制步进电机运转,实现正转和反转。2.2原理图及参考接线使用开环控制方式能对步进电机的方向、速度和角度进行调节。所谓步进,就 是指每给步进电机一个递进脉冲,步进电机各绕组的通电顺序就改变一次,即 电机转动一次。根据步进电机控制绕组的多少可以将电机分为三相、四相和五 相。课程设计中所使用的步进电机为四相八拍电机,电压为DC5V,其励磁线圈 及其励磁顺序如图及表所示。图励磁线圈表励磁顺序12345678s+4一一彳一一一2一一一112单片机POOBCD驱动电路步进电机步进电机控制参考线路图表P0端口引脚的电平在各步中的情况步序P0.3P0.2P0.1PO.OP0 口输出值111i00EII211000CI131101GDI I410010911510110BII600110311701110711801100611注意:步进电机在不使用时请断开连接,以免误操作使电机过分发热。2.3程序代码及注释#inc l ude uns igne d c harLval ue 8=OxOe,OxOc,OxOd,0 x09,OxOb,0 x08,0 x07,0 x06;电机旋转对应 的代码void de l ay()延时子程序uns igne d int i;for(i=0;i10000;i+);void main()13uns igne d c har m,n;PO=OxOO;whil e(1)(for(n=0;n12;n+)正转一周for(m=0;m8;m+)|P0=l _val ue m;de l ay();)for(n=0;n0;m一一)(P0=l _val ue m-1;de l ay();142.4实验箱硬件连线图及运行结果153直流电机PWM调速系统3.1程序功能利用单片机控制直流电机,掌握脉宽调制直流调速的方法。通过调节脉冲宽度,改 变占空比,从而改变输出,达到改变直流电机转速的目的。3.2原理图及参考接线直流电机单元由DC12V、1.1W的直流电机、小磁钢、霍尔元件及输出电路构成。PW M的示意图如图所示。通过调节T 1的脉冲宽度,可以改变T 1的占空比,从而 改变输出,达到改变直流电机转速的目的。A_TOSC:定时器TO定时基数T=T_valueXTOSC 周期-:-:-!:-!T1=TRvalueXT0SC 高电平周期PW M脉冲示意图通过单片机的P1.7 口来模拟PW M输出,经过驱动电路来驱动直流电机,实现脉 宽调速。将P1.7直接与驱动电路的A端连接,驱动单元的输出A,连接直流电机 单元的2端。直流电机接线图3.3程序代码及注释ttinc l ude s s t89x5x4.hs b it P1_7=P厂7;从P1.7口输出PW M波16void de l ay(uns igne d int time)延时子程序,延时时间为10ms的整数倍,因此可以实现任意时长延时uns igne d int i;for(i=0;itime;i+)(T Hl=0 xd8;T Ll=0 xf0;whil e(!T Fl);T F1=O;)void main(void)T M0D=0 xl 0;T R1=1;whil e(1)Pl _7=l;de l ay(15);通过改变该传递值来改变转速Pl _7=0;de l ay(2);通过改变该传递值来改变转速)173.4实验箱硬件连线图及运行结果184点阵LED广告屏设计4.1程序功能16X 16 LED点阵由四块8X 8 LED点阵组成。控制点阵的扫描显示,使1 6X 16LED点阵循环显示汉字。例如:新年好,同学们好,欢迎您。4.2原理图及参考接线16X 16 LED点阵由四块8义8 LED点阵组成,如图4-7-1所示,8X 8点阵内部结 构图及外部引脚图如图4-7-2与图4-7-3所示。由图4-7-2可知,当行为“0”,列为“1”,则对应行、列上的LED点亮。汉字显示如图4-7-4所示。-9IJ-1 4-7-1 16X16点阵承*屈 1 1L_E 三=.4-7.3点眸外引 4-7-4 示示例19一nKk*!点阵LED显示雎元行 列 D()DID2D3aD5D6y MCS10CS30oo-o-三 aoO-o o0 12 3 4 5 6 7 R 4 5 6 T 用用 wpflpopopopo6P2P2P2P2系统总线部元点阵显示接线图4.3程序代码及注释ttinc l ude s s t89x5x4.httinc l ude Ab s ac c.httinc l ude hzdotl.httde fine Rowl X BY T EFOxe fOOttde fine Row2 X BY T EOxdfOO20#de fine Col l X BY T EOxb f00ttde fine Col 2 X BY T E0 x7f00void De l ay(void)延时程序uns igne d c har i;for(i=0;i60;i+);)void c l e ar(void)行列复位清零(Rowl 二 0 x00;Row2=0 x00;Col l=Oxff;Col 2=Oxff;void main(void)uns igne d c har Sc an=0 x01,i,j;uns igne d int c ount=0;c l e ar();whil e(1)for(i=0;i50;i+)21for(j=0;j8;j+)Rowl=0 x00;Col l=hzdotc ount;/0-7 列Col 2=hzdotc ount+1;/8-15 列c ount+=2;Rowl=Sc an=De l ay()Sc an;/0一7 行(Sc anl)(Sc an7);/行扫Rowl=0 x00;for(j=0;j8;j+)Row2=0 x00;Col l=hzdotc ount;Col 2=hzdotc ount+1;c ount+=2;Row2=Sc an;/8一15 行Sc an=(Sc an7);De l ay();)Row2=0 x00;c ount-=32;22c ount+=2;if(c ount=(320-32)c ount=0;4.4实验箱硬件连线图及运行结果235数据采集显示系统设计5.1程序功能(1)连接A/D转换硬件电路,将ADC单元中提供的0V5V信号源作为ADC0809的模 拟输入量,在IN O进行A/D转换,转换结果在数码管上进行显示。(2)使用按键输入报警值并在数码管上显示。(3)根据设置的报警值,当采集数据超过报警值,点亮报警灯,并发出声响。5.2原理图及参考接线ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路 开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转 换,在多点巡回检测、过程控制等应用领域中使用非常广泛。表地址信号与选中通道的关系I址选中通道ABc00QINO0o1INI010N201I1N3I00IN41o1INS110IN61i1IN7A/D转换单元原理图nsiL-.二之工24N-22-5一-延WADOOfiO?EDCIN-5ADD-Arv-ALE田二ENABLESTARTCU3CK-24AD的时钟线CLK需要与实验平台中的时钟发生器1MHz相连,使用万用表测量 ADT端的电压值,计算对应的采样值。-IK00。A,D单元DO八 门MOr/HDI 2 t POID:?P02D3 二 P038 丫 丫 PCMAD5?P05D6 X 彳 P06D,g 3 P07U R g g RRD g g RD,BJEOC gjVTI;c_clk?clk 0一“二A/D转换接线图5.3程序说明该程序通过ADC0809进行A/D转换,将结果反映在8个发光二极管模拟的电平上,通过改变电阻值来改变输入量大小。5.4程序代码及注释ttinc l ude s s t89x5x4.httinc l ude ab s ac c.httde fine ST ART AD X BY T E:0 x7f00ttde fine ADRESU LT X BY T E0 x7f08s b it ADBU SY=P33;s b it P32=P3八2;s b it P34=P3M;25void de l ay()uns igne d c har i;for(i=0;i100;i+);uns igne d c har AD0809(void)读取 AD0809 的 A/D 转换值,返回 uns igne d c har 结果uns igne d c har re s ul t;ST ART AD=O;whil e(ADBU SY=1);de l ay();re s ul t=ADRESU LT;re turn re s ul t;void main()uns igne d c har m;uns igne d int i;whil e(1)26m=AD0809();if(m30)下限报警,可将P32,P33 口接指示灯或蜂鸣器(P32=l;for(i=0;i5000;i+);P32=0;for(i=0;i=230)上限报警(P34=l;for(i=0;i5000;i+);P34=0;for(i=0;i=30)&(m=80)&(m=130)&(m=180)&(m0 xff;de l ay();275.5实验箱硬件连线图及运行结果286字符型LCD显示设计6.1程序功能:(1)在液晶显示器上显示字符串、数字等,并循环动态显示。如显示“Happy ne w ye ar!”(2)按下不同按钮,显示内容改变。6.2原理图及参考接线:OOOOOOOOOOOO RSRWEND()DID2D3aD5D6D-LED液晶单元原理图引脚说明1VSS炖信号(0V)三VDD电源信号(5V)3 丁,|LCD驱动电压输(口节显示对比度)_ _4RS数据指勺寄存舞选择RS=。为指令寄存St,RS=I为数据寄存牌5读写信号逸译R W=1为酒信号,R W=U为写信号6E使他信号徒壮志时高电平有我,写状态时下降沿南?t714DBO-DB*数据息线15A变节逸阳世16K而背光阴极29指令名称控制信号控制代铸RSR WD7D6D5D4D3D2D1D0清屏000000000I归HOME位000000001申输入方式设置00000001IDS显示状态设置H0n0UIDCB光标画面滚动000001S/CR/L申申工作方式设置00001DLNFCGRAM地址设置0001A5A4A3A2A1A0DDRAM地址设置001A6A5A4A3A2A1A0读BF和AC值01BFAC6AC5AC4AC3AC2AC1AC0写数据10数据读数据11数据 屏(Clear Display)格式 00 00000 1 代码:01H000()001该指令完成下列功能:将空码(20H)写入DDRAM的全部80个单元内,将地址指针计 数器AC清零,光标或闪烁归HOME位,设置输入方式参数I/D=l,即地址指针AC为 自动加一输入方式。归HOME位格式 00000010 代码:02H该指令将地址指针计数器AC清零。执行该指令的效果有:将光标或闪烁位返回到显 示屏的左上第一字符位上,即DDRAM地址00H单元位置,这是因为光标和闪烁位都是 以地址指针计数器AC当前值定位的。如果画面已滚动,则撤消滚动效果,将画面拉回 到HOME位。输入方式设置(Enter Mode Set)格式|0|0|0|0|0|1|I/D|S|代码:04H07H该指令的功能在于设置了显示字符的输入方式,即在计算机读/写DDRAM或CGRAM 后,地址指针计数器AC的修改方式,反映在显示效果上,当写入一个字符后画面或 光标的移动。该指令的两个参数位I/D和S确定了字符的输入方式。30I/D表示当计算机读/写DDRAM或CGRAM的数据后,地址指针计数器AC的修改方式,由于光标位置也是由AC值确定,所以也是光标移动的方式。I/D=O:AC为减一计数器,光标左移一个字符位。I/D=l:AC为加一计数器,光标右移一个字符位。S表示在写入字符时,是否允许显示画面的滚动s=o:禁止滚动S=l:允许滚动S=1且I/D=O:显示画面向右滚动一个字符S=1且I/D=l:显示画面向左滚动一个字符综合而论,该指令可以实现四种字符的输入方式,见表所示。输入方式指令代码参数状态示例画面不动光标左移04111D=S=O_ieft画面右滚动0511ID=0,S=1_tZshift画面不动光标右移06HI D=l,S=0R_Ri助匚画面左滚动07Hl/D=S=1sShifC显示状态设置(Displa、on/off Control)格式|o|o|o|o|口 代码:0811-OH I0001DCB该指令控制着画面,光标及闪烁的开与关。该指令有三个状态位D、C、B,这三 个状态位分别控制着画面,光标和闪烁的显示状态。D:画面显示状态位。当D=1时为开显示,当D=0时为关显示。主要关显示仅 是画面不出现,而DDRAM内容不变。这与清屏指令截然不同。C:光标显示状态位。当C=1时为光标显示,当c=o时为光标消失。31B:闪烁显示状态位。当B=1时为闪烁启用,当B=0时为闪烁禁止。闪烁是指 一个字符位交替进行正常显示态和全亮显示态。指令代码状态位功能DCB08H 0BHn*关显示0CH100画面显示0D1I101画面,闪烁显示oeh110画面,光标显示0FH111画面,光标,闪烁显示 光标或画面滚动(Cursor Or Di冲同Shift)格式0001S/CR7L00S/C:滚动对象选择。S/C=l:画面滚动;S/C=0:光标滚动。/R/L:滚动方向选择。R/L=l:向右滚动;R/L=0:向左滚动。该指令代码表如下表所示:指令代码状态位功能S CR/L101100光标左滚动I4H1光标右滚动l x|10画面左滚动1CI111画面右滚动工作方式设置(Function Set)格式001DLNF00DL:设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。DL=1:设置数据总线为8位长度,即DB7DB0有效DL=0:设置数据总线为4位长度,即DB7DB4有效。该方式下8位指令代码和数 据将按先高4位后低4位的顺序分两次传输。N:设置显示的字符行数。N=0为一行字符行;N=1为两行字符行。32F:设置显示字符的字体。F=0为5X 7点阵字符体;F=1为5X 10点阵字符体。F字符行数字符体形式占空比系数备注0015X71/80115X101111025X7116仅5X7字体 CGRAM 地址设置(Set CGRAM Address)格式01A5A4A3A2AlAO DDRAM 地址设置(Set DDRAM Address)格式1A6A5A4A3A2AlAO读“忙:“标志和地址指针值(Read Busy Flag and Address)格式BFAC6AC5AC4AC3AC2AC1ACO计算机对指令寄存器通道读操作(RS=0,R/W=l)时,将读出此格式的“忙”标志 BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD4 4 780U读“忙”操 作。BF值反映HD4 4 780U的接口状态。计算机在对HD4 4 780U每次操作时首先都要读 BF值判断HD4 4 780U的当前接口状态,仅有在BF=0时计算机才可以向HD4 4 780U写指 令代码或显示数据和从HD4 4 780U读出显示数据。计算机读出的地址指针计数器AC当前值可能是DDRAM地址也可能是CGRAM的地址,这取决于最近一次计算机向AC写入的是哪类地址。下图:LCD液晶显示接线图*I 2 3 u 5 妁 r s 6 7 ptxpopopopf即 wpoplww系统总线单元0-OCL C D液晶随示单元V D K)“r3u56ns E D D D DD.DDD RRF L2 Jo-o o-o-c cc c_._,_,_ _ _J Jo-o-J l-1-336.3程序代码及注释#inc l ude#inc l ude s b it RSPIN=Pr5;s b it rwpin=pre;s b it EPIN=Pr7;s b it pio=pro;/定义切换显示内容的三个开关s b it pn=pri;/定义切换显示内容的三个开关s b it P12=pr2;定义切换显示内容的三个开关uns igne d c har X POS,Y POS;uns igne d c har Dis T ab l二=Happy N e w Y e ar;不同uns igne d c har Dis T ab 2=Land of Fre e dom;显示uns igne d c har Dis T ab 3=z/Sings hipMic roc ompute r;内容void de l ay(uns igne d int t)延时子程序 uns igne d int i,j;for(i=0;it;i+)for(j=0;j10;j+);void Ic dwaitidl e(void)34 PO=Oxff;RSPIN=O;RW PIN=1;EPIN=1;whil e(P0&0 x80)=0 x80);EPIN=0;void Ic dwc n(uns igne d c har c)RSPIN=0;RW PIN=0;P0=c;EPIN=1;_nop_();EPIN=0;void Ic dwc(uns igne d c har c)Ic dwaitidl e();Ic dwc n(c);void Ic dwd(uns igne d c har d)35 Ic dwaitidl e();RSPIN=1;RW PIN=O;PO=d;EPIN=1;_nop_();EPIN=O;void Ic dpos(void)X P0S&=0 x3f;Y P0S&=0 x03;if(Y P0S=0 x00)Ic dwc(X P0S|0 x80);e l s e if(Y P0S=0 x01)Ic dwc(X P0S+0 x4 0)10 x80);void Ic dinit(void)/LCD使用前的初始化控制字写入 de l ay(50);l c dwc n(0 x38);de l ay(20);Ic dwc n(0 x38);de l ay(20);Ic dwc n(0 x38);36Ic dwc(0 x38);Ic dwc(0 x08);Ic dwc(0 x01);Ic dwc(0 x06);Ic dwc(OxOe);Ic dwc(0 x18);void Dis pl ay(uns igne d c har words l,uns igne d c har words 2)(for(X POS=O;X P0S30;X POS+)Y POS=O;Ic dpos();Ic dwd(words l X POS);Y POS=1;Ic dpos();Ic dwd(words 2X POS);de l ay(1000);)for(X P0S=30;X P0S50;X POS+)Ic dwc(0 x18);Y POS=O;Ic dpos();Ic dwd(words l X POS);Y POS=1;Ic dpos();Ic dwd(words 2X POS);de l ay(2000);)void main(void)(EPIN=0;Ic dinit();37whil e(1)Ic dwc(0 x01);Ic dwc(0 x02);if(P10=l)Dis pl ay(Dis T ab 2,Dis T ab 3);判断不同的开关状态e l s e if(Pl l=l)Dis pl ay(Dis T ab 3,Dis T ab l);分别显示e l s e if(P12=l)Dis pl ay(Dis T ab l,Dis T ab l);不同字符串内容e l s e Dis pl ay(Dis T ab 2,Dis T ab l);没有开关按下时的默认显示值 de l ay(1000);)6.4实验箱硬件连线图及运行结果387定时器控制交通指示灯7.1程序功能假定A,B两个交通干道交于一个十字路口,A为主干道,B为支干道,A,B干道各 有一组红、黄、绿三色指示灯,指挥行人和车辆的通行。初始状态四个路口都亮红 灯,2s后正常工作。白天工作期间:东西方向为主干道,南北方向为支干道,共有四种状态,东西路口 的绿灯亮,南北路口的红灯亮,东西方向通车。延时5s后东西路口的绿灯熄灭,黄灯闪烁,闪烁若干次后,东西路口的红灯亮,同时南北路口的绿灯亮,南北方向 通车,延时4 s后南北路口的绿灯熄灭,黄灯闪烁若干次后,再切换到东西路口方 向。循环重复上述过程,其状态如表所示。控制状态信号灯状态车道运行状态状态1东西绿灯亮,南北红灯 亮,延时5S东西车道路通行,南北车道禁行状态2东西黄灯闪5次,南北红灯亮东西车道路缓行,南北车道禁行状态3东西红灯亮.南北绿灯亮.延时4s东西车道路禁行,南北车道通行状态4东西红灯亮,南北黄灯闪5次东西车道路禁行,南北车道缓行7.2原理图及参考接线单片机Pl,P0 口分别接8个发光二极管。7.3程序功能说明该程序用P0和P1 口分别接6个发光二极管来模拟东西南北四个方向的交通灯,用 定时器T 1来进行延时。7.4程序代码及注释ttinc l ude s s t89x5x4.httde fine gre e n 0 x22 分别设定红黄绿三灯所对应的P0,Pl 口的值39#de fine ye l l ow 0 x4 4#de fine re d 0 x88void de l ay(uns igne d int time)/延时程序,延时时间为50ms的整数倍,通过 传递变量的值可实现任意秒计时uns igne d int i;for(i=0;itime;i+)T Hl=0 x3c;T Ll=0 xb 0;whil e(!T Fl);T F1=O;)void main(void)uns igne d int i;Pl=0;P0=0;T M0D=0 xl 0;T R1=1;40whil e(1)Pl=gre e n;PO=re d;de l ay(100);for(i=0;i0;de l ay(10);Pl=re d;P0=gre e n;de l ay(80);for(i=0;i5;i+)黄灯闪烁程序段,下同(P0=ye l l ow;de l ay(10);41P0=0;de l ay(10);7.5实验箱硬件连线图及运行结果428生产车间流水线自动控制模拟8.1程序功能模拟生产车间流水线自动控制及产生故障后白动报警停止流水线工作,只要按下按 钮就产生报警信号,排除后继续工作。当SO按下时开始工作,按照一定工序,利用发光二极管DOD7的依次循环点亮指 示工序号位,实现流水线自动控制。按下S1时表示需要处理紧急故障,此时正在 点亮的DOD7对应工序号位常亮,同时在数码管显示对应工序号并发出声音报 警。8.2原理图及参考接线唯片机系统总线B2 55慎元谯盘及数玛显示单元键盘扫描及数码显示接线图-XI PI 制片机SPK电子发声敬元电子发生单元接线图另将P1 口接8个发光二极管,用以模拟流水线上的工件。438.3程序说明该程序用8个发光二极管循环点亮表示流水线上的工件,同时在数码管上显示当前 的工件号,用两个开关KI,K2实现SO,S1的功能,报警用另一个发光二极管的闪 烁或声音报警实现。8.4程序代码及注释ttinc l ude s s t89x5x4.httinc l ude intrins.httinc l ude ab s ac c.hs b it P3_2=P3-2;流水线工作开始开关s b it P3_3=P3-3;紧急情况时的停止按钮s b it P3_4=P3M;报警输出口,输出不同频率方波,可接发光二极管或蜂鸣器uns igne d c har dis b uffe r 6=0,0,0,0,0,0;void de l ay(uns igne d int time)延时子程序,延时时长为50ms的整数倍(uns igne d int i;for(i=0;itime;i+)T Hl=0 x3c;T Ll=0 xb 0;whil e(!T Fl);44T F1=O;)void de l ay2(uns igne d int i)数码管显示延时,消除闪烁uns igne d int j;for(j=0;j8)|(Pl=0)保持 Pl 口从 1 号工件开始循环if(fl ag=l)Pl=0 x01;/并且标志变量fl ag能循环显示
展开阅读全文