8279示例程序

合集下载

单片机芯片8279用法讲解

单片机芯片8279用法讲解

0:写入后地址不变 1:每次写入地址自动加
键盘显示接口芯片8279
⑥ 禁写显示RAM/消隐命令
1 0 1 IWA IWB BLA BLB
特征 无 A组 B组 A组 B组

效 禁写 禁写 消隐 消隐
IWA:禁止A组显示 RAM写。D3=1,A组禁写;D3=0,允许A组写。
OUTA3~OUTA0与OUTB3~OUTB0单独使用时,若只想改变B组的输出 值而A组的输出不受影响,就可以让D3=1即禁止向A组显示RAM写数据,这 样在向显示RAM的一个单元写入8位字节数据时就只写入字节的低4位而字节 的高4位不写入RAM单元。
3.8279的工作方式
8279有三种工作方式——键盘输入(键扫描)、传感器扫描、选通输入 键盘输入方式:有键按下时,回复缓冲器缓冲并锁存行列式键盘的列输入线。在
逐行列扫描时,回复线用来搜寻每一行列中闭合的键,当某一键闭合时,去抖 电路被置位,延时等待10ms后,再检查该键是否仍处在闭合状态,如不是闭合, 则当做干扰信号不予理睬;如是闭合,则将该键的列扫描码、行回复码、引脚 CNTL和引脚SHIFT的状态(两个独立附加的开关)一起形成键盘数据被送入 8279内部的FIFO(先进先出)存储器。键盘数据格式如下:
FIFO RAM的状态寄存器: (a)键盘输入方式或选通输入方式,寄存FIFO RAM的工作状态,FIFO
RAM不空时,会使IRQ变高; (b) 传感器方式,若检测出传感器的状态发生了变化,会使IRQ变高
⑥ 显示RAM及显示地址寄存器
显示RAM:16×8位,存储字符的字形码,显示时,从OUTA3~0和OUTB3~0输出
8个数码管从左至右依次 0 1 2 3 4 5 6 7
显示RAM地址单元

8279键盘和显示程序

8279键盘和显示程序

8279键盘和显示程序#include<at89c52.h>#include<absacc.h>#include<stdio.h>#define COM8279 XBYTE [0xF2FF] //定义8279控制口#define DATA8279 XBYTE [0xF0FF] //定义8279数据口#define uchar unsigned char#define uint unsigned intuint keyval //定义键内码传递参数uint time //定义延时参数void delay(uint time)void key(void)void main(){delay(1300) //开机延时COM8279 = 0xD2 //清除RAM和FIFO delay(1)EA=1EX1=1 //开总中断,开外部中断1;IT1=1 //外部中断1选用下降沿COM8279=0x03 //8279键盘N键巡回,编码扫描,左端入口COM8279=0x2a //时钟分频设置,分频数为10COM8279=0x70 //设置读显示命令COM8279=0x90; //设置写显示命令while(1)}void delay (uint time) //传递参数为time{uchar jwhile (time--) //用time-1来进行循环{for (j=100;j>0;j--) //用j来进行125次循环,大约8us }}}void intsvr1(void) interrupt 2 using 1{keyval=DATA8279key()}//按键确认程序void key(void){switch(keyval){case 0xC3: //0号键赋值{P0=0x3F;DATA8279=P0;break;}case 0xC2: //1号键赋值;{P0=0x06;DATA8279=P0;break;}case 0xC1: //2号键赋值;{P0=0x5B;DATA8279=P0;break;}case 0xc0: //3号键赋值;{P0=0x4F;DATA8279=P0;break;}case 0xCB: //4号键赋值;{P0=0x66;DATA8279=P0;break;}case 0xCC: //5号键赋值;{P0=0x6D;DATA8279=P0;break;}case 0xC9: //6号键赋值;{P0=0x7D;DATA8279=P0;break;}case 0xC8: //7号键赋值;{P0=0x07;DATA8279=P0;break;}case 0xD3: //8号键赋值;{P0=0x7F;DATA8279=P0;break;}case 0xD2: //9号键赋值;{P0=0x6F;DATA8279=P0;break;}case 0xD1: //A号键赋值;{P0=0x77;DATA8279=P0;break;}case 0xD0: //B号键赋值;{P0=0x7C;DATA8279=P0;break;}case 0xE3: //C号键赋值;{P0=0x39;DATA8279=P0;break;}case 0xE1: //D号键赋值;{P0=0x5E;DATA8279=P0;break;}case 0xE2: //E号键赋值;{P0=0x79;DATA8279=P0;break;}case 0xE0: //F号键赋值;{P0=0x71;DATA8279=P0;break;}default:break;}}。

键盘8279

键盘8279

8279是一种通用的可编程的键盘/显示器接口器件,可对64个开关组成的键盘矩阵进行自动扫描,接收键盘上的输入信息,并在有键输入时向单片机请求中断,还能对8位或16位LED自动扫描,使显示缓冲器的内容在LED上显示出来。

利用8279对键盘/显示器的自动扫描,可以减轻CPU负担,具有显示稳定、程序简单、不会出现误动作等特点。

本实验系统中8279的状态/命令口地址为8041H,数据口地址为8040H,程序开始部分是完成8279的初始化,设定8279的键盘及显示方式,并显示“8279--”,然后等待键盘输入,一旦有键盘输入,8279会向CPU申请中断,在中断服务程序中读取FIFO/传感器RAM,根据读得的键值判断是哪一个键,再调用键的显示程序将该键显示出来。

8279控制的键盘的键值表8279控制的键盘的键值表键名键值键名键值键名键值K010C0H SHIFT+ K0180H CRTL+ K0140H K020C8H SHIFT+ K0288H CRTL+ K0248H K030D0H SHIFT+ K0390H CRTL+ K0350H K040D8H SHIFT+ K0498H CRTL+ K0458H K050C1H SHIFT+ K0581H CRTL+ K0541H K060C9H SHIFT+ K0689H CRTL+ K0649H K070D1H SHIFT+ K0791H CRTL+ K0751H K080D9H SHIFT+ K0899H CRTL+ K0859H K090C2H SHIFT+ K0982H CRTL+ K0942H K100CAH SHIFT+ K108AH CRTL+ K104AH K110D2H SHIFT+ K1192H CRTL+ K1152H K120DAH SHIFT+ K129AH CRTL+ K125AH K130C3H SHIFT+ K1383H CRTL+ K1343H K140CBH SHIFT+ K148BH CRTL+ K1448H K150D3H SHIFT+ K1593H CRTL+ K1553H K160DBH SHIFT+ K169BH CRTL+ K165BH。

8279键盘扫描输入实验

8279键盘扫描输入实验

实验二 8279键盘扫描输入实验一、实验目的1.熟悉INTEL8279键盘、显示器接口与8031的连接方法;2.掌握8279键盘扫描输入程序的编写;二、实验要求编写一个键盘扫描输入程序,把读取到的键值依次存放在8031片内RAM的30H-43H 单元中,超过20个键值时,多余的健值存放在44单元中。

三、芯片应用特性8279是专用键盘、显示控制芯片,能对显示器自动扫描;能识别键盘上按下的键号,可充分提高CPU工作效率,8279与8031的接口方便,由它构成的标准键盘、显示接口在工业控制中得到广泛的应用。

1.关于INTEL 8279无编码器键盘常常采用软件方法,逐行逐列地检查键盘状态,当发现按下的键后,用计算或查表等方法来找到该键的键编码。

而INTEL 8279公司的键盘、显示接口芯片是一种扫描式键盘编码器芯片8279是一种通用可编程键盘显示接口芯片,它能完成键盘输入和显示控制两种功能。

键盘部分提供一种扫描方式,可与64个按键的矩阵键盘连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。

显示部分分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可显示多达16个字符或数字。

2. 实验板8279键盘、显示电路介绍:8279采用外部译码操作方式,74LS138输出8位显示器的位控制信号和键盘的行扫描信号。

8279的8位输出线A0-A3和B0-B3与数码管的8个段相对应,经74LS240缓冲后,去驱动各数码管的8个段。

74LS138输出的8根线由74LS240反相后,再经大电流驱动器ULN2003A驱动,成为各数码管的位选择信号,当位选信号有效时(呈0电平),相应数码管被选通,而显示内容则取决于它的各个显示段的电平。

四、实验步骤1.线路连接及注意事项1)线路连接8279键盘键值可采用查询方式读取,也可以采用中断方式读取。

8279控制键盘与显示实验

8279控制键盘与显示实验

中国地质大学长城学院电气工程及其自动化课程设计题目单片机原理与应用课程设计(8279控制键盘与显示实验)系别信息工程系学生姓名专业电气工程及其自动化学号04309指导教师职称讲师2012年6月19日目录摘要 (1)1. 8279键盘显示 (1)1.1实验准备 (1)1.2实验内容 (1)2.8279的内部功能模块 (1)2.1公用模块 (2)2.2键盘功能模块 (2)2.3显示功能模块 (2)3.8297芯片管脚引线功能及原理图 (2)3.1引线管脚功能 (2)3.2电路图 (3)4. 流程图及源程序 (4)4.1流程图 (4)4.2源程序 (8)5.工作过程及实验步骤 (9)5.1工作过程 (9)5.2实验步骤 (9)6.个人总结 (10)摘要8279芯片是Intel公司生产的通用可编程键盘和显示器I/O接口芯片。

利用8279.可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,这样可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现错误操作。

8279芯片还可以直接和单片机连接,使用它可简化系统的软件设计,提高CPU的工作效率,在工程设计中日益被设计者采用。

本设计中需要掌握在51系统中扩展8279键盘显示接口方法,并且掌握8279的工作原理和编程方法。

关键词:8279芯片键盘控制八位逻辑数码管显示1. 8279键盘显示1.1实验准备电子设计竞赛实训平台:(1)单片机核心板(2)键盘和数码管显示模块(3)通用转接板(4)串口线(两端均为DB9母孔);1.2实验内容本实验的主要内容是实现用单片机控制6段数码管、4×4矩阵键盘。

程序功能如下:(1)实现单片机驱动键盘和数码管显示模块上的芯片8279,按下按键S1时,数码管循环显示“000000”到“999999”,每按一下加“111111”;(2)按下按键S2时,数码管循环显示“999999”到“00000000”,每按一下减“11111111”;按下按键S3时,数码管显示“012345”(3)按下按键S4时,数码管显示“543210”;2.8279的内部功能模块2.1公用模块数据缓冲器是双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据;I/O控制线是CPU对8279进行控制的引线。

实验三 8279

实验三  8279

键盘/显示器接口实验
6、实验接线:
内容1) CS8279CS210—217, 8279控制口地址为212H,8279数据口地址为210H 编程并全速运行,观察数码管的变化。
内容2) CS8279CS210—217, 8279控制口地址为212H,8279数据口地址为210H 编程并全速运行,每按一键时,观察数码管的变化。
键盘/显示器接口实验
2)参考程序(内容1))
DL1: DL2: DL3: MOV BH,251 MOV AH,248 NOP NOP DEC AH CMP AH,0 JNZ DL3 DEC BH CMP BH,0 JNZ DL2 DEC BL CMP BL,0 JNZ DL1 POP BX POP AX RET CODE ENDS END START
2、实验目的
掌握8279接口芯片的工作原理;学习LED显示器的使 用方法;熟悉8279与显示器接口方法;熟悉8279与键盘接 口的方法;学习在8086/8688系统中扩展键盘显示接口的 方法及编程方法。
键盘/显示器接口实验
3、实验设备与仪器
AEDK8688ET教学实验机一台,
PC机一台,稳压电源一台。
7 4L S0 7
1 7 4L S0 7
3 7 4L S0 7
5 7 4L S0 7
9 7 4L S0 7
7 4L S0 7
7 4L S0 7
1 7 4L S0 7
3 7 4L S0 7
5 7 4L S0 7
9 7 4L S0 7
7 4L S0 7
7 4L S0 7
1 7 4L S0 7
3 7 4L S0 7
键盘/显示器接口实验
1、实验内容(1)3)必做)

电子时钟

电子时钟

8279键盘显示实验(电子秒表)一.实验要求利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟(日历),用小键盘控制电子钟(日历)的启停及初始值的预值。

电子钟做成如下两种格式(按F键两种格式可以切换):XX -XX-XX 由左向右分别为: 时、分、秒XX -XX-XX 由左向右分别为: 年、月、日1.C键:清除,显示00-00-00.2.A键:启动,电子钟(日历)计时3.D键:停止,电子钟(日历)停止计时4.B键:设置初值:由左向右依次输入预置的时、分、秒(年、月、日)值,同时应具有判断输入错误的能力,若输入有错,则显示: 00-00-00按B键即可重新输入预置值:5.F键:实现电子钟和日历的切换5.E键:程序退出。

二试验程序//---8279键盘显示实验(电子秒表)---//-----头文件引用------#include<reg51.h>#include<absacc.h>#include<intrins.h>//-----宏声明-----#define D8279 XBYTE[0xF238] //8279 数据口地址#define C8279 XBYTE[0xF239] //8279 状态/命令口地址#define uchar unsigned char#define uint unsigned int#define TimeDisp 1#define DateDisp 0//-----变量定义-----uchar idata time[] = {0,0,0,12}; //10毫秒,秒,分,十uchar idata day[3] = {18,6,8};uchar idata diss[8]={0x20,0x20,0,0,0,0,0,0};//显示缓冲区uchar code ledseg[] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5E,0x79,0x71,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0xF7,0xFC,0xB9,0xDE,0xF9,0xF1,0x00,0x40};// LED显示常数表bit bdata sbz,wbz,kbz; //定义秒标志、键值合法标志、读键标志bit bdata flag = TimeDisp;//-----取键值函数-----uchar getkey(){uchar key;if((C8279&0x07)==0x00){kbz=0;} //无键按下,置标志else{kbz=1;C8279=0x40; //读FIFO RAM命令key=D8279;key=(key&0x3f); //取键盘数据低6位 return(key);}}//-----显示函数-----void disled(d)uchar idata *d;{uchar i;C8279=0x90;for(i=0;i<8;i++){C8279=i+0x80;D8279=ledseg[*d];d++;}}//-----显示缓冲区内容显示-----void disp(void){disled(diss);}//----8279初始化子程序-----void init8279(){C8279=0; //置8279工作方式C8279=0x2f; //置键盘扫描速率C8279=0xc1; //清除LED 显示//while(com&0x80);//等待清除结束}//-----毫秒显示-----void disms(){diss[0]=time[0]%10;diss[1]=time[0]/10;disp();}//-----显示处理-----void display(){if(flag == 1){diss[0]=time[1]%10;diss[1]=time[1]/10;diss[2]=33;diss[3]=time[2]%10;diss[4]=time[2]/10;diss[5]=33;diss[6]=time[3]%10;diss[7]=time[3]/10;}else{diss[0]=day[0]%10;diss[1]=day[0]/10;diss[2]=33;diss[3]=day[1]%10;diss[4]=day[1]/10;diss[5]=33;diss[6]=day[2]%10;diss[7]=day[2]/10;}disp();}//-----初始化-----void first(void){init8279(); //初始化8279 sbz=1; //标志TMOD=0x10;TH1=0xdc; //10毫秒的时间常数 TL1=0x00;disms();ET1=1;EA=1; //允许中断}//-----INT_T1中断服务子程序----- void Int_T1(void) interrupt 3{TR1=0;TH1=0xdc; //10毫秒定时常数TL1=0x00;TR1=1;time[0]=time[0]+1; //10毫秒数加 1 if(time[0]==100) //判断10毫秒=100 {time[0]=0;sbz=1; //置秒标志}//disms();if(time[0]==0){time[1]=time[1]+1; //秒加1if(time[1]==60) //判断秒=60{time[1]=0;time[2]=time[2]+1;//分加1if(time[2]==60) //判断分=60{time[2]=0;time[3]=time[3]+1;//时加1if(time[3]==24)//判断时=23{time[3]=0;day[0] += 1;if(day[0] == 30){day[0] = 0;day[1] += 1;if(day[1] == 12){day[1] = 0;day[2]++;}}}}}}}//-----读数子程序-----void getword(){uchar i;for(i=8;i>0;i--){do{getkey(); //读键盘}while(kbz==0);//无键输入,则再读if((getkey()>9)||(getkey()<0))//判断输入是否大于9,小于0 {wbz=0; //置非法输入标志return;}else{wbz=1; //置合法输入标志if((i == 6)||(i == 3)){i--;diss[i-1]=getkey();disp(); //显示输入的字符}else{diss[i-1]=getkey();disp(); //显示输入的字符}}}}//-----时间清零子程序-----void cleart(){TR1=0; //关计数器time[0]=0; //10毫秒清零time[1]=0; //秒清零time[2]=0; //分钟清零time[3]=0; //小时清零disms(); //显示毫秒sbz=1; //置秒标志}//-----设置初值子程序-----void sett(){getword(); //读数if(wbz==1) //判断输入合法性{if(flag == 1){time[3]=(diss[7]*10+diss[6]);if(time[3]<24)//判断输入小时值< 24 {time[2]=(diss[4]*10+diss[3]);if(time[2]<60)//判断输入分钟数< 60{time[1]=(diss[1]*10+diss[0]);if(time[1]<60)//判断输入秒值< 60{;}else{cleart();} //时间清零}else{cleart();} //时间清零}else{cleart();} //时间清零}else{day[2]=(diss[7]*10+diss[6]);if(day[2]<32)//判断输入小时值< 24{day[1]=(diss[4]*10+diss[3]);if(day[1]<13)//判断输入分钟数< 60{day[0]=(diss[1]*10+diss[0]);if(day[0]<100)//判断输入秒值< 60{;}else{cleart();} //时间清零}else{cleart();} //时间清零}else{cleart();} //时间清零}}else{cleart();} //时间清零display();//显示时间}//-----主程序-----void main(){uint counter = 0;first(); //初始化while(1) //循环{counter++;if(counter == 10000 ){//flag = !flag;counter = 0;}getkey(); //读键盘if(kbz==1) //判断是否有键输入{switch(getkey()){case 0x0c: cleart();//输入键是'C',转CLEART break;case 0x0a: TR1=1; //输入键是'A',电子钟计时break;case 0x0d: TR1=0; //输入键是'D',电子钟停止计时break;case 0x0b: TR1=0; //输入键是'B',转SETTsett();break;case 0x0e: _nop_();//输入键是'E',case 0x0f: flag = !flag;break;while(1)//等待回到监控{}}}else if(sbz==1){display();//显示时间sbz=0;//清标志}}}。

8279键盘程序

8279键盘程序
LOOP2: MOV @R0,#00H
INC R0
DJNZ R7,LOOP2
WAIT: MOV DPTR,#Z8279
MOVX A,@DPTR
ANL A,#07H
JNZ SAVE
SJMP WAIT
SAVE: MOV A,#40H
Z8279 EQU 0FF82H
D8279 EQU 0FF80H
ORG 0000H
AJMP LOOP
LJMP WAIT1
LOOP: MOV DPTR,#Z8279
MOV A,#0D1H
MOVX @DPTR,A
LOOP1:MOVX A,@DPTR
MOVX @DPTR,A
MOV DPTR,#D8279
MOVX A,@DPTR
ANL A,#3FH
MOV DPTR,#DATA
MOVC A,@A+DPTR
MOV B,A
MOV R6,#07H
MOVX A ,@DPTR
ANL A,#07H
CJNE A,#00H ,HA7S4;
AJMP HA7S3
HA7S4: MOV DPTR ,#KEYDAT
MOVX A,@DPTR
MOV B,A ;取键值
; CJNE R6,#88H,DISPC1
; AJMP DISPC;
LJMP HA7S2
AAA: NOP
NOP
RETI
DELAY1:MOV R1,#0FAH
DELAY2:NOP
NOP
DJNZ R1,DELAY2
MOV @R0,A
INC 31H
MOV DPTR ,#CDATA

实验5键盘显示控制器8279应用实验

实验5键盘显示控制器8279应用实验

实验5键盘显示控制器8279应用实验实验五键盘显示控制器 9 8279 应用实验一、实验目的 1、掌握 51 系统中,扩展 8279 键盘显示接口的方法。

2、掌握 8279 工作原理和编程方法。

二、预备知识 8279A 是一种通用的可编程键盘/显示器接口器件,可对 64 个开关矩阵组成的键盘进行自动扫描,接收键盘上的输入信息,存入内部的 FIFO 存放器,并在有键输入时,CPU 请求中断。

8279A 内部还有一个 16×8 的显示缓冲器,能对 8 位或 16 位 LED 自动扫描,使显示缓冲器的内容在 LED 上显示出来。

1 1 、引脚功能 DB0~DB7:双向数据总线,以便和 CPU 之间传递命令、数据和状态。

CLK :时钟输入线,以产生内部时钟。

RESET :复位线,高电平有效。

复位后,8279A 置为 16 位显示左边输入,编码扫描键盘,时钟系数为 31。

/CS :片选,低电平有效。

A0 :地址输入线,用以区分数据线传送的是数据还是命令。

A0=0 传送的是数据;A0=1传送的是命令。

/RD :读线,低有效,内部缓冲器信息送 DB0~DB7。

/WR :写线,低有效。

收数据总线上的信息写入内部缓冲区。

IRQ :中断请求输出线,高有效。

当 FIFO RAM 中有键输入数据时,IRQ 升为高电平,向 CPU 请求中断。

CPU 读出 FIFO RAM 时,IRQ 变为低电平,假设 RAM 中数据还有,IRQ 又返回高电平,直至RAM 中为空,IRQ 才保持低电平。

SL0~SL3 :输出扫描线,用以对键盘/传感器矩阵和显示器进行扫描。

RL0~RL7 :键盘/传感器矩阵的行(列)数据输入线。

其内部有拉高电阻,使之保持高电平。

SHIFT :换档输入线,内部有拉高电阻,使之保持高电平。

TL/STB:控制/选通输入线,内部有拉高电阻,使之保持高电平。

OUTA0~OUTA3:四位输出口。

OUTB0~ OUTB3:四位输出口。

自动化论文 键盘显示控制器8279应用实验

自动化论文 键盘显示控制器8279应用实验

本科学年实训论文题目键盘显示控制器8279应用实验院系专业名称自动化年级 2008 级学生姓名指导教师2011年07月18日键盘显示控制器8279应用实验摘要在对8279键盘/显示接口分析的基础上,设计实现8位LED七段数码管显示驱动和16键盘输入电路。

利用可编程8279可实现对键盘/显示的自动扫描,以减轻CUP负担,其工作稳定,不会出现误操作,且程序实现简单。

本系统采用8031 单片机与8279 芯片的显示接口组成对LED 数码管应用系统的显示驱动电路。

具有可靠性高、价格低、使用方便等特点,适合数据显示的计算机应用系统使用。

关键词:8279,键盘,LED显示,扫描,接口8279 KEYBOARD DISPLAY CONTROLLER BASED ON THE APPLICATIONABSTRASTIn 8279 keyboard / display interface based on the analysis, design and implementation 8-digit LED seven segment display driver, and keyboard input circuit 16. 8279 can be realized using programmable keyboard / display automatically scans, to reduce the burden of CUP, their job stability, not to misuse, and the procedure simple. The system uses the 8031 and 8279 chip components on the LED display interface applications, digital display drive circuit. High reliability, low price, easy to use features, the computer application for data display system.KEYWORDS: 8279 , keyboard , LED display , scan , interface目录摘要 (II)ABSTRAST ................................................................................................................ I II 第一章引言.. (1)1.1 实验目的 (1)1.2 实验内容 (1)1.2 实验步骤和要求 (1)第二章8279的介绍 (2)2.1 8279功能介绍 (2)2.1.1 数据线 (2)2.1.2 地址线 (2)2.1.3 控制线 (2)2.2 8279的工作方式 (3)2.2.1 键盘工作方式 (3)2.2.2 显示方式 (3)2.2.3 传感器方式 (3)2.3 8279的命令字及其格式 (4)2.3.1 键盘/显示命令 (4)2.3.2 时钟编程命令 (5)2.3.3 读FIFO/传感器RAM命令 (6)2.3.4 读显示RAM命令 (6)2.3.5 写显示RAM命令 (6)2.3.6 显示器禁止写入/熄灭命令 (6)2.3.7 清除(显示RAM和FIFO中的内容)命令 (7)2.3.8 结束中断/出错方式设置命令 (7)2.4 8279的状态字及其格式 (8)2.5 8279数据输入/输出格式 (8)2.5.1 键盘扫描方式数据输入格式 (8)2.5.2 传感器方式及选通方式数据输入格式 (9)2.6 8279译码和编码方式 (9)第三章硬件电路及描述 (11)3.1 74LS138译码器 (11)3.1.1 74LS138集成译码器逻辑图及工作原理 (11)3.1.2 74LS138译码器引脚图和逻辑符号 (12)3.1.3 74LS138译码器的真值表 (13)3.2 74LS244 (14)3.2.1 74LS244引脚图 (14)3.2.2 74LS244的工作极限值 (14)3.2.3 功能表 (14)3.3 4*4矩阵键盘 (14)3.3.1 矩阵键盘的电路 (14)3.3.2 矩阵键盘的工作原理 (15)3.4 数码管动态扫描显示电路 (16)第四章软件设计流程及描述 (17)4.1软件设计流程 (17)4.2 keil软件的介绍和应用 (19)4.2.1 系统概述 (19)4.2.2 Keil C51单片机软件开发系统的整体结构 (19)4.2.3 Keil的优点 (20)第五章总结 (21)参考文献 (22)附录一源程序代码 (23)附录二实验中的软件和硬件记录 (26)第一章引言1.1 实验目的1、掌握8031系统中,扩展8279键盘显示接口的方法。

实验十二 8279键盘显示实验

实验十二 8279键盘显示实验

实验十二 8279键盘显示实验(电子秒表)一.实验要求利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟,用小键盘控制电子钟的启停及初始值的预值。

电子钟做成如下格式:XX XX XX XX 由左向右分别为: 时、分、秒、百分之一秒1.C键:清除,显示00.00.00.002.A键:启动,电子钟计时3.D键:停止,电子钟停止计时4.B键:设置初值:由左向右依次输入预置的时、分、秒、百分之一秒值,同时应具有判断输入错误的能力,若输入有错,则显示:00.00.00.00按B键即可重新输入预置值:5.E键:程序退出。

二.实验目的1.进一步掌握8279键盘显示电路的编程方法。

2.进一步掌握定时器的使用和编程方法。

3.进一步掌握中断处理程序的编程方法。

三.实验电路及连线CS8279接8700H。

模块中的十个短路套都套在8279侧。

四.实验说明8279通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。

五.实验程序框图主程序框图SET_T子程序框图 GETWORD子程序框图六.实验程序见:Z8279 EQU 08701H ;8279 状态/命令口地址D8279 EQU 08700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入八位字符显示;外部译码键扫描方式,双键互锁LEDFEQ EQU 2FH ;扫描速率LEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示RAM地址READKB EQU 40H ;读 FIFO RAM 地址 0 的命令字ORG 0000HAJMP STARTORG 001BH ;INT T1 入口地址AJMP INT_T1ORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279MOV R3,#0H ;时MOV R2,#0H ;分MOV R1,#0H ;秒MOV R0,#0H ;10毫秒MOV R6,#0FFH ;标志MOV TMOD,#10HMOV TL1,#00H ;10毫秒的时间常数MOV TH1,#0DCHLCALL DIS_mSSETB ET1SETB EA ;允许中断WAIT:LCALL GETKEY ;读键盘CJNE A,#0FFH,CONT ;判断是否有键输入MOV A,BCJNE A,#3CH,KEY_G ;输入键是'C',转CLEAR_TLCALL CLEAR_TKEY_G: CJNE A,#3AH,KEY_D ;输入键是'G',转START_T LCALL START_TKEY_D: CJNE A,#3DH,KEY_P ;输入键是'D',转STOP_T LCALL STOP_TKEY_P: CJNE A,#3BH,KEY_E ;输入键是'P',转SET_T LCALL SET_TKEY_E: CJNE A,#3EH,CONT ;输入键是'E',转MONITOR AJMP MONITORCONT: CJNE R6,#0FFH,WAIT ;若无秒标志则循环LCALL DISPLAY ;显示时间MOV R6,#0 ;清标志SJMP WAIT ;循环MONITOR:NOPSJMP $ ;等待回到监控CLEAR_T: ;时间清零子程序CLR TR1 ;关计数器MOV R3,#0H ;小时清零MOV R2,#0H ;分钟清零MOV R1,#0H ;秒清零MOV R0,#0H ;10毫秒清零MOV R6,#0FFH ;置秒标志LCALL DIS_mS ;显示毫秒RETSTART_T: ;电子钟计时子程序SETB TR1RETSTOP_T: ;电子钟停止计时子程序CLR TR1RETSET_T: ;设置初值子程序CLR TR1 ;关计数器MOV R4,#7LCALL GETWORD ;读小时数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#232JC INVALID ;判断输入小时值 < 24 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R3,A ;保存输入的值MOV R4,#5LCALL GETWORD ;读分钟数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#196JC INVALID ;判断输入分钟数 < 60 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R2,A ;保存输入的值MOV R4,#3LCALL GETWORD ;读分钟数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BADD A,#196JC INVALID ;判断输入分钟值 < 60 MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R1,A ;保存输入的值MOV R4,#1LCALL GETWORD ;读10毫秒数CJNE A,#0FFH,INVALID ;判断输入合法性MOV A,BMOV B,#10DIV ABSWAP AADD A,BMOV R0,A ;保存输入的值AJMP SET_TOKINVALID:LCALL CLEAR_T ;时间清零SET_TOK:LCALL DIS_mS ;显示10毫秒LCALL DISPLAY ;显示时间RETGETWORD: ;读数子程序WKEY1: LCALL GETKEY ;读键盘CJNE A,#0FFH,WKEY1 ;无键输入,则再读MOV A,BADD A,#0C6HJC ERROR1 ;判断输入是否大于9MOV A,BSUBB A,#30HJC ERROR1 ;判断输入是否小于0MOV R5,ALCALL DISLED ;显示输入的字符MOV B,#10MUL ABPUSH ACC ;保存输入的值WKEY2: LCALL GETKEY ;读键盘CJNE A,#0FFH,WKEY2 ;无键输入则再读MOV A,BADD A,#0C6H ;判断输入是否大于9JC ERROR2MOV A,BSUBB A,#30H ;判断输入是否小于0JC ERROR2DEC R4MOV R5,ALCALL DISLED ;显示输入的字符MOV B,APOP ACCADD A,BMOV B,A ;把得到的值存在BMOV A,#0FFH ;置合法输入标志AJMP KEYOKERROR2: POP ACCERROR1: MOV A,#0 ;置非法输入标志KEYOK: RETINIT8279: ;8279初始化子程序PUSH DPH ;保存现场PUSH DPLPUSH ACCLCALL DELAY ;延时MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX @DPTR,AMOV A,#LEDFEQ ;置键盘扫描速率MOVX @DPTR,AMOV A,#LEDCLS ;清除 LED 显示MOVX @DPTR,APOP ACC ;恢复现场POP DPLPOP DPHRET;读取键盘子程序;输入: 无 ; 输出: B: 读到的键码 A: 按键的标志GETKEY: PUSH DPH ;保存现场PUSH DPLPUSH PSWMOV DPTR,#Z8279MOVX A,@DPTR ;读8279状态ANL A,#07H ;屏蔽D7-D3JNZ GETVAL ;判断是否有键输入MOV A,#0H ;置标志(无键输入)SJMP NKBHITGETVAL: MOV A,#READKB ;读 FIFO RAM 命令MOVX @DPTR,AMOV DPTR,#D8279MOVX A,@DPTR ;读键ANL A,#3FH ;屏蔽 SHIFT 和 CTRL 键MOV DPTR,#KEYCODE ;键码表起始地址MOVC A,@A+DPTR ;查表MOV B,A ;置返回键值MOV A,#0FFH ;置标志(有键输入)NKBHIT: POP PSW ;恢复现场POP DPLPOP DPHRET;显示字符子程序;输入: R4,位置 R5,值DISLED: PUSH DPH ;保存现场PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置显示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX @DPTR,A ;设定显示位置MOV DPTR,#LEDSEG ;置显示常数表起始位置MOV A,R5MOVC A,@A+DPTR ;查表MOV DPTR,#D8279MOVX @DPTR,A ;显示数据POP ACC ;恢复现场POP DPLPOP DPHRETDELAY: ;延时子程序PUSH 0 ;保存现场PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢复现场POP 0RETDIS_mS:MOV A,R0ANL A,#0FHMOV R5,AMOV R4,#0LCALL DISLED ;显示10毫秒低位MOV A,R0SWAP A ;高低半字节交换ANL A,#0FHMOV R5,AMOV R4,#1LCALL DISLED ;显示10毫秒高位RETINT_T1: ;INT_T1中断服务子程序PUSH DPH ;保护现场PUSH DPLPUSH ACCPUSH PSWCLR TR1MOV TL1,#00H ;10毫秒定时常数MOV TH1,#0DCHSETB TR1MOV A,R0ADD A,#1 ;10毫秒数加 1DA AMOV R0,ALCALL DIS_mS ;显示10毫秒CJNE R0,#0,EXIT ;判断10毫秒=0 MOV R6,#0FFH ;置秒标志CJNE R1,#59H,SECOND ;判断秒=59 MOV R1,#99HCJNE R2,#59H,MINUTE ;判断分=59 MOV R2,#99HCJNE R3,#23H,HOUR ;判断时=23 MOV R3,#99HHOUR:MOV A,R3ADD A,#1 ;时加1DA AMOV R3,AMINUTE:MOV A,R2ADD A,#1 ;分加1DA AMOV R2,ASECOND:MOV A,R1ADD A,#1 ;秒加1DA AMOV R1,AEXIT:POP PSW ;恢复现场POP ACCPOP DPLPOP DPHRETI ;中断返回DISPLAY:MOV A,R3ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#6LCALL DISLED ;显示小时低位MOV A,R3SWAP AANL A,#0FHMOV R5,AMOV R4,#7LCALL DISLED ;显示小时高位MOV A,R2ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#4LCALL DISLED ;显示分钟低位MOV A,R2SWAP AANL A,#0FHMOV R5,AMOV R4,#5LCALL DISLED ;显示分钟高位MOV A,R1ANL A,#0FHADD A,#10HMOV R5,AMOV R4,#2LCALL DISLED ;显示秒低位MOV A,R1SWAP AANL A,#0FHMOV R5,AMOV R4,#3LCALL DISLED ;显示秒高位RET;LED显示常数表LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,087H ;'0.,1.,2.,3.,4.,5.,6.,7.' DB 0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;'8.,9.,A.,B.,C.,D.,E.,F.' DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, ';键盘键码表KEYCODE:DB 30H,31H,32H,33H,34H,35H,36H,37H ;'1,2,Q,W,A,S,+,Z'DB 38H,39H,3AH,3BH,3CH,3DH,3EH,3FH ;'3,4,E,R,D,F,X,C'ENDF。

实验十 8279键盘显示接口

实验十 8279键盘显示接口

实验十 8279键盘显示接口双击自动滚屏发布者:admin 发布时间:2005-9-8 阅读:4825次一、实验目的1、掌握8279的工作原理。

2、学习LED显示器的使用方法。

3、熟悉8279与键盘、显示器接口的方法。

4、学习在8086/8088系统中扩展键盘显示接口的方法。

二、实验设备AEDK8688ET教学实验机一台,PC机一台,稳压电源一台。

三、实验内容1、在LED数码管上的固定位置显示数字“3”或不停地显示1、2、3、4、5、6,间隔时间为1秒。

2、在八位LED数码管上循环显示1、2、3、4、5-----E、F,间隔时间为1秒。

3、将每次按键产生的键码显示在LED数码管。

四、实验原理介绍数码管的段选码由OUTA口和OUTB口输出,经74LS244驱动后送给共阴极LED。

数码管的位扫描信号经74LS138译码、75451驱动后提供给LED的公共极。

RL0~RL7提供了键盘列扫描接口,KA0~KA3提供键盘的行扫描接口。

原理图见8279键盘、显示电路。

1、LED是共阴极的,其七段LED的段选码为:五、电路原理图:六、实验步骤1、实验连线:8279CS----210H-217H。

将8279的片选与译码电路相应的插孔相连。

K10十个短路套均套上2、编写调试程序,全速运行,观察实验结果3、运行程序,按动按键,观察显示键值的变化。

七、实验程序框图八、参考程序:内容3Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率CODE SEGMENTASSUME CS:CODE,DS:CODESTART: ;初始化PUSH CSPOP DSMOV DX,Z8279MOV AL,LEDMODOUT DX,ALMOV AL,LEDFEQOUT DX,ALMOV DX,D8279MOV AL,7FHOUT DX,ALMOV DX,D8279MOV AL,7FHOUT DX,ALMOV DX,D8279MOV AL,7DHOUT DX,ALMOV DX,D8279MOV AL,7FHOUT DX,ALMOV DX,D8279MOV AL,70HOUT DX,ALMOV DX,D8279MOV AL,5EHOUT DX,ALMOV DX,D8279MOV AL,79HOUT DX,ALMOV DX,D8279MOV AL,77HOUT DX,AL ;以上为写(AEDK8688) NOPMOV DX,Z8279MOV AL,0C2HOUT DX,AL ;置空FIFO寄存器WAIIT: NOPIN AL,DXMOV BL,ALAND AL,80HCMP AL,80HJE WAIIT ;FIFO正在清除期间则跳转等待 MOV AL,BLAND AL,0FHCMP AL,00HJE WAIIT ;无键按下则等待MOV AL,40H ;写读FIFO RAM命令字OUT DX,ALMOV DX,D8279 ;读入FIFO RAM内容IN AL,DXNOPCMP AL,15H ;是结束符则结束JE FININOP ;查表,将键码放入AL中LEA BX,LEDXLATMOV DX,D8279 ;将AL中内容写到数码管上OUT DX,ALMOV DX,Z8279 ;清FIFO RAM寄存器MOV AL,0C2HOUT DX,ALJMP WAIIT ;等待下一次键输入FINI: MOV DX,Z8279 ;清FIFO寄存器并关蜂鸣器MOV AL,0C2HOUT DX,ALJMP $LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71HCODE ENDSEND START。

微机原理课程设计1

微机原理课程设计1

项目一 8279键盘显示设计一.要求编写程序,以8279为键盘显示核心,按下小键盘0~F,在实验机上LED数码管上对应显示0~F,按实验机上暂停键结束。

二.目的1.学习在88系统中扩展键盘显示接口的方法。

2.学习8279接口芯片的编程。

三.电路连线8279键盘显示电路连线图如图1所示。

图1 8279键盘显示电路连线图CS8279已固定接至238H孔,○29模块中的十个短路套都套8279侧。

一、8279的功能及工作原理8279是Intel公司生产的通用可编程键盘和显示器I/O接口部件。

利用8279,可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,不仅可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作,由于这些优点,8279芯片日益被设计者所采用。

1.8279的引脚及内部结构8279的引脚如图1所示。

8279主要由下列部件组成,各部件的作用以及引脚的作用如下:(1) I/O控制和数据缓冲器双向的三态数据缓冲器将内部总线和外部总线DB o—DB7,用于传送CPU和8279之间的命令,数据和状态。

C为低电平时,CPU才选中8279读写。

SC为片选信号。

当SA。

用以区分信息的特性。

当A。

为1时,CPU写入8279的信息为命令,CPU从 8279读出的信息为8279的状态。

当A。

为0时,I/O信息都为数据。

图1 8279的引脚图(2) 控制逻辑控制与定时寄存器用以寄存键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。

定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入时钟信号进行分频,产生100kHz的内部定时信号。

外部时钟输入信号的周期不小于500ns。

(3) 扫描计数器扫描计数器有两种输出方式。

一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL。

单片机芯片8279用法

单片机芯片8279用法

精选版ppt
3
键盘显示接口芯片8279 2. 8279的内部结构图及各部分功能
精选版ppt
4
键盘显示接口芯片8279
① I/O控制及数据缓冲器
I/O控制操作
CS
WR
RD
A0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
操作 写显示RAM(写数据)
写命令字 读FIFO RAM或显示RAM
读状态字
② 控制与定时寄存器及定时控制
④ 恢复缓冲器、键盘去抖动及控制逻辑 回复缓冲器:缓冲并锁存回复信号RL0~7的状态 去抖动电路:实现对键盘输入的去抖动 控制逻辑:按命令要求控制去抖动电路,并处理回复信号RL0~7
精选版ppt
6
键盘显示接口芯片8279
⑤ FIFO/传感器RAM及其状态寄存器
FIFO/传感器RAM:8×8位 (a)键盘输入方式或选通输入方式作先入先出存储器(FIFO RAM); (b)传感器输入方式被称为传感器RAM,存储传感器阵列中每个DB7 是双向三态数据总线,在接口电路中与系统数据总线相连,
用以传送CPU 和8279 之间的数据和命令。
(2)地址线
/CS=0 选中8279,
当A0=1 时,为命令字及状态字地址;
当A0=0 时,为片内数据地址,故8精2选7版9p芯pt 片占用2 个端口地址。
选通输入方式:CNTL/STB作为选通信号,上升沿锁存RL0~7到FIFO RAM。这是只选用显示器没有键盘的工作方式。
精选版ppt
9
键盘显示接口芯片8279
4.8279的命令字(8个,D5D6D7为特征位)

8279实现的两位数加减乘除计算器

8279实现的两位数加减乘除计算器

8279实现的两位数加减乘除计算器中国矿业大学计算机科学与技术学院硬件课程设计报告专业:计算机科学与技术班级:计算机10级02班设计题目:简单计算器成员:刘伟李伟大张伟指导教师:周杰伦职称:副教授2012年1月12日简单计算器目录1.设计任务与要求………………………….2. 8279可编程设置型键盘/显器介绍………1 8279特点………………………………………………………………..2 8279引脚说明……………………………………………………………3 8279结构…………………………………………………………………..4 8279的控制字………………………………………………………………3.硬件连接及初级设计说明……………1 硬件连接……………………………………………………………………2 计算功能…………………………………………………………………..3 输入功能…………………………………………………………………4 三个模块…………………………………………………………………..5 LED发光显示……………………………………………………………. 4.程序流程图…………………………………1 键盘读数流程图……………………………………………………………..2 程序处理流程图……………………………………………………………..3 显示程序流程图……………………………………………………………..4 计算过程流程图………………………………………………………………5 总程序流程图………………………………………………………………..5.程序设计…………………………………..1 代码…………………………………………………………………………6.收获与会…………………………………..7.参考文献……………………………………硬件课程设计总体报告选题:电子计算器1.设计任务与要求1.1设计概况1设计人员:2设计目标:通过汇编语言编程,再利用硬件课程实验箱实现计算器功能。

温控仪编程汇报

温控仪编程汇报
特征位D7 D6 D5=111
D4=1时(其D3---D0位任意)有两种不同作用。 第一:在传感器方式,用此命令结束传感器RAM的中断请求。 因为在传感器工作方式时,每当传感器状态发生变化,扫描电路自动将传感器状态写入传感器RAM,同时 发出中断申请,即将IRQ置高电平,并禁止再写入传感器RAM。中断响应后,从传感器RAM读走数据进行中 断处理,但中断标志IRQ的撤除分两种情况。若读RAM地址自动加1标志位为“0”,中断响应后IRQ自动变 低,撤消中断申请;若读RAM地址自动加1标志位为“1”,中断响应后IRQ不能自动变低,必须通过结束 中断命令来撤消中断请求。
表2 显示方式
表3
键盘/显示扫描方式
② 时钟编程命令
特征位D7 D6 D5=001 D4---D0用来设定分频系数,分频系数范围在0---31之间。
有的设计会用单片机的ALE端接8279的CLK端,但ALE端输出的脉冲频率比8279所
需工作时钟频率(100KHz)高出很多,通过设置分频系数就可使8279得到所需的
RL0---RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。 SHIFT:来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态, 该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。 CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到 该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把 RL0---RL7 的数据存入 FIFO RAM中。 OUTA0---OUTA3:通常作为显示信号的高4位输出线。 OUTB0---OUTB3:通常作为显示信号的低4位输出线。 /BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。

微机综合设计指导书

微机综合设计指导书

项目一 8279键盘显示一.要求编写程序,以8279为键盘显示核心,按下小键盘0~F,在实验机上LED数码管上对应显示0~F,按实验机上暂停键结束。

二.目的1.学习在88系统中扩展键盘显示接口的方法。

2.学习8279接口芯片的编程。

三.电路连线8279键盘显示电路连线图如图1所示。

图1 8279键盘显示电路连线图CS8279已固定接至238H孔,○29模块中的十个短路套都套8279侧。

四.说明8279工作方式为:左边输入,八位显示,外部译码,双键互锁。

五.程序框图按程序流程图2编制实验程序,输入源程序,汇编、链接程序,执行程序,检查结果。

图2 程序流程图项目二温度控制一.要求编制程序,将温度控制在某一设定值。

二.目的学会温度控制的一种方法。

三..电路及连线温度控制电路连线图如图3所示。

图3 温度控制电路连线图T-DETECT接0809的IN0 口,T-CON接8255的PC6。

CS0809接208H, CS8279已固定接至238H。

,CS8255接218H。

四.说明温度通过AD590温度传感集成芯片,将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,利用CPU采集并存储采集到的数据。

在上图中,W8为放大倍数调节电位器,系统出厂时已设定好,用户不要随意调节;W7(图中未标出)为测温系统零点调节,用户可以调节系统零点。

设定温度为0摄氏度时变换放大电路送出的模拟量为0V,此时A/D输出的数字量为00H;温度为76.5摄氏度时变换放大电路送出4.9805V电压,此时A/D输出的数字量为FFH,即每0.3摄氏度对应1LSB变化量。

编写程序使用八段数码管显示当前的温度。

可以对比温度计的显示值和数码管的显示值。

平台出厂时已依据标准调整好了放大器的增益和零位。

应注意,由于热惯性的影响及温度计显示的滞后因素,若要精确观察某温度点的测量值,在加热到观察温度点后,应停止加热,等待温度计示值稳定后,再观察记录结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8279键盘和显示程序
Z8279 EQU 08701H //8279状态/命令口地址 D8279 EQU 08700H //8279 数据口地址
LEDMOD EQU 10H //左端输入八位字符显示 //外部译码键扫描方式,双键互锁
LEDFEQ EQU 38H //扫描速率 LEDCLS EQU 0D1H //清除
LEDWR0 EQU 80H //设定的将要写入的显示RAM地
址 ORG 0000H AJMP START ORG 0040H START: MOV SP,#60H
LCALL INIT8279 //初始化8279 W AIT:
MOV DPTR,#Z8279 MOVX A,@DPTR ANL A,#0FH JZ WAIT MOV A,#40H MOVX @DPTR,A MOV DPTR,#D8279 MOVX A,@DPTR
ANL A,#3FH MOV R4,#00H MOV R5,A LCALL DISLED SJMP W AIT
INIT8279: //8279初始化子程序 PUSH DPH //保存现场 PUSH DPL PUSH ACC
LCALL DELAY //延时 MOV DPTR ,#Z8279
MOV A,#LEDMOD //置8279工作方式 MOVX @DPTR,A
MOV A,#LEDFEQ //置键盘扫描速率 MOVX @DPTR,A
MOV A,#LEDCLS //清除 LED 显示 MOVX @DPTR,A
LCALL DELAY //延时 MOV DPTR,#Z8279 MOV A,#90H MOV DPTR,#D8279 MOV A,
#40H MOVX @DPTR,A MOV A,#40H
MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A,#0H MOVX @DPTR,A MOV A,
#0EFH MOVX @DPTR,A MOV A,#27H MOVX @DPTR,A MOV A,#5BH MOVX @DPTR,A MOV A,
#7FH MOVX @DPTR,A
POP ACC //恢复现场 POP DPL POP DPH RET
显示字符子程序
输入:R4,位置:R5 DISLED:
PUSH DPH //保存现场 PUSH DPL PUSH ACC
MOV A,#LEDWR0 //置显示起始地址
ADD A,R4 //加位置偏移量 MOV DPTR,#Z8279
MOVX @DPTR,A //设定显示位置 MOV DPTR,#LEDSEG //置显示常数表起始位置 MOV A,R5 MOVC A,@A+DPTR //查表 MOV DPTR,#D8279
MOVX @DPTR,A //显示数据 POP ACC //恢复现场 POP DPL POP DPH RET DELAY: //延时子程序 PUSH 0 //保存现场 PUSH 1 MOV 0,
#0H DELAY1: MOV 1,#0H DJNZ 1,$ DJNZ 0,DELAY1
POP 1 //恢复现场 POP 0 RET LEDSEG:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
DB 6DH,02H,08H,00H,59H,0FH,76H;'U,-,_,I,O,P' END。

相关文档
最新文档