《单片机C语言课件优秀PPT.ppt》由会员分享,可在线阅读,更多相关《单片机C语言课件优秀PPT.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u学问目标:学问目标:u1.理解点阵的工作原理理解点阵的工作原理u2.理解点阵的扫描法显示原理理解点阵的扫描法显示原理u3.驾驭点阵的编程方法驾驭点阵的编程方法u技能目标:技能目标:u1.区分点阵的共阴、共阳区分点阵的共阴、共阳u2.正确理解点阵的行、列正确理解点阵的行、列u3.驾驭单片机与点阵的连接驾驭单片机与点阵的连接信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州
2、建筑职业技术学院几点说明:1.数码管的动态显示(书上147页)(1)若干个数码管的段端接一起,通过单片机的I/O口限制数码管的位选端,实现若干个数码管轮番显示 (2)单片机的1个I/O口带着若干个数码管,电流小,所以数码管亮度低。所以要加驱动(加三极管、驱动器),增加亮度。共阳数码管:须要高电平,加PNP三极管 共阴数码管:须要低电平,加NPN三极管 (3)延时时间合理设置;过长或过慢都不行。2.LCD编程步骤 (1)LCD初始化 (MOV P1,#01H LCALL ENABLE)(2)设定第一行地址 (MOV P1,#80H LCALL ENABLE)(3)写入(显示)第一行字符 (写字符
3、串方法:MOV DPTR,#TAB LCALL WRITE1)(4)设定其次行地址 (MOV P1,#0C0H LCALL ENABLE)(5)写入(显示)其次行字符(同第一行显示方法)或(写单个字符:ASCII码送入A,LCALL WRITE2)LCD的子程序记住,运用时只需调用即可3.计算器程序信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院LED点
4、阵点阵信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院1.点阵结构点阵结构(以以8*8为例)为例)8X8点阵共由64个发光二极管依据8行8列排列成矩阵形式,且每个发光二极管是放置在行线和列线的交叉点上(类似矩阵式按键)引脚:16根(8行8列),字母为行引脚,数字为列引脚。一般须要自己用万用表检测(如何测?)双色点阵;24根(16行8列)信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院(1).共阴(对行
5、而言)共阴(对行而言)例如型号为JM-M1088A2.点阵分类点阵分类信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院(2).共阳(对行而言)共阳(对行而言)例如型号为JM-M1088B有时也不做区分,旋转即可信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u3 点阵原理点阵原理 u以共阳为例,当对应的某一行置以共阳为例,当对应的某一行置1电平,某一列置电平,某一列置0电平,电平,则相应的二极管就亮;
6、如要将第一个点点亮,则则相应的二极管就亮;如要将第一个点点亮,则9脚接高脚接高电平电平13脚接低电平,则第一个点就亮了;假如要将第一脚接低电平,则第一个点就亮了;假如要将第一行点亮,则第行点亮,则第9脚要接高电平,而(脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第亮;如要将第一列点亮,则第13脚接低电平,而(脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就)接高电平,那么第一列就会点亮。会点亮。u共阴呢?共阴呢?信息电子信息电子信息电子信息电子 工程学院工程学
7、院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院4.显示方式显示方式u点阵LED一般接受扫描式显示,实际运用分为三种方式:u(1)点扫描(逐点显示);u(2)行扫描(逐行显示);u(3)列扫描(逐列显示);u 若运用第一种方式,其扫描频率必需大于1664=1024Hz,周期小于1ms即可。u 若运用其次和第三种方式,则频率必需大于168=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑
8、职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院5.举例举例例:运用一块例:运用一块8X8的的LED点阵来显示一个心型点阵来显示一个心型1.那么如何点亮一个点?那么如何点亮一个点?首先调出一个首先调出一个88点阵,在点阵的管脚上接上点阵,在点阵的管脚上接上VCC,另一端的管脚就接,另一端的管脚就接GND,运行仿真,看看,运行仿真,看看点阵是不是能亮,亮了哪几个点,假如不亮就调换点阵是不是能亮,亮了哪几个点,假如不亮就调换VCC和和GND,这样测出点阵的行和列,共阴或共阳,这样测出点阵的行和列,共阴或共阳等引脚信息。等引脚信息。从图3判别出上面为行,下面为列,为共阴点阵。
9、要想显示如图所示的亮点:则上面对应的行为低电平,对应的列为高电平(此时8个列值 00100000,和其次行8个点亮灭状况一样)。所以我们可以通过某一行所以我们可以通过某一行8个等的亮灭状态从而得到显示时所需的列值个等的亮灭状态从而得到显示时所需的列值信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院2.接受动态显示(行扫描法,逐行显示)接受动态显示(行扫描法,逐行显示)以共阴点阵为例以共阴点阵为例先显示第一行,先显示第一行,8个灯亮灭状况为个灯亮灭状况为00100100,则此,则此时需送进去的列值也
10、为时需送进去的列值也为00100100(即(即24H),延时;),延时;再其次行,再其次行,8个灯亮灭状况为个灯亮灭状况为01011010,则此时需,则此时需送进去的列值为送进去的列值为01011010(5AH),再延时;),再延时;依次类推,第三行:依次类推,第三行:42H;第四行:第四行:42H;第五行:第五行:42H;第六行:第六行:24H;第七行:第七行:18H;第八行:第八行:00H总结:接受共阴点阵,行扫描法显示,8行对应的列值分别为:24H,5AH,42H,42H,42H,24H,18H,00H(该值也叫做编码)3.如何得到其他字符的编码?(1).自己在纸上画 (2).利用软件生
11、成(PCtoLCD2002,字模生成软件)信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院4.设计电路:设计电路:(1).如何给行扫信号。如何给行扫信号。(共阴点阵,行扫法,须要显示哪一行,哪一行的行线为低电平有效信号)(共阴点阵,行扫法,须要显示哪一行,哪一行的行线为低电平有效信号)8行,为了节约单片机的行,为了节约单片机的I/O口,用口,用3-8译码器,逐个选择每一行译码器,逐个选择每一行信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院
12、徐州建筑职业技术学院徐州建筑职业技术学院u(2).如何给不同的列线值(编码)?u 通过单片机的I/O口传送。把8个列值存入表格,利用查表指令,逐个查出列值送给单片机的I/O口。u 为了增加单片机I/O口的驱动实力,可以运用三极管4148、4007、3904、3906、8050、8550、9012、9013或驱动芯片74HC245,74HC574。74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器或驱动器,可双向传输数据当片选端/CE为低电平有效时,AB/BA=“0”,信号由 B 向 A 传输;AB/BA=“1”,信号由 A 向 B 传输;信息电子信息电
13、子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院 (或者加三极管)(或者加三极管)共阴数码管共阴数码管 共阳数码管共阳数码管 8050 8550 8050 8550 (3).延时 看电路图信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u编程:编程:uorg 0000hu
14、ljmp stuorg 0030hust:mov 20h,#00hu mov dptr,#tabuln3:mov r6,#08hu mov r4,#00hu mov r0,20huln4:mov a,r4u mov p1,au inc r4u mov a,r0u movc a,a+dptru mov p2,au inc r0u lcall delayu djnz r6,ln4u ljmp st 信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院udelay:mov r3,#02hu ln5:mov
15、r5,#0f8hu djnz r5,$u djnz r3,ln5u retutab:db 24H,5AH,42H,42H,42H,24H,18H,00Hu end 仿真 只需更改tab表格中的列值,就可以显示其他图形或字符。信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院6.6.显示汉字原理(显示汉字原理(16*16 16*16点阵)点阵)我们把显示器的每一个点理解为一个像素,那么我们把显示器的每一个点理解为一个像素,那么8*88*8点阵只能显示点阵只能显示6464像素范围像素范围以内的任何图形和
16、字符。假如想显示更大像素的图形,怎么办?以内的任何图形和字符。假如想显示更大像素的图形,怎么办?组合组合一般我们运用点阵显示汉字是用的一般我们运用点阵显示汉字是用的16*1616*16的点阵宋体字库,所谓的点阵宋体字库,所谓16*1616*16,是每,是每一个汉字在行、列各一个汉字在行、列各1616点的区域内显示的。也就是说得用四个点的区域内显示的。也就是说得用四个8*88*8点阵组点阵组合成一个合成一个16*1616*16的点阵。的点阵。组合后仍旧接受逐行或逐列显示(组合后仍旧接受逐行或逐列显示(1616行行1616列),即动态显示。逐行(或逐列)列),即动态显示。逐行(或逐列)显示第一行(
17、第一列),延时;其次行(其次列)显示,延时;显示第一行(第一列),延时;其次行(其次列)显示,延时;,以此,以此类推。只要每行(每列)数据显示时间间隔够短,利用人眼的视觉暂停作类推。只要每行(每列)数据显示时间间隔够短,利用人眼的视觉暂停作用,你就能看到稳定的汉字显示。用,你就能看到稳定的汉字显示。如何得到汉字的编码呢?如何得到汉字的编码呢?信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u如上图所示,用16*16要显示“你”则相应的点就要点亮u逐行显示:(行扫描线,列数据线)u 要显示“你”字的
18、话,要把它的位代码信息作为对应列的值。u 利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院7.16*167.16*16的点阵的构成的点阵的构成(1)16*16点阵,由4个8*8点阵组成,如何连接?两两行行相连,两两列列相连。留意新的16*16点阵的行列凹凸依次16行:ROW0-ROW1516列:HIG0-HIG7(高8位列)LOW0-LOW7(低8位列)信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州
19、建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院(2)单片机的I/O口作为行列线够用吗?以逐行显示为例:(行为扫描线,列线输入数据),须要引脚众多,共32根线,单片机为了节约线,所以接受译码器或移位寄存器等(例如74LS154,74HC595,74LS164等)来扩展I/O线。4-16线译码器 E1=E2=0,时,可译码低电平输出 信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院例:例:用4个8*8点阵组合成16*16点阵循环显示“信息”两个字。u显示”信”,再显示”息
20、”,然后循环信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u显示”信”:逐行显示u 第一个点阵:其次个点阵:u 第一行输入列值00001000(08H)第一行输入列值100000000(80H)u 其次行输入列值00001100(0CH)其次行输入列值01100000(60H)u 第三行:18H 第三行:40H u 第四行:17H 第四行:FEH u 第五行:30H 第五行:00Hu 第六行:33H 第六行:F8H u 第七行:50H 第七行:00H u 第八行:93H 第八行:F8Hu第三个点
21、阵:u 八行列值为:10H,13H,12H,12H,u(第九到十六行)12H,13H,12H,00Hu第四个点阵:u 八行列值为:00H,F8H,08H,08H,u(第九到十六行)08H,F8H,08H,00Hu显示”息“u 同理可得”息“的编码u 信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院如何把编码送给对应的点阵的列?如何把编码送给对应的点阵的列?通过查表指令,查得编码。然后再分别送给对应点阵的列建立表格如下:tab:db 08h,80h,0ch,60h,18h,40h,17h,feh,3
22、0h,00h,33h,f8h,50h,00h,93h,f8hdb 10h,00h,13h,0f8h,12h,08h,12h,08h,12h,08h,13h,0f8h,12h,08h,00h,00h ;”信“的编码db 01h,00h,02h,00h,1fh,0f0h,10h,10h,1fh,0f0h,10h,10h,1fh,0f0h,10h,10h db1fh,0f0h,00h,00h,09h,00h,28h,84h,28h,92h,68h,12h,07h,0f0h,00h,00h ;”息“的编码信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业
23、技术学院徐州建筑职业技术学院徐州建筑职业技术学院信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院u编程:编程:uorg 0000huljmp stuorg 0030hust:mov 20h,#00hu mov dptr,#tabuln2:mov r1,#0ffhuln3:mov r6,#10hu mov r4,#00hu mov r0,20huln4:mov a,r4u mov p1,au inc r4u mov a,r0u movc a,a+dptru mov p3,au inc r0u mov
24、 a,r0u movc a,a+dptru mov p2,au inc r0u lcall delayu mov p3,#0u mov p2,#0信息电子信息电子信息电子信息电子 工程学院工程学院工程学院工程学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院徐州建筑职业技术学院udjnz r6,ln4udjnz r1,ln3u mov 20h,r0u cjne r0,#64,ln2u ljmp stuDelay:mov r3,#01huln5:mov r5,#0f8hu djnz r5,$u djnz r3,ln5uretutab:db08h,80h,0ch,60h,18h,40h,17h,feh,30h,00h,33h,f8h,50h,00h,93h,f8hudb10h,00h,13h,0f8h,12h,08h,12h,08h,12h,08h,13h,0f8h,12h,08h,00h,00hudb 01h,00h,02h,00h,1fh,0f0h,10h,10h,1fh,0f0h,10h,10h,1fh,0f0h,10h,10h udb1fh,0f0h,00h,00h,09h,00h,28h,84h,28h,92h,68h,12h,07h,0f0h,00h,00hu endu”信息信息“两字循环显示两字循环显示255255次,再从头循环次,再从头循环