资源描述
微机原理与接口技术第五章第五章 ARMARM接口设计技术接口设计技术主讲人:鞠主讲人:鞠 雷雷山东大学山东大学 计算机科学与技术学院计算机科学与技术学院微机原理与接口技术第五章 ARM接口设计技术主讲人:鞠 嵌入式系统学科组嵌入式系统学科组2 2内容提要内容提要A/D和和D/A转换器接口转换器接口通讯与中断接口通讯与中断接口LED显示器显示器键盘接口键盘接口通用并行接口通用并行接口 GPIO22内容提要A/D和D/A转换器接口通讯与中断接口LED显嵌入式系统学科组嵌入式系统学科组3 3芯片芯片S3C44B0XS3C44B0X S3C44B0X S3C44B0X是基于是基于ARM7TDMIARM7TDMI的体系结构的体系结构,是是ARMARM公公司最早为业界普遍认可并且赢得最广泛应用的司最早为业界普遍认可并且赢得最广泛应用的处理核。处理核。33芯片S3C44B0X S3C44B0X是基于ARM7T嵌入式系统学科组嵌入式系统学科组4芯片S3C44B0X/芯片体系结构7个多功能并行接口个多功能并行接口 A-G2个异步串行接口个异步串行接口 通用异步收发器通用异步收发器0/1中断控制接口,管理中断控制接口,管理30个个中断源(中断源(26个中断向量)。个中断向量)。LCD液晶显示器接口,连接液晶显示器接口,连接LCD显示器。显示器。8路路A/D转换接口转换接口4芯片S3C44B0X/芯片体系结构7个多功能并行接口2个嵌入式系统学科组嵌入式系统学科组5ARMARM系统硬件体系结构系统硬件体系结构P260P2605基于ARM架构的32位微处理器Sam sung S3C44B0XLCD显示USB接口 USBN9603两个RS-232串行通信接口JTAG调试端口TCP/IP协议CAN BUS键盘输入16MB非线性Flash(硬盘)8MBSDRM(系统内存)1MB线性Flash(BIOS)存储器存储器:1 1M flash 存储器存储器,保存基本输入输出系统保存基本输入输出系统.2 8M静态随机存储器静态随机存储器.3 16M非线性非线性(NAND)Flash硬盘硬盘 外设外设:LCD显示器,连接显示器,连接LCD接口。接口。点阵:点阵:640X480,320X240,160X160。扩充键盘接口扩充键盘接口:硬件实现:硬件实现:采用采用zlg7289实现键盘扫描。实现键盘扫描。软件实现:以内部接口和软件实现。软件实现:以内部接口和软件实现。扩充网络接口扩充网络接口:RT8019以太网控制器,以太网控制器,IEEE802.3协议,协议,10M同轴电缆。同轴电缆。扩充网络接口扩充网络接口:CAN BUS,Area Network controller,现场总,现场总线,用于工业控制,线,用于工业控制,1M/1KM。UART串口电平转换串口电平转换:0v -+3v12v5v -3v-12v 5ARM系统硬件体系结构P2605基于ARM架构的32位微处嵌入式系统学科组嵌入式系统学科组6lS3C44B0XS3C44B0X具有具有7171个通用多功能输入输出引脚,个通用多功能输入输出引脚,构构成了成了7 7个个I/OI/O接口:接口:一个10位的输出接口(A)一个11位的输出接口(B)一个16位的输入/输出接口(C)两个8位的输入/输出接口(D和G)两个9位的输入/输出接口(E和F)特点:1、每个接口含有1或两个控制端口和一个数据端口。其中A、B口含有一个控制口和一个数据口,C、D、E、F和G口又增加一个上拉电阻配置口(控制口)。2 2、ARM系统完成I/O功能的方法是使用使用特定的存储器地址映射I/O地址。66S3C44B0X具有71个通用多功能输入输出引脚,构成了7嵌入式系统学科组嵌入式系统学科组7 44B.H44B.H中中gpiogpio寄存器定义寄存器定义 (一般了解一般了解)#define rPCONA#define rPCONA (*(volatile unsigned*)0 x1d20000)(*(volatile unsigned*)0 x1d20000);#define rPDATA#define rPDATA (*(volatile unsigned*)0 x1d20004)(*(volatile unsigned*)0 x1d20004);#define rPCONB#define rPCONB(*(volatile unsigned*)0 x1d20008)(*(volatile unsigned*)0 x1d20008)#define rPDATB#define rPDATB(*(volatile unsigned*)0 x1d2000c)(*(volatile unsigned*)0 x1d2000c)#define rPCONC#define rPCONC(*(volatile unsigned*)0 x1d20010)(*(volatile unsigned*)0 x1d20010)#define rPDATC#define rPDATC(*(volatile unsigned*)0 x1d20014)(*(volatile unsigned*)0 x1d20014)#define rPUPC#define rPUPC(*(volatile unsigned*)0 x1d20018)(*(volatile unsigned*)0 x1d20018)#define rPCOND#define rPCOND(*(volatile unsigned*)0 x1d2001c)(*(volatile unsigned*)0 x1d2001c)#define rPDATD#define rPDATD(*(volatile unsigned*)0 x1d20020)(*(volatile unsigned*)0 x1d20020)#define rPUPD#define rPUPD(*(volatile unsigned*)0 x1d20024)(*(volatile unsigned*)0 x1d20024)7 44B.H中gpio寄存器定义 (一般了解)嵌入式系统学科组嵌入式系统学科组8 (一般了解一般了解)#define rPCONE#define rPCONE(*(volatile unsigned*)0 x1d20028)(*(volatile unsigned*)0 x1d20028)#define rPDATE#define rPDATE(*(volatile unsigned*)0 x1d2002c)(*(volatile unsigned*)0 x1d2002c)#define rPUPE#define rPUPE(*(volatile unsigned*)0 x1d20030)(*(volatile unsigned*)0 x1d20030)#define rPCONF#define rPCONF(*(volatile unsigned*)0 x1d20034)(*(volatile unsigned*)0 x1d20034)#define rPDATF#define rPDATF(*(volatile unsigned*)0 x1d20038)(*(volatile unsigned*)0 x1d20038)#define rPUPF#define rPUPF(*(volatile unsigned*)0 x1d2003c)(*(volatile unsigned*)0 x1d2003c)#define rPCONG#define rPCONG(*(volatile unsigned*)0 x1d20040)(*(volatile unsigned*)0 x1d20040)#define rPDATG#define rPDATG(*(volatile unsigned*)0 x1d20044)(*(volatile unsigned*)0 x1d20044)#define rPUPG#define rPUPG(*(volatile unsigned*)0 x1d20048)(*(volatile unsigned*)0 x1d20048)8 (一般了解)嵌入式系统学科组嵌入式系统学科组9 9内容提要内容提要A/D和和D/A转换器接口转换器接口通讯与中断接口通讯与中断接口LCD显示器与触摸屏接口(了解)显示器与触摸屏接口(了解)LED显示器显示器键盘接口键盘接口ARM的的JTAG接口接口99内容提要A/D和D/A转换器接口通讯与中断接口LCD显嵌入式系统学科组嵌入式系统学科组10键盘接口键盘接口l键盘有两种方案:键盘有两种方案:1 1、采用芯片实现键盘扫描;、采用芯片实现键盘扫描;zlg7289zlg7289 2 2、用软件实现键盘扫描。嵌入式控制器的功、用软件实现键盘扫描。嵌入式控制器的功能很强,可允分利用这一资源。能很强,可允分利用这一资源。计算机的键实际上就是开关,制造这种键的计算机的键实际上就是开关,制造这种键的方法是多种多样的,以下是几种常用的按键方法是多种多样的,以下是几种常用的按键:l机械式按键机械式按键 l电容式按键电容式按键 l薄膜式按键薄膜式按键 l霍耳效应按键霍耳效应按键 10 内含两个金属片和一个复位弹簧,按下时,两个金属片便被压在一起。结构简单成本低,缺点是容易产生抖动。压键时,可活动的金属片向两块固压键时,可活动的金属片向两块固定的金属片靠近,从而改变了两块固定定的金属片靠近,从而改变了两块固定的金属片之间的电容。的金属片之间的电容。此时,检测电容变化的电路就会产生一个逻辑电平信号以表示该键已被按下。这是一种特殊的机械式按键开关,由三层塑料或橡胶夹层结构构成。上面一层在每一行键下面有一条印制银导线,中间层在每个键下面有一个小园孔,下面一层在每一列键下面也有一条印制银导线。压键时将上面一层压键时将上面一层的印制银导线压过中层的小孔与下面一层的印制银的印制银导线压过中层的小孔与下面一层的印制银导线接触。导线接触。霍耳效应按键利用活动电荷在磁场中的偏转效果。压键时,晶体便在磁力线垂直于参考电流方向的磁场中移动。晶体在磁场中移动会在晶体另外两个相对的表面之间产生一个小电晶体在磁场中移动会在晶体另外两个相对的表面之间产生一个小电压,该电压经过放大之后用来表示键已被压下。压,该电压经过放大之后用来表示键已被压下。晶体切割磁力线感生电压。晶体切割磁力线感生电压。10键盘接口键盘有两种方案:10 内含两个金属片和一个嵌入式系统学科组嵌入式系统学科组11用用ARMARM芯片实现键盘接口芯片实现键盘接口l与与4X4的矩阵键盘接口,采用的矩阵键盘接口,采用“行扫描法行扫描法”方法来检测键方法来检测键盘,只需要盘,只需要8根口线根口线.l选取选取PF口作为检测键盘用端口,设定口作为检测键盘用端口,设定PF0 PF3为输出扫为输出扫描码的端口,描码的端口,PF4-PF7为键值读入口。为键值读入口。11PF0PF1PF2PF3S3C44B0XPF4PF5PF6PF7+5V输出扫描码输出扫描码端口端口键值读入口键值读入口外接上拉电阻11用ARM芯片实现键盘接口与4X4的矩阵键盘接口,采用“嵌入式系统学科组嵌入式系统学科组12矩阵键盘按键的识别方法矩阵键盘按键的识别方法l识别键盘是否有键按下:识别键盘是否有键按下:让所有行线均为低电平,检查各列线电平让所有行线均为低电平,检查各列线电平是否为低,如果有列线为低,则说明该列有是否为低,如果有列线为低,则说明该列有键被按下,否则说明无键被按下。键被按下,否则说明无键被按下。rPDATF=0 xf0;rPDATF=0 xf0;输出全输出全0 0值值若有键按下,则识别哪行的键被按下:逐若有键按下,则识别哪行的键被按下:逐行置低电平,并置其余各行为高电平,检查行置低电平,并置其余各行为高电平,检查各列线电平的变化,如果列电平变为低电平,各列线电平的变化,如果列电平变为低电平,则可确定此行此列交叉点处按键被按下。则可确定此行此列交叉点处按键被按下。行扫描码行扫描码 0 xfe 0 xfd 0 xfb 0 xf70 xfe 0 xfd 0 xfb 0 xf71212矩阵键盘按键的识别方法识别键盘是否有键按下:12嵌入式系统学科组嵌入式系统学科组13键值与行扫描码、列输入值间的关系 由行扫描码、列输入值由行扫描码、列输入值求行号、列号:求行号、列号:行扫描码行扫描码右移直到最低右移直到最低位是零,次低位是位是零,次低位是1,移,移位次数就是行号。位次数就是行号。列输入值先右移列输入值先右移4次再次再按行扫描码处理。按行扫描码处理。1列2列3列PF7PF313键值与行扫描码、列输入值间的关系 由行扫描码、列输入值求嵌入式系统学科组嵌入式系统学科组14行扫描法识别矩阵键盘按键行扫描法识别矩阵键盘按键14PF0PF1PF2PF3S3C44B0XPF4PF5PF6PF7+5V某一按键按下所有的行线为低电平逐行为低电平14行扫描法识别矩阵键盘按键14PF0+5V某一按键按下所有嵌入式系统学科组嵌入式系统学科组15编写键盘扫描程序编写键盘扫描程序15开始开始初始化键值为初始化键值为-1PF0-3输出全输出全0PF4-7读入为读入为全全1?PF0-3输出扫描码输出扫描码PF4-7读入为读入为全全1?扫描码指针移位扫描码指针移位获得行号和列号,获得行号和列号,计算键值计算键值返回键值返回键值NYYN15编写键盘扫描程序15开始初始化键值为-1PF0-3输出全嵌入式系统学科组嵌入式系统学科组16寄存器设置寄存器设置l设置设置PCONFPCONF寄存器寄存器 PF口的有口的有3个端口:个端口:控制口控制口 PCONF,用于设置接口的功能。用于设置接口的功能。数据口数据口 PDATF,用于输入、输出数据。用于输入、输出数据。上拉电阻配置口上拉电阻配置口 PUPF,用于使能上拉电阻用于使能上拉电阻。设定设定PF0-3PF0-3为输出口,为输出口,PF4-7PF4-7为输入口,在为输入口,在端口工作之前设置端口工作之前设置1 1、rPCONFrPCONF 000 000 000 00 000 000 000 00 01 01 01 01 B01 01 01 01 B PF4-7 PF4-7为输入为输入 PF0-3PF0-3为输出为输出1616寄存器设置设置PCONF寄存器16嵌入式系统学科组嵌入式系统学科组1717嵌入式系统学科组嵌入式系统学科组18寄存器设置寄存器设置2 2、设置、设置PDATFPDATF寄存器寄存器PF0-3PF0-3作为输出口输出扫描码时,采用语句作为输出口输出扫描码时,采用语句:rPDATF=Oxf0 /PF0-3 rPDATF=Oxf0 /PF0-3全写入全写入0 0PF4-7PF4-7作为输入口读入键值时,采用语句作为输入口读入键值时,采用语句:Keyval=Keyval=(rPDATF&0 xf0rPDATF&0 xf0)4;4;3 3、设置、设置PUPFPUPF寄存器寄存器设置内部上拉电阻的语句为设置内部上拉电阻的语句为:rPUPF=0 x00;/rPUPF=0 x00;/使能使能PF0-7PF0-7的内部上拉电阻的内部上拉电阻1818寄存器设置2、设置PDATF寄存器18嵌入式系统学科组嵌入式系统学科组19行扫描法获取键值的程序设计行扫描法获取键值的程序设计l寄存器设置寄存器设置 接口中利用了接口中利用了PFPF口的相关寄存器,口的相关寄存器,PFPF口的寄存器有口的寄存器有3 3个个PCONF,PDATF(PFPCONF,PDATF(PF口数据寄存器口数据寄存器 )和和PUPF(PUPF(口上拉电口上拉电阻寄存器阻寄存器 )19PDATF位位描述描述PF8:08:0当端口当端口设定定为输入口入口时,这个寄存器的相个寄存器的相应位就位就对应着引脚的着引脚的状状态;当端口当端口设定定为输出口出口时,输出引脚的状出引脚的状态与与该寄存器的寄存器的相相应位相同位相同;当端口当端口设定定为多功能口多功能口时,PDATF中的内容无效中的内容无效PUPF位描述PF8:08:00:相应位的上拉电阻使能1:相应位的上拉电阻禁止19行扫描法获取键值的程序设计寄存器设置19PDATF位描述嵌入式系统学科组嵌入式系统学科组20键盘扫描子程序代码如下:返回的是各键的键值:键盘扫描子程序代码如下:返回的是各键的键值:0 F 0 F。#include#include#include#include char ReadKeyVal(void)char ReadKeyVal(void)unsigned char i,j,H_val,L_val;unsigned char i,j,H_val,L_val;char keyval=-1;char keyval=-1;rPCONF=0 x55;rPCONF=0 x55;rPUPF=0 xff;rPUPF=0 xff;上拉电阻禁止上拉电阻禁止 rPDATF=0 xf0;rPDATF=0 xf0;输出全输出全0 0值,判是否有键按下值,判是否有键按下20键盘扫描子程序代码如下:返回的是各键的键值:嵌入式系统学科组嵌入式系统学科组21if(L_val=(rPDATF&0 xf0)!=0 xf0)if(L_val=(rPDATF&0 xf0)!=0 xf0)H_val=0 xfe;/0 xfe H_val=0 xfe;/0 xfe,0 xfd 0 xfb 0 xf70 xfd 0 xfb 0 xf7对应于第对应于第0 0、1 1、2 2、3 3行键行键for(i=0;i4;i+)for(i=0;i4;i+)rPDATF=H_val;rPDATF=H_val;输出扫描码输出扫描码 for(j=0;j100;j+);for(j=0;j4)|0 xf0;L_val=(L_val4)|0 xf0;循环右移循环右移4 4次次 Keyval=get_val(H_val)4+get_val(L_val);Keyval=get_val(H_val)4+get_val(L_val);return keyval;return keyval;else else H_val=H_val 1;H_val=H_val 1;/H_val/H_val 行无键按下,此行输出行无键按下,此行输出0 0不影响不影响H_val+1 H_val+1 行。行。return keyval;return keyval;21if(L_val=(rPDATF&0 xf0)!=0 x嵌入式系统学科组嵌入式系统学科组22/get_val/get_val子函数是由行扫描值、读取的列值分别得到行号、列号。子函数是由行扫描值、读取的列值分别得到行号、列号。char get_val(unsigned char val)char get_val(unsigned char val)unsigned char i,x;unsigned char i,x;x=0;x=0;for(i=0;i4;i+)for(i=0;i1)|0 x80;/val=(val1)|0 x80;/负数算数右移负数算数右移x=x+1;x=x+1;22/get_val子函数是由行扫描值、读取的列值分别得到嵌入式系统学科组嵌入式系统学科组2323内容提要内容提要A/D和和D/A转换器接口转换器接口通讯与中断接口通讯与中断接口LCD显示器与触摸屏接口(了解)显示器与触摸屏接口(了解)LED显示器显示器键盘接口键盘接口ARM的的JTAG接口接口2323内容提要A/D和D/A转换器接口通讯与中断接口LC嵌入式系统学科组嵌入式系统学科组24LEDLED显示器接口概述显示器接口概述lLED(Light Emitting Diode)常称为发光二极管常称为发光二极管,在专用的微型计算机系统中在专用的微型计算机系统中,特别是在嵌入式控特别是在嵌入式控制系统中制系统中,应用非常普遍应用非常普遍.l价格低廉、体积小、功耗低,而可靠性又很好价格低廉、体积小、功耗低,而可靠性又很好l从单板微型机、袖珍计算机到许多微型机控制从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用系统及数字化仪器都用LED作为输出显示作为输出显示2424LED显示器接口概述LED(Light Emitting嵌入式系统学科组嵌入式系统学科组LEDLED优缺点(百度百科)优缺点(百度百科)l优点优点体积小,轻体积小,轻耗电量低(相同照明效果比传统光源节能近耗电量低(相同照明效果比传统光源节能近80%80%)使用寿命长(比传统光源寿命长使用寿命长(比传统光源寿命长1010倍以上)倍以上)高亮度、低热量(冷光灯)高亮度、低热量(冷光灯)环保(不含水银,光谱中不含紫外线和红外线,安环保(不含水银,光谱中不含紫外线和红外线,安全触摸等)全触摸等)坚固耐用坚固耐用多变幻多变幻技术先进(融合了计算机技术、网络通信技术、图技术先进(融合了计算机技术、网络通信技术、图像处理技术、嵌入式控制技术等,具有在线编程、像处理技术、嵌入式控制技术等,具有在线编程、无限升级、灵活多变的特点。)无限升级、灵活多变的特点。)25LED优缺点(百度百科)优点25嵌入式系统学科组嵌入式系统学科组LEDLED优缺点(百度百科)优缺点(百度百科)l缺点缺点近日由美国加州大学艾尔文分校进行的一项调查却近日由美国加州大学艾尔文分校进行的一项调查却显示,显示,LEDLED灯中包含有锑、砷、铬、铅以及其他多种灯中包含有锑、砷、铬、铅以及其他多种金属元素。其中,部分金属元素。其中,部分LEDLED灯的有毒元素含量已经超灯的有毒元素含量已经超过了监管部门制定的标准。比如在低亮度红色过了监管部门制定的标准。比如在低亮度红色LEDLED灯灯中,研究人员发现其铅含量超标达到中,研究人员发现其铅含量超标达到8 8倍,镍含量也倍,镍含量也超标超标2.52.5倍。倍。实际上在美国加州法律中,绝大多数实际上在美国加州法律中,绝大多数LEDLED灯都已经被灯都已经被明确定义为有毒垃圾,如果使用普通填埋的办法处明确定义为有毒垃圾,如果使用普通填埋的办法处理将会污染土壤和地下水。而如果理将会污染土壤和地下水。而如果LEDLED灯破碎,还可灯破碎,还可能会对直接接触的人体健康造成损害。但至今,无能会对直接接触的人体健康造成损害。但至今,无论各国政府还是民众都对论各国政府还是民众都对LEDLED灯的环境和健康危险知灯的环境和健康危险知之甚少。之甚少。26LED优缺点(百度百科)缺点26嵌入式系统学科组嵌入式系统学科组LEDLED优缺点(百度百科)优缺点(百度百科)l缺点缺点LEDLED需要由于单个发光面比较窄,通常大规模集成在需要由于单个发光面比较窄,通常大规模集成在线路板上,形成一个比较大的发光源,由此会造成线路板上,形成一个比较大的发光源,由此会造成大量热量积累,有时会击穿电路板。所以大量热量积累,有时会击穿电路板。所以LEDLED灯的散灯的散热一定要好。热一定要好。人眼最不能接受的是蓝光和人眼最不能接受的是蓝光和UVUV光光(即紫外线光即紫外线光),蓝,蓝光杀伤人眼活性细胞的能力是绿光的光杀伤人眼活性细胞的能力是绿光的1010倍,而倍,而UVUV光光杀伤人眼活性细胞的能力又是蓝光的杀伤人眼活性细胞的能力又是蓝光的1010倍,长期接倍,长期接触大量低波长的蓝光能大量杀伤人眼活性细胞,最触大量低波长的蓝光能大量杀伤人眼活性细胞,最终癌化形成斑块。而终癌化形成斑块。而LEDLED白光形成主要是靠白光形成主要是靠450-450-455NM455NM波长蓝光激发荧光粉,属于伤害最强的区段波长蓝光激发荧光粉,属于伤害最强的区段易出现黄圈问题易出现黄圈问题27LED优缺点(百度百科)缺点27嵌入式系统学科组嵌入式系统学科组28LED LED 的工作原理的工作原理28l7 7个字段分别称为个字段分别称为a a、b b、c c、d d、e e、f f、g g段,有段,有时还有一个小数点段时还有一个小数点段DPDP。l通过通过7 7个发光段的不同组合,可以显示个发光段的不同组合,可以显示0 0到到9 9和和A A到到F F共共1616个字母数字个字母数字,从而实现十六进制的显示从而实现十六进制的显示阴极控制端数据端28LED 的工作原理287个字段分别称为a、b、c、d、e嵌入式系统学科组嵌入式系统学科组297 7段字型码段字型码297段字型码嵌入式系统学科组嵌入式系统学科组30电路原理电路原理动态显示:动态显示:1 1、译码,待显示数字转换成、译码,待显示数字转换成7 7段代码。段代码。2 2、位控端口输出位码,每次控制显示一位,从而实现、位控端口输出位码,每次控制显示一位,从而实现数据的动态显示。数据的动态显示。位码:位码:0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x010 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x013 3、段控端口输出欲显示数字的、段控端口输出欲显示数字的7 7段代码。段代码。译码:译码:将一个将一个4 4位二进制数位二进制数(可能为十六进制数或可能为十六进制数或BCDBCD码码)译为译为LEDLED的的7 7段字形码。段字形码。采用两种方法:采用两种方法:1 1、采用专用芯片采用专用芯片,实现对实现对BCDBCD码的译码(码的译码(74744747)2 2、软件译码法:在软件设计时、软件译码法:在软件设计时,将将0 0到到F F共共1616个数字个数字(或或者者0 0到到9)9)对应的显示代码组成一个表对应的显示代码组成一个表,查表译码。查表译码。3030电路原理动态显示:30嵌入式系统学科组嵌入式系统学科组31用用ARMARM芯片实现芯片实现LEDLED显示接口显示接口31l接口电路接口电路结构特点:结构特点:8 8位位LEDLED的各段的各段并联,任一时刻只并联,任一时刻只能显示一位。能显示一位。PGPG口口输出只能一位为输出只能一位为1 1。PFPF口输出共阳口输出共阳极极LEDLED的字型码。的字型码。31用ARM芯片实现LED显示接口31接口电路结构特点:嵌入式系统学科组嵌入式系统学科组327 7段数码段数码LEDLED编程(初始化)编程(初始化)l设置设置PCONFPCONF、PCONGPCONG寄存器(寄存器(F、G设置置为输出口)为输出口)rPCONFrPCONF 001 001 001 01 01 01 01 01 001 001 001 01 01 01 01 01 B B0 x125550 x12555;rPCONGrPCONG 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 B B0 x5555;0 x5555;l设置设置PUPFPUPF、PUPGPUPG寄存器寄存器rPUPF=0 x00;/rPUPF=0 x00;/使能使能PF0-7PF0-7的内部上拉电阻的内部上拉电阻rPUPG=0 x00;/rPUPG=0 x00;/使能使能PG0-7PG0-7的内部上拉电阻的内部上拉电阻32在端口工作之前在端口工作之前设置为输出端口。设置为输出端口。设置内部上拉设置内部上拉电阻。电阻。327段数码LED编程(初始化)设置PCONF、PCONG寄嵌入式系统学科组嵌入式系统学科组33l流程图流程图33指向缓冲区首址指向缓冲区首址取显示位指针取显示位指针取要显示的数取要显示的数将数变为段码将数变为段码段码送到段控制通道段码送到段控制通道位码送到位控制通道位码送到位控制通道延迟一段时间延迟一段时间是否最后一位是否最后一位退出退出修改缓冲区指修改缓冲区指针和位码针和位码YN指向第指向第7 7位位33流程图33指向缓冲区首址取显示位指针取要显示的数将数变为嵌入式系统学科组嵌入式系统学科组34void DisplayLedl(unsigned char dis_8_num)unsigned char led_dis=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E,0 x8C;unsigned char i,j,D_val(段码)(段码),B_val(位码)(位码);rPCONF 0 x12555;rPCONG0 x5555;rPUPF=0 x00;B_val=0 x80;340F及及小数位小数位段码表段码表将端口设置为将端口设置为输出端口输出端口使能使能PG和和PF内内部上拉电阻部上拉电阻 保存待显示保存待显示数字的数组。数字的数组。先显示最右侧先显示最右侧的位的位34void DisplayLedl(unsigned ch嵌入式系统学科组嵌入式系统学科组35 B_val=0 x80;/首先首先显示第七位示第七位 for(i=0;i8;i+)D_val=dis_8_numi;rPDATF=led_disD_val;rPDATG=B_val;for(j=0;j 1;显示下一位显示下一位 35 取出待显示取出待显示字符。字符。延迟一段时间延迟一段时间 转换成七段转换成七段字型码送字型码送F口。口。函数调用:unsigned char num1,2,3,a,f,7,8,0;DisplayLedl(num)位控信号位控信号送送G口。口。35 B_val=0 x80;/首先显示第七位35
展开阅读全文