文档库 最新最全的文档下载
当前位置:文档库 › 单片机设计8X8LED点阵显示原理与编程技术

单片机设计8X8LED点阵显示原理与编程技术

单片机设计8X8LED点阵显示原理与编程技术
单片机设计8X8LED点阵显示原理与编程技术

#i nclude

unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void delay(void)

{

unsigned char i,j;

for(i=10;i>0;i--)

for(j=248;j>0;j--);

}

void delay1(void)

{

unsigned char i,j,k;

for(k=10;k>0;k--)

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

void main(void)

{

unsigned char i,j;

while(1)

{

for(j=0;j<3;j++)//from left to right 3 time

{

for(i=0;i<8;i++)

{

P3=taba[i];

P1=0xff;

delay1();

}

}

for(j=0;j<3;j++)//from right to left 3 time

{

for(i=0;i<8;i++)

{

P3=taba[7-i];

P1=0xff;

delay1();

}

}

for(j=0;j<3;j++)//from top to bottom 3 time

{

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[7-i];

delay1();

}

}

for(j=0;j<3;j++)//from bottom to top 3 time

{

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[i];

delay1();

}

}

}

}

8X8LED点阵显示原理与编程技术

1.实验任务

在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。

2.硬件电路连线

(1).把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“DR1-DR8”端口上;

(2).把“单片机系统”区域中的P3端口用8芯排芯连接到“点阵模块”区域中的“DC1-DC8”端口上;

3.电路原理图

图4.24.1

4.程序设计内容

(1). 8X8 点阵LED工作原理说明

8X8点阵LED结构如下图所示

图4.24.2

从图4.24.2中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:对应的列置1,而行则采用扫描的方法来实现。

一根横柱:对应的行置0,而列则采用扫描的方法来实现。

5.汇编源程序

MCS51单片机汇编程序

ORG 00H START: NOP

MOV R3,#3

LOP2: MOV R4,#8

MOV R2,#0

LOP1: MOV P1,#0FFH MOV DPTR,#TABA MOV A,R2

MOVC A,@A+DPTR MOV P3,A

INC R2

LCALL DELAY

DJNZ R4,LOP1 DJNZ R3,LOP2 MOV R3,#3

LOP4: MOV R4,#8

MOV R2,#7

LOP3: MOV P1,#0FFH MOV DPTR,#TABA

MOVC A,@A+DPTR MOV P3,A

DEC R2

LCALL DELAY

DJNZ R4,LOP3 DJNZ R3,LOP4 MOV R3,#3

LOP6: MOV R4,#8

MOV R2,#0

LOP5: MOV P3,#00H

MOV DPTR,#TABB MOV A,R2

MOVC A,@A+DPTR MOV P1,A

INC R2

LCALL DELAY

DJNZ R4,LOP5 DJNZ R3,LOP6 MOV R3,#3

MOV R2,#7

LOP7: MOV P3,#00H

MOV DPTR,#TABB

MOV A,R2

MOVC A,@A+DPTR

MOV P1,A

DEC R2

LCALL DELAY

DJNZ R4,LOP7

DJNZ R3,LOP8

LJMP START

DELAY: MOV R5,#10

D2: MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

DJNZ R5,D2

RET

TABA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

TABB: DB 01H,02H,04H,08H,10H,20H,40H,80H

END

6. C语言源程序

C程序

#include

unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(void)

{

unsigned char i,j;

for(i=10;i>0;i--)

for(j=248;j>0;j--);

}

void delay1(void)

{

unsigned char i,j,k;

for(k=10;k>0;k--)

for(i=20;i>0;i--)

for(j=248;j>0;j--);

}

void main(void)

{

unsigned char i,j;

while(1)

{

for(j=0;j<3;j++) //from left to right 3 time {

for(i=0;i<8;i++)

{

P3=taba[i];

P1=0xff;

delay1();

}

}

for(j=0;j<3;j++) //from right to left 3 time {

for(i=0;i<8;i++)

{

P3=taba[7-i];

P1=0xff;

delay1();

}

}

for(j=0;j<3;j++) //from top to bottom 3 time {

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[7-i];

delay1();

}

}

for(j=0;j<3;j++) //from bottom to top 3 time {

for(i=0;i<8;i++)

{

P3=0x00;

P1=tabb[i];

delay1();

}

} }

}

12864点阵型液晶显示屏的基本原理与使用方法(很详细)

12864点阵型液晶显示屏的基本原理与使用方法(很详细) 点阵LCD的显示原理 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示: 图1“A”字模图 而中文的“你”在字模中的记载却如图2所示:

图2“你”字模图 12864点阵型LCD简介 12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。 管脚号管脚名称LEVER管脚功能描述 1VSS0电源地 2VDD+5.0V电源电压 3V0-液晶显示器驱动电压 4D/I(RS)H/L D/I=“H”,表示DB7∽DB0为显示数据 D/I=“L”,表示DB7∽DB0为显示指令数据5R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0 R/W=“L”,E=“H→L”数据被写到IR或DR 6E H/L R/W=“L”,E信号下降沿锁存DB7∽DB0 R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0 7DB0H/L数据线 8DB1H/L数据线 9DB2H/L数据线 10DB3H/L数据线 11DB4H/L数据线 12DB5H/L数据线 13DB6H/L数据线 14DB7H/L数据线 15CS1H/L H:选择芯片(右半屏)信号 16CS2H/L H:选择芯片(左半屏)信号 17RET H/L复位信号,低电平复位

单片机原理及应用第三版(张毅刚)1-6章全

第1章思考题及习题1参考答案 一、填空 1. 除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式 控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通 过内部连接在一起,集成于一块芯片上。答:CPU、存储器、I/O口、总线 3. AT89S52单片机工作频率上限为 MHz。答:33 MHz。 4. 专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提 高。答:成本,可靠性。 二、单选 1. 单片机内部数据之所以用二进制形式表示,主要是 A.为了编程方便B.受器件的物理性能限制 C.为了通用性D.为了提高运算速度 答:B 2. 在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用 答: B 3. 下面的哪一项应用,不属于单片机的应用范围。 A.工业控制 B.家用电器的控制 C.数据库管理 D.汽车电子设备 答:C 三、判断对错 1. STC系列单片机是8051内核的单片机。对 2. AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断 源、1个定时器(且具有捕捉功能)。对 3. 单片机是一种CPU。错 4. AT89S52单片机是微处理器。错

5. AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错 6. 为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7. 为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8. 单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答 1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别? 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 2. AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么? 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 3. 单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少? 答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。 4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。 5. 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”? 答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。 6. 嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何 不同? 答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,

12864点阵液晶显示模块的原理

12864点阵液晶显示模块的原理 12864 点阵液晶显示模块的原理12864 点阵液晶显示模块(LCM)就是由128*64 个液晶显示点组成的一个128 列*64 行的阵列。每个显示点对应一位二 进制数,1 表示亮,0 表示灭。存储这些点阵信息的RAM 称为显示数据存储器。要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形 或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。由于多数液晶显示模块的驱动 电路是由一片行驱动器和两片列驱动器构成,所以12864 液晶屏实际上是由左 右两块独立的64*64 液晶屏拼接而成,每半屏有一个512*8 bits 显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1 和CS2 选择。(少数厂 商为了简化用户设计,在模块中增加译码电路,使得128*64 液晶屏就是一个 整屏,只需一个片选信号。)显示点在64*64 液晶屏上的位置由行号 (line,0~63)与列号(column,0~63)确定。512*8 bits RAM 中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8 个液晶点的显示信息。为了使液晶点位置信息与存储地址的对应关系更直 观关,将64*64 液晶屏从上至下8 等分为8 个显示块,每块包括8 行*64 列个 点阵。每列中的8 行点阵信息构成一个8bits 二进制数,存储在一个存储单元 中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同) 存放一个显示块的RAM 区称为存储页。即64*64 液晶屏的点阵信息存储在8 个存储页中,每页64 个字节,每个字节存储一列(8 行)点阵信息。因此存储单 元地址包括页地址(Xpage,0~7)和列地址(Yaddress,0~63)。例如点亮128*64 的屏中(20,30)位置上的液晶点,因列地址30 小于64,该点在左半屏第29 列,所以CS1 有效;行地址20 除以8 取整得2,取余得4,该点在RAM 中页

单片机原理及应用总结

单片机原理及应用 第一章绪论 1.什么叫单片机?其主要特点有哪些? 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性价比。 第二章80C51的结构和原理 1.80C51的基本结构 a.CPU系统 ●8位CPU,含布尔处理器; ●时钟电路; ●总线控制逻辑。 b.存储器系统 ●4K字节的程序存储器 (ROM/EPROM/FLASH,可外扩至 64KB); ●128字节的数据存储器(RAM,可 外扩至64KB); ●特殊功能寄存器SFR。 c.I/O口和其他功能单元 ●4个并行I/O口; ●2个16位定时/计数器; ●1个全双工异步串行口; ●中断系统(5个中断源,2个优先 级) 2.80C51的应用模式 a.总线型单片机应用模式 ◆总线型应用的“三总线”模式; ◆非总线型应用的“多I/O”模式 3.80C51单片机的封装和引脚 a.总线型DIP40引脚封装 ●RST/V PO:复位信号输入引脚/备用 电源输入引脚; ●ALE/PROG:地址锁存允许信号输 出引脚/编程脉冲输入引脚; ●EA/V PP:内外存储器选择引脚/片 内EPROM编程电压输入引脚; ●PSEN:外部程序存储器选通信号

输出引脚 b.非总线型DIP20封装的引脚 ●RST:复位信号输入引脚 4.80C51的片内存储器 增强型单片机片内数据存储器为256字节,地址范围是00H~FFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄存器间接寻址方式询问。注意:与该地址范围重叠的特殊功能寄存器SFR 空间采用直接寻址方式询问。 5.80C51的时钟信号 晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12分频后形成机器周期。即一个机器周期包含12个晶振周期或6个时钟周期。 6.80C51单片机的复位 定义:复位是使单片机或系统中的其他部件处于某种确定的初始状态。a.复位电路 两种形式:一种是上电复位;另一种是上电与按键均有效的复位。 b.单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器 PC=0000H,所以程序从0000H地址单元开始执行。 特殊功能寄存器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF 不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为00H.相应的意义为: ●P0~P3=FFH,相当于各口锁存器已 写入1,此时不但可用于输出,也 可以用于输入; ●SP=07H,堆栈指针指向片内RAM 的07单元; ●IP、IE和PCON的有效位为0,各 中断源处于低优先级且均被关断、 串行通讯的波特率不加倍; ●PSW=00H,当前工作寄存器为0 组。 7.80C51的存储器组织

单片机设计8X8LED点阵显示原理与编程技术

#i nclude unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(void) { unsigned char i,j; for(i=10;i>0;i--) for(j=248;j>0;j--); } void delay1(void) { unsigned char i,j,k; for(k=10;k>0;k--) for(i=20;i>0;i--) for(j=248;j>0;j--); } void main(void) { unsigned char i,j; while(1) {

for(j=0;j<3;j++)//from left to right 3 time { for(i=0;i<8;i++) { P3=taba[i]; P1=0xff; delay1(); } } for(j=0;j<3;j++)//from right to left 3 time { for(i=0;i<8;i++) { P3=taba[7-i]; P1=0xff; delay1(); } } for(j=0;j<3;j++)//from top to bottom 3 time { for(i=0;i<8;i++) { P3=0x00; P1=tabb[7-i]; delay1(); } }

单片机基本原理测试题

精品资料 注意事项: 1. 把此试题重命名为“第 X 组X 号XXX ” 2. 所有的图要用笔画在纸上用手机拍下,再粘贴到试题上; 3. 试题中凡是提到解释原因的或者是为什么的都要详细解释,不要用一句话了事; 4. 解答时直接在问题下面解答就可以了,字体必须要用蓝色的宋体五号字;否则后果自负! 电路分析、解释 1. 电阻的作用?为什么用这么大阻值?写出 计算公式?如果指示灯换成一个① 10mm 的大 led (电流值20ma,压降2V),这个电阻需要接 多大值?写出计算公式如何算? 答:电阻作用是限流。 因为LED 的有效电流在 3mA-20mA 之间, 压降为1.7V 。计算公式为: R= ( 5V-1.7V ) /(0.003A~0.02A),所以计算出来,限流电阻为 165欧 到1100欧之间。 R= ( 5V-2V ) /0.02A=150 欧。 2. 如果供电电压变成 12v 指示灯换成一个① 10mn t 勺大led (电流值20mA 压降2V ),这个电 阻需 要接多大值?写出计算公式? 答:R= (12V-2V ) /0.02A=500 欧。 3、电阻电容大小的的选取及计算? 答:因为充电时间必须超过经过两个机器周 期,又T=RC 所以,对电阻电容的选取具有 参数要求。 单片机初始状态各10 口电平状态如何? 答:高电平 单片机复位的条件? “复位”指复位什么? 答:RST 引脚输入高电平,而且必须超过来两 个机器周期;“复位”指单片机程序从 0000H 物理地址开始执行 复位电平要维持多长时间单片机才复位? 2 复位电路 (要求附 有电容充 电坐标 图,分别 详细解释 上电复位 和手动复 位的关键 1、 手动复位的复位过程及解释: 答:1、RST 引脚由接近于0V 经过超过两个机 器周期,变成高电平,超过时间大约为200mso 因为按键按下后,5V 电源经过1K 电阻然后经 过10K 电阻到 地,电容慢慢充电,经过两个机 器周期,电压到达 4.5V 左右,单片机实现高 电平复位。 2、 上电复位的复位过程及解释: 答:电源上电后,VCC 对电容充电,RST 引脚 由1点几伏慢慢变成将近 5V ,高电平复位。 原理图 点的电位 变化) 1 供电电路

Lcd12864点阵液晶屏显示原理

https://www.wendangku.net/doc/15684965.html, Lcd12864点阵液晶屏显示原理 Lcd12864,它就是128列+64行的阵列。每个型号的液晶模块都有它的一些参数,下面看下lcd12864显示的一些原理吧。 lcd12864,每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器。要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置与其在存储器中的地址之间的关系。 由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits 显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。 显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8个液晶点的显示信息。 为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同。 存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。因此存储单元地址包括页地址(Xpage,0~7)和列地址(Yaddress,0~63)。 例如点亮128*64的屏中(20,30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在RAM中页地址为2,在字节中的序号为4;所以将二进制数据00010000(也可能是00001000,高低顺序取决于制造商)写入Xpage=2,Yaddress=29的存储单元中即点亮(20,30)上的液晶点。 1

点阵显示器的扫描原理

点阵显示器的扫描原理 8X8点阵 P2口做传送数据端口P0做行扫描(两者可以互换) (图中二极管方向须反向) 如上图P0口从P0.7到P0.0做扫描P0口数据为0X80 二进制数据为10000000 用右移函数_cror_(P0,1) 即可实现扫描使高电位从高位依次移动到低位实现逐行扫描当P0扫描第一行时即数据为10000000 P2口从P2.0~P2.7 送入第一行要点亮的灯这里低电位为选中(被点亮)高电位为不选中(处于熄灭状态)比如P2口数据为01110011即图中左上角第一位第五位第六位被点亮如果取字模阴取法即可显示出字的上面一行的点依次向下右移一位P2口取第二行要显示的点…………至到第八行整个字的字模码全被点亮一次利用人眼的惰性如果P0口P2口扫描的速度足够快>25HZ 即可看到整个屏被点亮的字模即是所要显示的字型由于LED灯点亮须要一定的电流所以通电的时间长短会影响其亮度扫描速度过快亮度会变低扫描太慢人眼会感到有闪烁感。(追求刚刚好的扫描速度正是LED显示屏显示的关键) 关于向上移动显示 在上面的静止显示的基础上加入移动代码即可实现上移(且以P0口称为行扫描,P2口为点阵显示码) 由于P0口从上往下扫描当第一次扫描完一个字后做N个循环后(这里的N指的是扫描次数因为人眼的观看速度所以还是要停留一会儿)第二次扫描P2口P2.0取第2个码依次到P2.7 取第八个码做N 个循环后再加1……至到将数组中的所有字码全部取出用到的代码如下

Main() { P0=0x80;//定义P0口初始化的值为1000 0000 For(i=0;i<48;i++) //此句中的48为字码的个数减8 For(N=0;N<20;N++)//每取一次码之后循环次数也可称为移动速度 { P2=tab[i+N];// P2口所选字码 Delay(300);// 延时函数(也是调整扫描频率的数值) P0=_cror_(P0,1) 右移函数实现扫描 }//此三句在第二个FOR中循环20次20是一般取值也是调整移动速度的数值. } 向下移动 在静止显示的基础上改变扫描顺序再改变字码的排列顺序就可实现 扫描顺序从P0.0到P0.7扫描在第次扫描中也就是第八行P2口的点阵通过算法P2口可以得到数组的第八个元素其算法为通过一个缓存字符串 For(a=0;a<6;a++) For(b=0;b<8;b++) Buffer[a*8+b]=TAB[a*8+7-b] 该算法实现的重新排列的数组为Buffer[0]= TAB[7] Buffer[1]=TAB[6] …… Buffer[8]=TAB[15] Buffer[11]=TAB[12] 位对应 07 1 6 2 5 3 4 4 3 5 2 6 1 70 815 914 1013 1112 1211 1310 149

51单片机IO口工作原理

51单片机I/O口工作原理 一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为…读锁存器?端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为…读引脚?的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。 D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输

入端),Q是输出端,Q非是反向输出端。 对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。 多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为…地址/数据?总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为…数据/地址?总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为…地址/数据?总线使用的。 输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。 与门、与非门:这两个单元电路的逻辑原理我们在第四课数字及常用逻辑电路时已做过介绍,不明白的同学请回到第四节去看看。 前面我们已将P0口的各单元部件进行了一个详细的讲解,下面我们就来研究一下P0口做为I/O口及地址/数据总线使用时的具体工作过程。 1、作为I/O端口使用时的工作原理 P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),看上图中的线线部份,多路开关的控制信号同时与与门的一个输入端是相接的,我们知道与门的逻辑特点是“全1出1,有0出0”那么控制信号是0的话,这时与门输出的也是一个0(低电平),与让的输出是0,V1管就截止,在多路控制开关的控制信号是0(低电平)时,多路开关是与锁存器的Q非端相接的(即P0口作为I/O口线使用)。 P0口用作I/O口线,其由数据总线向引脚输出(即输出状态Output)的工作过程:当写锁存器信号CP 有效,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的栅极→V2的漏极到输出端P0.X。前面我们已讲了,当多路开关的控制信号为低电平0时,与门输出为低电平,V1管是截止的,所以作为输出口时,P0是漏极开路输出,类似于OC门,当驱动上接电流负载时,需要外接上拉

8X8_LED点阵显示原理与编程技术

8X8 LED 点阵显示原理与编程技术 1 .实验任务 在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,女口此循环下去。 2. 实验目的 掌握用单片机I/O 口进行LED点阵扫描显示。 3. 实验工具 PROTEUS6.9, Keil uVisio n2 软件 4. 原理图 5. 相关知识 1) LED点阵 八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点阵有4X 4、4X 8、5X 7、5X & 8 X & 16X 16、24X 24、40X 40 等多种; 根据像素的数目分为等,双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图1--5示出几种LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验 获得。 2) LED点阵扫描驱动方案: 由LED点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于 見珈乩工柞膏 hnp: WTieKiin r cortvjianc aLlic ng oooGofrc -0 口 c-d

ATC单片机的基本结构和工作原理

A T C单片机的基本结构 和工作原理 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能:

1.中央处理器 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。 以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O 口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

单片机概念及其原理

中断:是指CPU在处理某一事件A时,发生了事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应), 转去处理事件B(中断服务);待CPU将事件B处理完毕后, 再回到原来事件A被中断的地方继续处理事件A(中断返回), 这一过程称为中断。 图单片机中断过程 52单片机一共有6个中断源,它们的符号、名称及产生的条件分别解释如下: INT0—外部中断0,由P3.2端口线引入,低电平或下降沿引起INT1—外部中断1,由P3.3端口线引入,低电平或下降沿引起T0—定时器/计数器0中断,由T0计数器计满回零引起 T1—定时器/计数器1中断,由T1计数器计满回零引起 T2—定时器/计数器2中断,由T2计数器计满回零引起

EA—全局中断允许位 EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。 EA=0,关闭全部中断 —无效位 ET2—定时器/计数器2中断允许位 ES—串行口中断允许位 ET1—定时器/计数器1中断允许位 EX1—外部中断1中断允许位 ET0—定时器/计数器0中断允许位 PS PT1—定时器1/计数器1中断优先级控制位 PX1—外部中断1中断优先级控制位 PT0—定时器0/计数器0中断优先级控制位 PX0—外部中断0中断优先级控制位 为1时,定义为高优先级中断;为0时,定义为低优先级中断 51系列中,高优先级中断能够打断低优先级中断以形成中断嵌套。单片机的定时器中断 单片机定时器/计数器的实质:加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能。TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 定时器中断原理:加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;另一种是T0或T1引脚输入的外部脉冲源,每来一个脉冲计数器加1,当加到计数器全为1时(即65536),再输入一个脉冲就使计数器回零,且计数器的溢出使TCON控制寄存器中TF0或TF1置1,向CPU 发出中断请求(定时器/计数器中断允许时)。若定时器/计数器工作于定时模式,则表示定时时间到;若工作于计数模式,则表示计数值已满。 装载值:溢出时计数器减去计数器初值就是加1计数器的计数值。 ①设置为计数器模式时,加1计数器是对内部机器周期计数(一个机 器周期等于12个震荡周期,即计数频率(机器周期)为晶振频

点阵显示屏成功点亮 原理图 程序

16×16点阵显示屏成功点亮!! 看到江同学的3216屏(),对于我来说,稍显复杂,所以决定做个1616的 屏看看效果,原理图就是以下了,注意做1616时,要去掉一个74LS154(当然这里也能换用 74HC154,虽然功耗大,但价格较低),经过两天的奋斗,终于完工了。简单的调试后,点亮 了!!编个流动显示的程序,哈哈,很炫啊。心动不如赶快行动啊!! 我是把点阵块焊到一块板子上,可方便检查有无虚焊,控制部分放到了另一张板上,做成 的实物图就是下面的了,视频在这里:(注:以下原理图均来自 )

/********************************************************* 程序名称:LED1616点阵流动显示汉字 简要说明:最大可显示16*16汉字 P0口接上行线,P2口接下行线,P3口接扫描线编写:https://www.wendangku.net/doc/15684965.html, 改编:springvirus *********************************************************/ #include

#define hang1 P0 //上行线 #define hang2 P2 //下行线 #define lie P1 //列线 #define sum sizeof(hanzi)/32 //自动计算汉字字数 /*****参数设置*****/ #define ziti 16 //字体大小(宽度) #define light 50 //显示亮度 #define move_speed 50 //移动速度 unsigned char code hanzi[]={ /*-- 文字: 自--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00 , 0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00, /*-- 文字: 制--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x50,0x4F,0x4A,0x48,0xFF,0x48,0x48,0x48,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00, 0x00,0x00,0x3F,0x01,0x01,0xFF,0x21,0x61,0x3F,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00, /*-- 文字: 小--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00, 0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00, /*-- 文字: 型--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00 , 0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00 , /*-- 文字: 点--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0xF4,0x24,0x00,0x00,0x00, 0x00,0x40,0x30,0x07,0x12,0x62,0x02,0x0A,0x12,0x62,0x02,0x0F,0x10,0x60,0x00,0x00, /*-- 文字: 阵--*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0xFE,0x02,0x12,0x2A,0xC6,0x88,0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x88,0x88,0x00,0x0 0, 0xFF,0x00,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x00, /*-- 文字: 显--*/

8×8点阵LED原理及应用

8×8点阵LED原理及应用 作者:华信培训来源:本站原创点击数:5672更新时间:2005-6-30 为配合《实验108×8LED扫描输出实验》,特给出8×8点阵LED的工作原理。图(1)为8×8点阵LED外观及引脚图,其等效电路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。 图(1)8×8点阵LED外观及引脚图

图(2)8×8点阵LED等效电路 图(3)8×8点阵LED电路原理 点阵LED扫描法介绍 点阵LED一般采用扫描式显示,实际运用分为三种方式: (1)点扫描; (2)行扫描; (3)列扫描。 若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。如图3所示。 下面是一个用P1口控制扫描,用74HC164控制显示输出,使8×8点阵LED显示一个“×”的例程。如图(3)所示。 CLK EQU P3.2 DINA EQU P3.3 DINB EQU P3.4 CLEAR EQU P3.5

ORG0000H AJMP MAIN ORG0100H MAIN: MOV SP,#70H;设堆栈指针 MOV50H,#07EH;设置发送的列数据(X0~X7)列数据编码,列为阴极,行为阳极(由于实验中74HC164输出至LED点阵之间接有一非门驱动电路,故行为低电平有效) MOV51H,#0BDH MOV52H,#0DBH MOV53H,#0E7H MOV54H,#0E7H MOV55H,#0DBH MOV56H,#0BDH MOV57H,#07EH CLR CLEAR;初始化I/O口 SETB CLK SETB DINA SETB DINB SETB CLEAR mainloop: mov r6,#8h;设置扫描次数 mov dptr,#09000h;读取扫描端口数据 MOV R1,#50H;指定列数据指针 flashcy: MOV A,@R1;读取列数据 MOV R0,A INC R1;列数据指针加1 CLR A MOVC A,@A+DPTR MOV P1,#0FFH LCALL SENDTO MOV P1,A INC DPTR

单片机的基本结构与工作原理

第二章单片机的基本结构与工作原理 2·1 80C51 系列单片机在片内集成了哪些主要逻辑功能都件?各个逻辑部件的主要功能是 什么? 答:80C51 系列单片机在片内集成了以下主要逻辑功能部件及分别有如下的主要功能。 (l)CPU(中央处理器):8 位 功能:中央处理器由中央控制器与运算器一起构成。中央控制器是识别指令,并根据指 令性质控制计算机各组成部件进行工作的部件。 (2)片内RAM:128B 功能:在单片机中,用随机存取存储器(RAM)来存储程序在运行期间的工作变量和数据, 所以称为数据存储器。一般,在单片机内部设置一定容量(64B 至256B)的RAM。这样小容 量的数据存储器以高速RAM 的形式集成在单片机内,以加快单片机运行的速度。同时, 这种结构的RAM 还可以使存储器的功耗下降很多。 (3)特殊功能寄存器:21 个 功能:特殊功能寄存器(SFR)是80C51 单片机中各功能部件所对应的寄存器,用以存放 相 应功能部件的控制命令、状态或数据的区域。这是80C51 系列单片机中最有特色的部分。 现在所有80C51 系列功能的增加和扩展几乎都是通过增加特殊功能寄存器(SFR)来达到的。 80C51 系列单片机设有128B 内部数据RAM 结构的特殊功能寄存器(SFR)空间区。除 程序计数器PC 和 4 个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。(4)程序存储器:4KB 功能:80C51 单片机的程序存储器用于存放经调试正确的应用程序和表格之类的固定常 数。由于采用16 位的程序计数器PC 和16 位的地址总线,因而其可扩展的地址空间为 64KB,而且这64KB 地址空间是连续、统一的。 (5)并行I/O 口:8位,4 个 功能:为了满足面向控制实际应用的需要,80C51 系列单片机提供了数量多、功能强、 使用灵活的并行I/O 口。80C51 系列单片机的并行I/O 口,不仅可灵活地选作输人或输出,而且还具有多种功能。例如,它既是I/O 口,又是系统总线或是控制信号线等,从而为扩展外部存储器和I/O 接口提供了方便,大大拓宽了单片机的应用范围。 (6)串行接口:全双工,1 个 功能:全双工串行I/O 口,提供了与某些终端设备进行串行通信,或者和一些特殊功能 的器件相连的能力;甚至可用多个单片机相连构成多机系统,使单片机的功能更强和应用更 广。 (7)定时器/计数器:16 位,2 个 功能:在单片机的实际应用中,定时器/计数器提供精确的定时,或者对外部事件进行 计 数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计 数器电路,通过中断,实现定时/计数的自动处理。 (8)片内时钟电路:1 个 功能:计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一 个节拍地执行各种操作的。各种计算机均有自己的固定时序和定时电路。同样,80C51 系

点阵字库生成的原理

所有的汉字或者英文都是下面的原理, 由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列。 生成的字库说明:(以12×12例子) 一个汉字占用字节数:12÷8=1····4也就是占用了2×12=24个字节。 编码排序A0A0→A0FE A1A0→A2FE依次排列。 以12×12字库的“我”为例:“我”的编码为CED2,所以在汉字排在CEH-AOH=2EH区的D2H-A0H=32H个。所以在12×12字库的起始位置就是[{FE-A0}*2EH+32H]*24=104976开始的24个字节就是我的点阵模。 其他的类推即可。 英文点阵也是如此推理。 51单片机的13×14点阵缩码汉卡 我们历时数载,开发成"51单片机13×14点阵缩码汉卡",适用于目前国内外应用最为广泛的MCSX-51及其兼容系列单片机. 与此同时,还开发了13×14点阵汉字字模.13×14点阵字模,可完全与目前通用的16×16点阵汉字字模媲美,其在单片机和嵌入式系统的汉字显示应用中也具有明显的经济价值和实用意义. 1.单片机目前的汉字显示 信息交流的最主要方式之一即文字交流,但由于我国方块汉字数量繁多,构形迥异,使汉字显示一直是我国计算机普及的障碍.随着计算机技术的迅速发展,PC机的汉字显示已不成问题.但对于成本低、体积小、应用灵活且用量极为巨大的单片机而言,因其结构简单,硬件资源十分有限,其汉字显示仍面对着捉襟见肘,力不从心的窘境. 目前单片机的汉字显示有三种基本方法. ①采用标准字库法.即将国标汉字库固人ROM中,将单片机的硬件和软件进行特别扩展后以显示汉字.众所周知,即使是16×16点阵标准字库,也须占用200KB以上的单元内存,而就目前主流5l系列单片机而言,最大寻址范围仅64KB,即使程序区与数据区合起来也仅128KB内存.因此,若不加特别的扩展设计,不要说检字程序和用户空间,仅字库都装不下.这种方法虽然可以方便地使用现成标准字库,但却需占用大量的硬件和软件资源,增加很大一部分成本和设计难度,所以不经常使用. ②字模直接固化法.即将所显示的汉字,依先后顺序将其字模一一从标准字库中提取后,重新固化,予以显示.此法虽为简捷,但只适于显示少量汉字,且字模的制取繁琐,软件的修改维护都很困难. ③带索引小字库法.即将欲显示文件中的汉字字模,从标准字库中逐一提取固化,制成小型字

相关文档
相关文档 最新文档