《单片机技术交通灯.ppt》由会员分享,可在线阅读,更多相关《单片机技术交通灯.ppt(37页珍藏版)》请在第壹文秘上搜索。
1、单片机技术单片机技术制作任务制作任务十字路口交通灯的设计要求:十字路口交通灯的设计要求: 1、用、用4个发光二极管模拟十字路口交通灯的东西和个发光二极管模拟十字路口交通灯的东西和南北向的红、绿灯。用一个南北向的红、绿灯。用一个LED数码管模拟倒计时显示。数码管模拟倒计时显示。 2、当东西方向红灯亮时,南北方向绿灯亮。当东、当东西方向红灯亮时,南北方向绿灯亮。当东西方向绿灯亮时,南北方向红灯亮。每隔西方向绿灯亮时,南北方向红灯亮。每隔5秒进行切换,秒进行切换,由由LED数码管从数码管从5倒计时显示。倒计时显示。电路原理图电路原理图 十字交通灯工作表十字交通灯工作表 端口端口P1.7P1.7P1.
2、6P1.6P1.5P1.5P1.4P1.4P1.3P1.3P1.2P1.2P1.1P1.1P1.0P1.0P1P1状态状态悬空悬空悬空悬空东西红东西绿南北绿南北红码值STATE0STATE1STATE2显示器接口技术显示器接口技术显示器分类LED LCD 点阵显示器点阵显示器 LED显示器原理a ab bc cd de ef fg gdpdp共阴极共阴极共阳极共阳极cdedp12345678910a bfgcomcomabcefabcdefgdpcomcomLED显示字形码表显示字符共阳极码共阴极码显示字符共阳极码共阴极码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB
3、83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H“灭”FFH00H880H7FHLED显示方式 静态显示静态显示动态显示动态显示并口静态显示并口静态显示串口静态显示串口静态显示显示亮度强,无闪烁占用I/O资源较多所有LED的段选线共同连接在一起共用一个 8位I/O口,而每个LED的位选分别由一根相应的I/O口线控制。问题引入: LEDLED显示器如何显示出指定数字显示器如何显示出指定数字/ /字符?字符?comcomMCS-51单片机abfcgdeDPY1234567abcdefg8dpdp P1.0P1
4、.1P1.2P1.3P1.4P1.5P1.6P1.7 P3.3 5V5108模拟产品计数显示电路模拟产品计数显示电路 编程编程 MOVP1,#0C0H;数码管显示;数码管显示0MOVP1,#0F9H;数码管显示;数码管显示1MOVP1,#0A4H;数码管显示;数码管显示2MOVP1,#0B0H;数码管显示;数码管显示3串口静态显示串口静态显示8155动态显示动态显示单片机与LCD接 口 设 计一、字符型LCD模块Shenzhen PolytechnicvLCD实验模块的连接管脚1 2 3 4 5 6 7 8 910111213141516 12345678910111213141516VSS
5、VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块模块Vss: +5V电源管脚(Vcc)VDD: 地管脚(GND)Vo: 液晶显示驱动电源(0V5V) 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源,本实验中采用的是八位连接方法。 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块A:背光控制
6、正电源K:背光控制地 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块单片机与LCD模块之间有四种基本操作: 写命令写命令 读状态读状态 写显示数据写显示数据 读显示数据读显示数据 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块RSR/W操作操作00写命令写命令操作(初始化、光标定位操作(初始化、光标定位等)等)01读状态读状态操作(读忙标志)操作(读忙标志)10写数据写数据操作(要显示内容)操作(要显
7、示内容)11读数据读数据操作(可以把显示存储区操作(可以把显示存储区中的数据反读出来)中的数据反读出来) 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模块RS:数据和指令选择控制端,RS=0:命令/状态;RS=1:数据R/W:读写控制线,R/W=0:写操作;R/W=1:读操作E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机之间将进行一次数据交换二、单片机与字符型LCD模块接口数据线:数据线:DB7DB0接接单片机的单片机的P1.7 P1.0控制端:控制端: RS P3.0 R
8、/W P3.1 E P3.2 单片机与LCD模块硬件连接v 实验模块:A01、A07v 连线表: 动手做动手做 A01A07连接1+5V/GND+5V/GND连接2P1.0-P1.7DB0-DB7连接3P3.0RS连接4P3.1RW连接5P3.2E注意:连接时,需要将跳线设置与E端接通 三、LCD接口程序设计v 程序设计程序设计 功能设置 写命令写命令子程序子程序 LCD初始化:初始化:按一定顺序写命令字 如:写清屏命令字、写DDRAM光标定位地址命令字 显示数据 写数据写数据子程序子程序 读入状态字读状态读状态子程序子程序 1. 读状态字RSR/W操作操作00写命令操作(初始化、光标定位等)
9、01读状态操作(读忙标志)读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)v E (P3.2):v RS (P3.0)=0; v R/W(P3.1) =1;RSEQUP3.0RWEQUP3.1EEQUP3.2vE(P3.2):vR/W(P3.1)=1; vRS(P3.0)=0; SETB RW ;RW=1NOP ;3条CLR RS ;RS=0NOP ;3条SETB E ;E=1NOP ;3条MOV A,P1 ;读入状态字读入状态字 NOP ;3条CLR E ;E=0NOP ;3条 CLR RW ;RW=0STAT:RET2. 写命令字(实训
10、教程P33)RSR/W操作操作00写命令操作(初始化、光标定位写命令操作(初始化、光标定位等)等)01读状态操作(读忙标志)读状态操作(读忙标志)10写数据操作(要显示的内容)11读数据操作(可以把显示存储区中的数据反读出来)v E:v RS=0; R/W=0;v 采用查询方式:读入状态字读入状态字,再判断忙标志ACC.7。RW=0RS=1E=1命令字A,A P1E=0RS=0返回写数据读入状态字AACC.7=0?不忙吗?延时YN动手做动手做假定显示数据已存放到内部RAM的 21H单元3. 命令字指令名称指令名称控制信号控制信号控制代码控制代码RS RWD7 D6 D5 D4 D3 D2 D1
11、 D0清屏清屏0 00 0 0 0 0 0 0 1归归home位位0 00 0 0 0 0 0 1 *输入方式设置输入方式设置0 00 0 0 0 0 1 I/D S显示状态设置显示状态设置0 00 0 0 0 1 D C B光标画面滚动光标画面滚动0 00 0 0 1 S/C R/L * *功能设置功能设置0 00 0 1 DL N F * *CGRAM地址设置地址设置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址设置地址设置0 01 A6 A5 A4 A3 A2 A1 A0读读BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据写数据1 0数
12、数 据据读数据读数据1 1数数 据据清除屏幕,置AC为零01H指令名称指令名称控制信号控制信号控制代码控制代码RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1归归home位位0 00 0 0 0 0 0 1 *输入方式设置输入方式设置0 00 0 0 0 0 1 I/D S显示状态设置显示状态设置0 00 0 0 0 1 D C B光标画面滚动光标画面滚动0 00 0 0 1 S/C R/L * *功能设置功能设置0 00 0 1 DL N F * *CGRAM地址设置地址设置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址设置
13、地址设置0 01 A6 A5 A4 A3 A2 A1 A0读读BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据写数据1 0数数 据据读数据读数据1 1数数 据据设光标移动方向并指定整体显示是否移动。I/D=1:增量方式I/D=0:减量方式S=1:移位S=0:不移位0000011006H设整体显示开关(D),光标显示开关(C),光标位的字符闪耀(B)D=1;C=0;B=0000011000cH指令名称指令名称控制信号控制信号控制代码控制代码RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1归归home位位0 0
14、0 0 0 0 0 0 1 *输入方式设置输入方式设置0 00 0 0 0 0 1 I/D S显示开关控制显示开关控制0 00 0 0 0 1 D C B光标画面滚动光标画面滚动0 00 0 0 1 S/C R/L * *功能设置功能设置0 00 0 1 DL N F * *CGRAM地址设置地址设置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址设置地址设置0 01 A6 A5 A4 A3 A2 A1 A0读读BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据写数据1 0数数 据据读数据读数据1 1数数 据据设接口数据位数(DL),显示行数(L
15、),及字型(F)DL=1,8位 =0: 4位N=1:2行 =0:1行F=1:510 =0: 570011100038H指令名称指令名称控制信号控制信号控制代码控制代码RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1归归home位位0 00 0 0 0 0 0 1 *输入方式设置输入方式设置0 00 0 0 0 0 1 I/D S显示开关控制显示开关控制0 00 0 0 0 1 D C B光标画面滚动光标画面滚动0 00 0 0 1 S/C R/L * *功能设置功能设置0 00 0 1 DL N F * *CGRAM地址设置地址设置0 00
16、1 A5 A4 A3 A2 A1 A0DDRAM地址设置地址设置0 01 A6 A5 A4 A3 A2 A1 A0读读BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据写数据1 0数数 据据读数据读数据1 1数数 据据设置DDRAM地址,为显示定位4. 初始化LCD上电延时20ms功能设置延时37us显示状态设置延时37us清屏延时1.52ms输入方式设置初始化结束38h0ch01h06h动手做动手做5. 定位光标位置把显示数据显示在某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如下: row12345141516line100H01H02H03H04H0dH0eH0fHline240H41H42H43H44H4dH4eH4fHNOTICENOTICEv光标定位,写入一个显示字符后,DDRAM地址会自动加自动加1或减或减1,加或减由输入方式字设置;v 第1行DDRAM地址与第2行DDRAM地址并不连续并不连续。80H81H82H83H84H8dH8eH8fH0c0H0c1H0c2H0c3