`
yunchow
  • 浏览: 318304 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
   花了几天时间整了下单片机的键盘.我用的单片机板子是用的P2的8个IO端口对16个键达到控制的目的.     那怎样来使用8个端口控制16个键呢?其实很简单,先必须要掌握她的原理图, 附件中作者上传了一张,仅供参考.原理图看了之后,我们就可以正式开始编写程序了.     先将KEY0置低电平,其余的置高电平,当我们按下第一列的按键时,P2的高四位肯定会有所变化,而我们就是用的这种变化达到分辨不同按键的目的.同理,我们可以将KEY1置低电平,再去检测P2的高四位,也得出了第二列按的哪个键.依次类推,我们即可检测单片机的16个按键了.     下面有一个单片机键盘的完整示例程序,本程序已在89 ...
      程序中还有不能实现的地方,如果数组中的0的话会将其算为一个正数,百思不得解,望能者指正之 DATAS SEGMENT BUF DB 1,2,9,-2,-1,-4,3,-6,7,4 STR DB 13,10,' POSI: ' POSI DB ? DB ' , NEGA: ' NEGA DB ? DB '$' DATAS ENDS ;--------------------- CODES SEGMENT ASSUME DS:DATAS,CS:CODES START: MOV AX,DATAS MOV D ...
程序中还有一些bug,请各大网友指正 DATAS SEGMENT BUF DB 11H,11H,11H,11H,11H,11H RESULT DB 'The result is: ' NUM DB 0 DB 13,10,'OVER','$' COUNT Dw 5H DATAS ENDS ;-------------------------------------- CODES SEGMENT ASSUME DS:DATAS,CS:CODES START: MOV AX,DATAS MOV DS,AX XOR AX,AX M ...
#include<stdio.h> #include<stdlib.h> #include<time.h> #define randomize() srand((unsigned)time(NULL)) //定义一个宏 //PCB结构体定义部分 typedef struct PCB { /** 进程标识符,取值1-5 **/ unsigned int id; /** 进程优先级,随机产生,值1-5 **/ signed int priority; /** 目前已占用的CPU时间数, 初值为0;当该进 ...
  让单片机的数码管显示的数从0开始递增一直到255,然后重新置0,再递增,如此循环.   还是用到了将要显示的数进行百位,十位,个位的分离.   从这篇开始,以后的程序就要注意程序的规范性,与可读性了.源代码如下(已经成功调通): #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit sda = P1^0; sbit clk = P1^1; sbit dig1 = P1^2; sbit dig2 = P1^3; sbit dig3 = P1^4; sbit d ...
   利用数码管显示三位数是利用了单片机数码管的动态扫描,但此方法又有不同点,我们不再需要位选table,实现的具体思路是,先将要显示的3位数进行百位,十位,个位进行分离,然后再利用动态扫描将其显示即可.    源代码如下,产生的效果是:可以显示任一个小于255的整数 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit sda=P1^0; sbit clk=P1^1; sbit dig1=P1^2; sbit dig2=P1^3; sbit dig3=P1 ...
     要达到单片机数码管轮流显示的效果,不但要控制哪一个数码管显示,还要控制此数码管显示什么内容,因此我们引入两个table分别对位选和段选进行编码放入这2个table,再利用下标就可以来同时控制位选和段选信号了.     源代码如下,产生的效果是:四个数码管轮流显示1-9 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit led2=P0^0; sbit led3=P0^1; sbit led4=P0^2; sbit led5=P0^3; sbit s ...
   servlet的主要作用是在不同的页面之间进行跳转,因为这个地方用了MVC设计模式,关于MVC设计模式具体的内容,以后会再细说,对于Servlet来说,它主要是充当了一个控制器的作用.在跳转时用到了两个非常重要的对象request,response一个是用来传递参数的,而另外一个主要是向客户端返回数据的.各有不同的作用.     我们可以通过request.setAttribute("name",name);来达到在不同页面传递参数的目的. 然后再用request.getAttribute("name");来接收传过来的数据.这就是request共享 ...
   单片机的定时器的工作原理是利用了寄存器的溢出来触发中断的,所以在写定时器的时候就要去算计数的增量,再根据单片机的晶振的频率就可以算出确定的时间了.    附件中有一计算器是用来计算初值的,十分方便    定时器主要用到了2个寄存器,一个为TCON,另一个为TMOD.TCON是用来控制定时器的启动与停止的.TMOD是用来设置定时器的模式的.她们的具体的位说明,下面有一张图片,一看便清楚了.    下面我们写一个单片机定时器的例子,产生的效果是:4个数码管每秒会增1,当增加到最大值时,重新从0开始递增.     先说说写单片机定时器的步骤:1,对TMOD赋值,以确定T0和T1的工作方式。 ...
     servlet可以实现Servlet接口,也可以继承GenericServlet类,它们有一个共同的地方,那就是要重写service()方法.下面我们讲第三种方法,继承HttpServlet类.     需要重写doGet(),doPost()方法,然后根据请求,选择应该写到哪个方法里面,不过此处作者建议使用将两种方法合二为一的另一种方法,也就是在doPost()方法里调用doGet()方法,反之亦可,如下: public void doGet(XXXX){ doPost(XXX); } public void doPost(XXX){ }     下面我将说说S ...
   servlet的生命周期由容器来自动管理。    1.装载servlet由相应的容器来完成    2.创建一个Servlet实例.    3.调用Servlet的init()方法    4,服务    5,销毁
  到底什么是Servlet呢?想必学过J2SE的人都听说过Applet吧!其实Serlet与Applet的本质区别就是Serlet是运行在服务器端的应用程序,而Applet是运行在客户端的小程序。那究竟Servlet与一般的Jave程序又有何区别呢?其实只要你是搞Java的 ...
   80C51的中断系统有5个中断源(80C52有6个),2个优先级,可实现二级中断嵌套。      根据它的原理图就可以看出,80C51一共有4个寄存器(TCON,SCON,IE,IP),附件有她们的详细的寄存器示例图。    如果想产生一个中断请求,首先要做的就是打开IE里的EA标志位,因为IE寄存器的地址是0xA8,所以可以对其位进行操作。而EA标志位是整个中断系统的总开关,这一步必不可少。接着还要将你要产生的中断号对位的IE中的相应位置高电平,包括EX0(0号外部中断),ET0(0号定时器中断),EX1(1号外部中断),ET1(1号定时器中断),ES(串口中断);上面的就是 ...
      刚开始的时候把74HC164当成了74HC573使了,还看了原理图,半天摸不出个所以然,然后上网查了资料,才知道原来74HC164是串入并出的,此时才知道思考方向出错了。于是再看原理图再分析示例代码方有所获。       原来164只有一个输入端sda(P10),一个控制位clk(P11),还有四个位选:dig1~dig4分别与P13~P15相连,我们可以通过控制dig来达到选位的目的,然后再用sda来向164里传数。而164共有8个输出端,刚好对应了数码管的一个字节(a,b,c,d,,e,f,g,dp),从而显示出不同的数。        还有我写的一个例子程序发现了一个小问题, ...
   今天总算是看到了一点单片机实在的东西了,经过今天的学习,我知道了单片机数码管的简单控制,总体说来,还是挺简单的,只是不知道的时候觉得难,真正的去学习的时候,又变得简单起来。    单片机数码管的原理大概是这样的,分别对一个字节进行编码,暂且将其叫a,b,c,d,e,f,g,h,当她们取不同的值时,将会得到不同的显示,那为什么是八位呢,因为在计算机里8位刚好是一个字节,这样就使其变的合理起来,可以把一个字节的数据送到某个寄存器里面,然后再送给数码管,得到相应的显示。编码如下: ---------------------------------------------------- 0x3f  ...
Global site tag (gtag.js) - Google Analytics