计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费电子智能抢答器(单片机)(一)信息工(4)

2013-05-21 01:16
导读:码 RET;返回 TABLE:DB00H,01H,02H,03H;键码安排表与键盘相同 DB04H,05H,06H,07H DB08H,09H,0AH,0BH DB0CH,0DH,0EH,0FH ORG0200H DISPLAY:MOVR0,#DBUF;串口静态显示子程序 MOVR2,#3;显示3位数

  RET     ;返回
TABLE: DB 00H,01H,02H,03H ;键码安排表与键盘相同
  DB 04H,05H,06H,07H 
  DB 08H,09H,0AH,0BH
  DB 0CH,0DH,0EH,0FH
  ORG 0200H
DISPLAY:MOV R0, #DBUF  ;串口静态显示子程序
   MOV R2,#3  ;显示3位数码
   MOV DPTR,#SEGTAB;
DISP:  MOV A,@R0  ;
   MOVC A,@A+DPTR ;取字段码
   MOV SCON,#0  ;置串口工作方式0
   MOV SBUF,A  ;开始发送
   JNB TI,$  ;等待发送完毕
   CLR TI   ;发送完毕,标志位清零
   INC R0   ;缓冲单元地址增1
   DJNZ R2,DISP  ;三位数码发送完否?
   RET    ;发送完毕,则返回
SEGTAB:  DB  0FCH,60H,0DAH,0F2H   ;0,1,2,3(共阳极字段码表)
         DB  66H,0B6H, 0BEH,0E0H  ;4,5,6,7
         DB  0FEH,0F6H,0EEH,3EH  ;8,9,A,B
 DB  9CH,7AH,9EH,8EH    ;C,D,+,-
   END
 
抢答器软件程序(附2)
 #include <REGX51.H>
 #define uchar unsigned char
 //共阴码
 //uchar code table[]={0x00,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe };  /*代码存储区(64KB)*/ 
 //共阳码
 uchar code table[]={0x03,0x9f,0x25,0x0d,0x99,0xc2,0x41,0x1f,0x01,0xff };              
 void delay (void)  {                  /* delay 函数*/ 中国大学排名
   uchar i,j;                  /*这个函数执行时间的延迟 */
  for (i=0;i<20;i++)
   for(j=0;j<250;j++)
   ;
 }   
 void main (void)  {
   uchar temp,key,j,time;                 /* 声明变量temp  */
   while (1) {                        /* 无穷循环 */
  temp=P0;    /*  将P2输入的数据直接放入变量temp当中 */
  delay();
  temp=P0; 
  switch(temp) {
  case 0xfe: key = 1;break;
  case 0xfd: key = 2;break;
  case 0xfb: key = 3;break;
  case 0xf7: key = 4;break;
  case 0xef: key = 5;break;
  case 0xdf: key = 6;break;
  case 0xbf: key = 7;break;
  case 0x7f: key = 8;break;
  default : break; }
  if(temp==0xff) { for(time=1;time>0;time--) /*无键按下,则关显示*/
       { j=table[0];
                       SCON=0x00;
  &nbs
上一篇:步进电机控制系统上位机的意义和目的信息 下一篇:没有了