- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用
课程设计
学院名称:计算机科学与通信工程学院
专业班级:通信工程0901
学生姓名:
学生学号:
指导教师:
一?设计目的
1、熟悉键盘的工作原理,掌握HD7279A芯片实现键盘扫描程序设计及调试方法;
2、3、4、、在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解决问题的能力、二、1、LED显示器上实现正常的时分秒计时;
2)能通过键盘输入当前时间,并从该时间开始计时;
3)有校时 、校分功能;
4)有报时功能,通过指示灯表示;
5)有闹时功能,闹时时间可以设定,通过指示灯表示。
2、文字说明
HD7279是一片具有串行接口的,可用于驱动8位共阴极式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。
HD7279内部含有译码器,可直接接受BCD码或者16进制码,并同时具有两种译码方式,此外还有消隐、闪烁、左移、右移、段寻址等多种控制指令。
HD7279具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。
?
3、
4、核心源程序清单:
//******************************test7279*******************************
#include c8051f020.h
#include intrins.h
//和通信10届的同学一起上电路分析很愉快。成绩一般吧,90分。还有,我一
//直想声明一点,我不是来重修的,电路分析没上过补修而已。要知道坐在第一
//排被学弟学妹们用看重修生的眼光来看待是多么...如果你在文库里找到了另外
//一份08届一班学号12号上传、财富值为5分的,最好不要下载,很让人抓狂。
//如果已经下载…我也无话可说。
sbit HD7279_DAT=P1^7;
sbit HD7279_CLK=P1^6;
?
#define NOSELECT7279 P5 |= 0x80 //片选置1,未选中
#define SELECT7279 P5 = ~(0x80) //片选清零,选中
#define Set7279DAT HD7279_DAT=1 //数据线置1
#define Clr7279DAT HD7279_DAT=0 //数据线置0
#define Set7279CLK HD7279_CLK=1 //时钟高电平
#define Clr7279CLK HD7279_CLK=0 //时钟低电平
?
// HD7279测试/演示程序
//I/O口初始化
void Delay1ms(unsigned char T); //延时T毫秒
void Delay1s(unsigned char T); // 延时T秒
void Delay1us(unsigned char T); //延时T微秒
//仿真总线时序发送一个字节
void Send7279Byte(unsigned char ch)
{
char i;
SELECT7279; //置CS低电平
Delay1us(50); //延时50μ
for (i=0;i8;i++)
{
if (ch0x80) //输出7位到HD7279A的DATA端 1000 0000
{
Set7279DAT; //数据线置1
}
else
{
Clr7279DAT; //数据线置0
}
Set7279CLK; //置CLK高电平
ch=ch1; //待发数据左移
Delay1us(8); //延时8μ
Clr7279CLK; //置CLK低电平
Delay1us(8); //延时50μ
}
Clr7279DAT; //发送完毕,DATA端置低,返回
}
//总线时序接收一个字节
unsigned char Receive7279Byte(void)
{
unsigned char i,ch;
ch=0;
Set7279DAT; //DATA端置为高电平,输入状态
Delay1us(50); //延时5
文档评论(0)