已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验 基于 HD7279 的键盘显示接口实验一、实验目的1 掌握7279的工作原理和编程方法。2 掌握在MCS51系统中扩展7279键盘显示接口的方法。二、实验要求编写程序,利用7279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。三、芯片资料HD7279A 是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。程序:#include void long_delay(void);void short_delay(void);void delay(unsigned char);void write(unsigned char, unsigned char);unsigned char read(unsigned char);void send_byte(unsigned char);unsigned char receive_byte(void);unsigned char j, k;unsigned int tmr;sbit cs=P14;sbit clk=P15;sbit dat=P12;sbit key=P32; #define RESET 0xa4#define TEST 0xbf#define DECODE0 0x80/下载数据方式0#define DECODE1 0xc8 /下载数据方式1#define READ 0x15#define UNDECODE 0x90#define RTL_CYCLE 0xa3#define RTR_CYCLE 0xa2#define RTL_UNCYL 0xa1#define RTR_UNCYL 0xa0#define ACTCTL 0x98 /xiaoyin#define SEGON 0xe0 /duanliang#define SEGOFF 0xc0#define BLINKCTL 0x88void main() send_byte(TEST);for (j=0;j3;j+) delay(100); send_byte(RESET);IP=0x01;/外部中断0高优先级EA=1; IT0=1; /外部中断0为下降沿触发 EX0=1; while (1);void T0ISR() interrupt 0 unsigned char k ,s,g,z; for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); k=read(READ); g=k%10; s=k/10; send_byte(0x87); send_byte(s); send_byte(0x86); send_byte(g); delay(50); switch(k) case 0x01: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); write(UNDECODE+7,0x37);/ 不译码显示H delay(80); for (j=0;j23;j+) send_byte(RTR_CYCLE);/ 循环右移 delay(12); break;case 0x02: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); write(UNDECODE,0x37); delay(80); for (j=0;j23;j+) send_byte(RTL_CYCLE);/ 循环zuo移 delay(12); break;case 0x03: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); for (j=0;j16;j+) send_byte(RTL_UNCYL); write(DECODE0,j); delay(50); break;case 0x09: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); for (j=0;j16;j+) send_byte(RTR_UNCYL); write(DECODE1+7,j); delay(50); delay(100); break;case 0x0a: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); for (j=0;j16;j+) send_byte(RTR_UNCYL); write(DECODE1+7,j); delay(50); delay(150); z=0xff; for (j=0;j6;j+) z=z/2; write(ACTCTL,z);/ 加一个消隐位 delay(100); write(ACTCTL,0xff); break;case 0x11: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); for (j=0;j64;j+) write(SEGON,j);/ 将64个显示段逐个点亮 delay(20); break;case 0x12: for (tmr=0;tmr0x2000;tmr+); send_byte(RESET); for (j=0;j64;j+) write(SEGON,j);/ 将64个显示段逐个点亮 delay(20); for (j=0;j64;j+) write(SEGOFF,j);/ 将前一个显示段关闭 delay(20); break; default: break; void write(unsigned char cmd, unsigned char dta)send_byte (cmd);send_byte (dta);unsigned char read(unsigned char command)send_byte(command);return(receive_byte();void send_byte(unsigned char out_byte)unsigned char i;cs=0;long_delay(); /最少25微秒for (i=0;i8;i+)if (out_byte&0x80)dat=1;elsedat=0;clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2;dat=0;unsigned char receive_byte(void)unsigned char i, in_byte;dat=1;long_delay();for (i=0;i8;i+)clk=1;short_delay(); /输出键盘数据建立时间in_byte=in_byte*2;if (dat)in_byte=in_byte|0x01;clk=0;short_delay();dat=0;return (in_byte);void long_delay(void)unsigned char i;for (i=0;i0x30;i+);void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脚气科普课件
- 护理月度护理技能竞赛总结
- 脚受伤课件教学课件
- 独粒钻石课件
- 可持续农业生产技术推广方案
- 胶片记忆课件
- 武术训练场地管理制度
- 推进公立医院改革与高质量发展的策略及实施路径
- 基于AI的有机化学课程思想政治教学改革
- 初中语文大单元教学中的跨学科策略研究
- 港口属地管理办法
- 沙僧介绍课件图片
- 五年级英语上册总复习句子外研版
- 肝癌护理常规课件
- 搅拌站安全应急预案
- 四川美术学院《高级英语视听说(1)》2023-2024学年第一学期期末试卷
- 大宗商品市场分析师培训
- 银行不良资产处置与回收
- 2025年焊工(初级)复审考试题库附答案
- (2025.06.12)领导干部任前应知应会党内法规和法律知识考试题库(2025年度)
- 2024陆上风电项目造价指标
评论
0/150
提交评论