自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

转载 矩阵键盘扫描

根据矩阵键盘的原理图可知,当没有按键按下时,P1=0xf0;然后依次将P1^0~P1^3单独置低电平,其他置高,再扫描各列的状态,来判断是哪个按键按下,比如,将P1^0输出低电平,其他的引脚都输出高电平,即P1=0xfe,那么当第1行有按键按下时P1的相应值为,1X1(01111110=0x7e) 1X2(10111110=0xbe) 1x3(11011110=0xde) 1...

2014-04-16 22:01:00 445

转载 矩阵键盘原理

根据电路原理图,键盘扫描方法是:行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。现在我们以第二行的S5键为例,若按下S5后我...

2014-03-30 21:18:00 1781

转载 抢答器

利用独立按键设计一个抢答器,代码很简单,但是却花了近一个小时,接错线,线8位的顺序出错等,原以为很简单的东西,却花了大量时间在代码之外,或许这就是单片机的特点吧,不光是代码要正确,还要外部连接正确才能最终达到预期的效果。#include <reg52.h>sbit Key1 = P0^0; //按键1sbit Key2 = P0^1; //按键2s...

2014-03-25 22:15:00 273

转载 按键长按短按

长按是在短按的基础上,以一个很短的时间(10ms)再次判断按键是否片于按下状态,当达到一定的时间(1s)后,按键还处于按下状态,说明是长按状态,结合上一节的短按,下面实现一个从0-99的累加,短按时一次加1,长按后,进入快速累加的过程,同时使用了定时器来定时刷新数码管,在Display的处理上就和之前的不同,原来在Display里通过循环刷新每个数码管的显示,现在放到了定时器定时触发的事...

2014-03-24 22:18:00 820

转载 按键控制数字加1减1

前面学习了数码管和按键,将两者结合,完成一个用两个按键控制加减数字的小程序,一个按键控制加1另一个控制减1。#include <reg52.h>sbit KeyAdd = P0^0; //加1按键sbit KeyDec = P0^1; //减1按键sbit LATCH1 = P2^2; //段锁存sbit LATCH2 = P2^3; //位锁存...

2014-03-19 21:50:00 5394

转载 独立按键的使用(2)

上一节的按键的使用中,效果是按下键亮,弹起后又灭,无法保持状态,下面的实现按下弹起后,实现一次切换;#include <reg52.h>sbit LED = P0^2; //控制引脚sbit Key = P0^0; //按键void main(void){ LED = 0; //初始亮 ...

2014-03-17 22:36:00 378

转载 独立按键的使用(1)

我有学习板上独立按键共有8个,可以把它做为一个输入端口的8位控制。按下时输出0,松开时输出1,下面是用按键控制一个LED的亮灭,按下时亮,松开时灭。#include <reg52.h>sbit LED = P0^2; sbit KEY = P0^0; // 注意输入要使用P0或P3,这两个口同时支持输入和输出void main(){...

2014-03-15 22:57:00 514

转载 定时工作方式2实现1s定时

定时器的几种工作方式中,除0和前面的1类似都需要初始化计数值,然后开始计数,计数溢出后,需要再次控制计数的初值,但工作模式2不同于此,工作方式2将THx和TLx分开处理,将初值存放在THx中,计数时只处理TLx的8位,所以计数最大值为2^8=256,方式2的另一个特点是,当计数溢出后,不需要控制初值,而是会自动将THx中的值做为计数初值重新开始计数。用工作方式2,实现1s延时程序如下:...

2014-03-15 22:43:00 2882

转载 以中断方式实现1s定时

中断方式比较特殊,需要使用单片机内部的中断处理机制,同时指定中断函数。#include <reg52.h>sbit LED = P0^2;unsigned int vT = 0;void main(){ LED = 0; TMOD = 0x01; TH0 = 0x3C; // 计数初值3CB0H = 1553...

2014-03-15 22:01:00 3211

转载 以查询方式实现1s定时

以查询控制器的控制位状态来实现1s定时。#include <reg52.h>sbit LED = P0^2; unsigned int vT = 0;void main (){ LED = 0; // 点亮 TMOD = 0x01; // 定时模式1 16位定时计数器 TR0 = 1;...

2014-03-15 14:01:00 885

转载 定时计数-总述

上一节,稀里糊涂地照着demo测试了定时计数的效果,但对内部和参数的控制还是不解,准备从基础原理学习定时计数器的工作原理和方式。8051单片机的结构是由一内部总线连接各功能模块,通过特殊功能寄存器(SFR)集中控制,不同型号引脚定义和SFR定义不同,因此一个功能模块,可以从相关引脚功能和相关SFR功能学习了解该模块。以8051为例,其定时计数模块的特点有2个16位定时计数器,最大...

2014-03-15 12:33:00 358

转载 定时器工作模式1

通过前面的定时器理论了解到,使用一个定时器,要经过下面四步:1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);3、如果工作在中断方式,则需要开定时器/计数器的中断TCON中的标志位:TF0/TF1=0/1;4、启动定时器/计数器:TR0/TR1=1...

2014-03-11 22:59:00 5490

转载 单片机的定时器

定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件,晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒;12MHZ晶振内部的工作频率(时钟脉冲频率)是12MHZ/12=1MHZ=1000000次/秒=1000000条指令/秒=1000000...

2014-03-11 22:05:00 627

转载 数码管左移

#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code We...

2014-03-11 21:51:00 1305

转载 数码管闪烁

数码管闪烁,利用一个布尔变量控制各数码管的显示值,为真(True)是赋对应的数值,为假(False)时熄灭,还是利用一定的时间间隔,在人眼的视觉暂留时间段内,快速的切换熄灭和点亮,可用下面的代码测试。#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char ...

2014-03-11 21:40:00 1445

转载 数码管消隐

按照我的开发板,共阴极数码管共8个,也就是说,只能显示8位数字,0-99999999,当显示的数字不足8位时,需要将不显示的数码管熄灭即消隐,代码原理就是将存储显示值的数组变量中,不显示的位在P1口输出0(熄灭),以下显示0-9999四位有效数字为例,从第2位数码管开始,显示最多4位有效数字:#include<reg52.h>sbit LATCH1=P2^2;//段锁...

2014-03-08 22:19:00 1768

转载 数码管显示小数点

数码管的小数点单独有一位来控制,这就是物理世界和数字世界的神奇之处,数码管用来显示数字和字母的led段有7个,再加上小数点共8个,正好对应一个字节的位数,这样使用单片机的一个口正好可以全部操作,通过http://www.cnblogs.com/coloregg/p/3565486.html 可以看到点是单独位来操作,比如显示2.,只需将数字2对应的二进制数第1位改为1即可,在实际中,我...

2014-03-03 21:56:00 7762

转载 9-0累减

累减是和累加相反的过程#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code...

2014-03-03 21:32:00 183

转载 0-9999累加

同理0-9999累加的代码是#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char c...

2014-03-03 21:24:00 321

转载 0-999累加

实现0-999累加#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code W...

2014-03-03 21:16:00 543

转载 0-99累加

同上一篇原理相似,实现0-99累加的代码如下#include<reg52.h>sbit LATCH1=P2^2;//段锁存sbit LATCH2=P2^3;//位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigne...

2014-03-03 21:11:00 420

转载 1累加到9

#include<reg52.h>sbit LATCH1=P2^2;//定义锁存使能端口 段锁存sbit LATCH2=P2^3;// 位锁存unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9unsi...

2014-03-01 20:27:00 213

转载 数码管显示按键对应的数字

利用P3口接收外部输入(P0和P3都支持输入和输出),8位外部按键其实对应了8位二进制数,按下的为0,没按的为1,根据对应的输入显示对应的输出。#include<reg52.h>unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; // ...

2014-03-01 20:15:00 2661

转载 数码管显示动态数字

以下代码在8个数码管上同时依次显示从0~F,利用i,j,m三个变量来实现显示的控制。#include<reg52.h>sbit LATCH1=P2^2;sbit LATCH2=P2^3;unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0...

2014-03-01 20:03:00 669

转载 8位动态数码管

以下代码在8个数码管依次显示01234567,其原理是通过锁定位和段显示1个码,然后适当延时保持一会儿让人眼识别接着解锁位和段,赋值下一个数字,然后锁定位和段,再延时让人眼识别,这样通过不断的赋值依次将8个数字送到数码管。#include <reg52.h>void Delay(unsigned int t);sbit LATCH1 = P2^2; // 定义锁存...

2014-03-01 19:49:00 1943

转载 8位共阴数码管

多位数码连接上可使用共阴极和共阳极,各管可以用锁存器来保持其各自的数字,其原理就是位锁存器选通1位数码管,然后段锁存锁定输出的数字。如果多位显示的话,利用人眼的视觉暂留,分别以很快的速度位锁段锁一数码管,再位锁段锁另一数码管,下一篇将会学习。下面是将共阴极第一位显示数字3的示例。#include <reg52.h>sbit LATCH1 = P2^2; //定义锁存使...

2014-02-28 22:56:00 3472

转载 点亮数码管

数码管的示意图如上,通过点亮a-g七个led来拼成对应的数字或字符,数码管有共阳极(底电平亮)和共阴极(高电平亮),以上图的数字2为例:共阳极(0亮1灭): DP G F E D C B A 1 0 1 0 01 0 0 = 0xA4共阴极(1亮0灭): DPG...

2014-02-26 14:21:00 390

转载 51中的C语言数据类型

在标准C语言中基本的数据类型为char,int,short,long,float和double,而在C51编译器中int和short相同,float和double相同。说明:(1)类型修饰符signed和unsigned用于修饰字符型和整形。(2)类型修饰符short和long用于修饰字符型和整形。(3)当用signed和unsigned、short和long修饰...

2014-02-23 21:56:00 236

转载 1s延时程序

#include <reg52.h>sbit P1_0 = P1^0;void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误void Main(){while (1) // 开始一直循环{P1_0 = 0;Delay(); // 没有参数也要加 () 否则会有WarningP1_0 = 1;Delay();}}void Delay() ...

2014-02-23 21:19:00 5810

转载 位寻址和不可位寻址

#include <reg52.h> // 引用52包文件sbit P0_0 = P0^0; // 定义P0第0个管脚sbit P0_1 = 0x81; // 定义P0第1个管脚sbit P0_2 = 0x80^2; // 定义P0第2个管脚void main(){P0_0 = 0; // 点亮P...

2014-02-19 18:31:00 2647

转载 第一个程序点亮一个LED灯

#include <reg52.h> // 引用52包文件 可以理解为命名空间sbit P1_0 = P1^0; // 定义P1管脚0void main() // 主程序 C语言所必需要有的{P1_0 = 0; // 点亮P1第0管脚连接的LED}===============以下非程序代码======...

2014-02-18 18:18:00 561

转载 Keil的使用-1创建项目和工程

下载keil,注意不要使用MDK版本(主要是arm开发使用),大小约54M安装过程不再详述安装Keil成功并运行后,新建项目,创建新项目,然后弹出下图,选择对应的单片机芯片(双击)点击OK提示是否复制标准代码到项目中,这里选择否点击新建文件按钮或者菜单下的新建弹出新建对话框再将新建的文件保存,...

2014-02-18 18:15:00 219

转载 表头斜线

在RVTable.pas单元中修改1.定义枚举 //斜线类型 无,左上右下,左下右上,左上右下2, 交叉 TSantType = (stNone, stLT_RB, stRT_LB, stLT_RB2, stCross);2.为TRVTableCellData类增加属性 published .......property SantT...

2013-05-15 16:49:00 122

转载 richview表格夸页的修改(源码)

主要是修改SclRVIew单元的CalculatePageCount函数增加变量 vPageStartTableItemOffs: array of Integer; 存放夸页时,上一页已经绘制掉的东西vHasDrawOffs: Integer; //表格跨页时,前页剩余的高度vCanOffsLines: Integer; //剩余高度能显示多少行内容...

2013-05-06 16:42:00 196

转载 业内常见电子病历编辑器简单比较(2)数据元功能比较

业内常见电子病历编辑器简单比较(2)数据元功能比较数据元处理,卫生部从09年到现在,连发三版数据元标准,可见数据元对病历的重要性,其实作为一个搞信息的人都知道,如果病历实现电子化后,不能做结构化处理,没有意义,三版数据元,最后一版是2012年的意见版,其中09版的数据元编码用的和健康档案的编码系统一样,是以HR开头,2011版和2012版均以DE开头,而且数据元的属性也有所减少...

2012-08-14 11:41:00 280

转载 业内常见电子病历编辑器简单比较(1)编辑控件来源比较

业内常见电子病历编辑器简单比较(1)编辑控件来源比较电子病历软件,均涉及病历书写,所以,病历编辑器就成了病历书写方面比较重要的控件,目前有众多的文本编辑控件,有的有源码,有的无源码,也有的厂家自己开发编辑器,经过一段时间的了解,也看了一些编辑器,感觉有必要做个比较,因开发实力和技术水平不同,同样的源码不同的人也会做出不同功能的东西,所以此文只做相互交流用,此文只对某版本的控件做...

2012-08-13 15:28:00 1345

转载 GB(国标)字典大全

GB/T2659-2000 世界各国和地区名称代码 http://files.cnblogs.com/coloregg/GB_T2659-2000.rarGB/T4761-2008 家庭关系代码 http://files.cnblogs.com/coloregg/GB_T4761-2008.rar转载于:https://www.cnblogs.com/coloregg/archi...

2012-08-07 15:11:00 1950

转载 关于电子病历系统的设计模式(转)

一、模式国内电子病历系统的开发不外2种模式:C/S模式和B/S模式,其中C/S模式一般是以开放的文字编辑器为基础进行开发,而B/S一般采用页面填写模式,也有采用OCX控件模式(这种模式其实也是一种C/S)。两种模式各有优劣,从我个人角度讲,更趋向于C/S(这里是指三层结构的C/S),理由如下:1、B/S相对于C/S最大优势在于客户端免维护,其实C/S做好了,也可以实现自动升级和客...

2012-08-07 09:22:00 883

转载 关于数据字典表

数据字典表 医疗信息系统中的数据,要求真实性比较高,以前,当字典表的数据发生变动时,已经使用的数据中,该字段呈现时会是最新的数据,因为数据表中存的是字典表的code或id字段。如下表所示转载于:https://www.cnblogs.com/coloregg/archive/2012/07/19/2600030.html...

2012-07-19 21:42:00 157

转载 电子病历的发展

电子病历的发展 电子病历的发展,大概是5-10年时间,第一阶段,是结构化和数据挖掘的阶段,这个阶段持续5年左右,再往后,就是区域互联互通。目前来说,各厂家都是起步阶段,个别大的厂商可能完成了起步,但做到数据挖掘的寥寥无几。这个阶段,各厂家的速度也都差不了太多,尤其卫生部规范出台后,原先一些产品也面临重新开发,可能相对周期会短一些,目前各厂家在电子病历中相对落后的是临床路径,受医...

2012-07-16 22:10:00 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除