C51回顾六

1.液晶(Liquid Crystal)是一种高分子材料。液晶显示器(Liquid Crystal Display)的主要原理是以电流刺激液晶分子产生点,线,面并配合背光构成画面。各种型号的液晶通常是按照显示字符的行数或液晶点阵的行,列数来命名的。如1602的意思是每行显示16个字符,可以显示两行,这类LCD通常都是字符型液晶,即只显示ASCII字符,如数字,大小写字母,各种符号等。12864是图形型液晶,意思是液晶由128列,64行组成,即128*64个点来显示各种图形。根据客户需求,厂家可以设计出任意数组合的点阵液晶。LCD的比较致命的弱点是它的使用的温度范围比较窄,即使好的宽温级的液晶,其正常工作的温度范围在-20~+70度,设计产品时,务必要考虑到这个限制因素。

2.大多数液晶显示屏的操作都是纳秒级的,51单片机的操作有很多还是微秒级的,因此通常我们在写程序时可以不做延迟。

3.在液晶显示设计中要考虑到的因素:

1)是否能显示汉子?

2)是否带背光灯?

3)什么样的接口,并行或串行?

4)并行是几根线,串行又是几根线?

5)能显示的字符或汉子的尺寸范围?如16*8,16*16,24*24等等。

6)最大和最小功耗?

7)工作温度?

4.通常对寄存器的操作分为位操作,字节操作和字操作,而需要注意的是只允许字节操作的寄存器带位操作,只允许字操作的寄存器带字节操作,甚至只允许字操作的寄存器带位操作,通常都可以采用#define宏定义来解决操作限制的问题。

5.造数据常用的两种方式:

1)用Excel表格先造出所需要的数据,放到单片机中作为固定的码表,这里的数据占用的是Flash的空间。

2)用for循环动态给一个数组赋值,更多的是占用SRAM。

例:uchar datas[90];

uchar k;

for(k=0;k<90;k++) datas[k]=k;

这里使用数据........

for(k=0;k<90;k++) datas[k]=2*k;

这里使用新的数据........

for(k=0;k<90;k++) datas[k]=180-k;

这里使用新的数据........

for(k=0;k<90;k++)

{

datas[2*k]=k+90;

datas[2*k+1]=90-k;}

这里使用新的数据........

6.通常光敏二极管使用时要反向接入电路,即正极接电源负极,负极接电源正极,根据PN结反向特性可知,在一定反向电压范围内,反向电流很小且处于饱和状态,在光敏二极管中称为暗电流,光照射时,流过PN结的是光电流。

7.光敏二极管的常见工作状态

1)当其加上反向电压时,其反向电流随着光照强度的改变而改变,光照强度越大,反向电流越大。

2)光敏二极管不加电,利用PN结在受光时产生的正向电压,把它作为微型电池,这种一般作为光电检测器。

8.单片机产生随机数。

9.通常建议不要在中断函数里定义变量,随便调用其他函数,如打印函数,带有死循环的函数。

时间: 2024-10-11 22:05:12

C51回顾六的相关文章

C51回顾五

一.串口通讯中,在发送数据时,数据位尾随的一位为奇偶校验位(1或0).奇校验时,数据中1的个数与校验位1的个数之和应为奇数,偶校验时,数据中1的个数与校验位1的个数之和应为偶数.接受字符时,对1的个数进行校验,若发现不一致,则说明传输过程中出现了差错. 二.RS232C总线标准要求收发双方共地,通信距离大时,收发双方的地电位差就明显了,在信号地上有比较大的电流,并产生压降. 三.串口线又分为平行串口线和交叉串口线,母对母串口线,母对公串口线等等. 四.51单片机常用晶振11.0592Mhz,因为

C51回顾三

一.C51扩展的13个关键字 bit  位变量说明    声明一个位变量或位类型的函数 sbit 位变量说明    声明一个可位寻址的寄存器的位 sfr  8位特殊功能寄存器的声明 sfr16  16位特殊功能寄存器的声明 data   直接寻址的8051内部寄存器 bdata  可位寻址的8051内部寄存器 idata   间接寻址的8051内部寄存器 pdata   分页寻址的8051外部寄存器 xdata   8051外部数据寄存器 code   8051程序存储器 interrupt  

C51回顾二

一.在使用多位一体数码管时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连在一起的,独立的公共端可以控制具体哪一位数码管可以显示,连在一起的段线可以控制到底显示什么数字.通常我们把公共端叫做位选线,连接在一起的段线叫做段选线.通常单位数码管是10个引脚,二位数码管也是10个引脚,四位数码管是12位引脚. 二.在嵌入式编程中,根据不同的需要来建立自己的码表会经常遇到的,这里共阴极数码管的码表在C51中可以这样建立,以下只是一个示例: unsigned char code table[ 

java基础回顾(六)——ThreadPoolExecutor

先来看一下构造函数 1 public ThreadPoolExecutor(int corePoolSize, 2 int maximumPoolSize, 3 long keepAliveTime, 4 TimeUnit unit, 5 BlockingQueue<Runnable> workQueue, 6 ThreadFactory threadFactory, 7 RejectedExecutionHandler handler) { 8 if (corePoolSize < 0

C51回顾七

1.定时器中断的允许位ET0的置位或置零可能会影响之后的延迟函数的执行时间.有时候你将ET0=1打开,仿佛延迟函数变长了,ET0=0关闭,仿佛延迟函数又变短了.这也许就是定时器的溢出时间很短,而定时器的中断函数又有很所语句要执行,在ET0=1打开时,在执行延迟函数的中间,可能发生了定时器的中断,转而去执行定时器中断函数,并且可能这样进出中断很多次,导致了延迟函数的延迟时间不确定了. 2. 3. 4 5. 6.再次申明中断函数没有形参,没有返回值,也不可以在中断函数中调用一个带返回值的函数. 7.

C51回顾四

一.采样定理可以简单表述为,为了还原原始信号,采样信号的频率不能小于原始信号最高频率分量的两倍. Fs>=2Fy Fs为采样频率 Fy为输入信号的最高频率分量的频率. 二. 三._nop_()这个函数是延迟一个周期的意思,用到它时,程序中需要包含头文件intrins.h. 四.D/A转换的一些参数: 1)建立时间:指输入数字量变化时,输出电压变化到相应稳定电压值所需要的时间.一般用转换器输入的数字量从全0变为全1时,输出电压达到规定的误差范围(+-LSB/2)时所需要的时间. 2)温度系数:指在

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

JS基础知识回顾:引用类型(六)

ECMA-262对内置对象的定义是:由ECMAScript实现提供的.不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 开发人员不必显式的实例化内置对象,因为他们已经实例化了. 前面我们已经介绍了大多数内置对象,如Object.Array.String,ECMA-262还定义了两个单体内置对象:Global和Math. Global对象可以说是ECMAScript中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的. 实际上并没有全局变量或全局属性

C++基础学习教程(六)----类编写的前情回顾以及项目实战(1)

在开始类的编写之前我们依然需要回顾整理一下前面所说的内容,(前面虽然是一个自定义数据类型的实现过程,但是内容有点繁杂). 先看一段代码: /** @file calssStruct.cpp */ /** Member Functions for Class point */ #include <cmath> // for sqrt and atan using namespace std; struct point { point() : x_(0.0), y_(0.0) {} point(d