欢迎来到天天文库
浏览记录
ID:9856766
大小:60.50 KB
页数:18页
时间:2018-05-12
《单片机课程设计----电子时钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机原理及应用课程设计学院名称:计算机科学与通信工程学院专业班级:通信工程0901学生姓名:学生学号:指导教师:一、 设计目的1、熟悉键盘的工作原理,掌握HD7279A芯片实现键盘扫描程序设计及调试方法;2、了解掌握定时器的选择和编程方法,了解定时器中断服务程序设计方法;内部功能模块如定时器/计数器、中断、片内外存储器、I/O口、串行口通讯等;3、进一步熟悉和掌握单片机的结构和工作原理;4、通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术;5、在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解
2、决问题的能力;6、熟悉日历时钟的编程方法。二、设计方案(包括文字说明,程序框图,加注释的核心源程序清单)1、功能要求1)能在LED显示器上实现正常的时分秒计时;2)能通过键盘输入当前时间,并从该时间开始计时;3)有校时、校分功能;4)有报时功能,通过指示灯表示;5)有闹时功能,闹时时间可以设定,通过指示灯表示。2、文字说明HD7279是一片具有串行接口的,可用于驱动8位共阴极式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。HD7279内部含有译码器,可
3、直接接受BCD码或者16进制码,并同时具有两种译码方式,此外还有消隐、闪烁、左移、右移、段寻址等多种控制指令。HD7279具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。 3、程序框图:NoYesNoYesNoYesYesNoYesNoYesNoYes开始关看门狗初始化时钟初始化定时器初始化I/O口初始化SPI0使能比较器1使能片内参考电压使能DAC0显示时间并开始正常的时分秒计时按键为‘F’?停止计时按键为‘E’?无反应,依然时分秒计时设置时间按键为‘D’‘d’?设置闹铃KeyValue%16=1?校时加12?校时减1
4、3?校分加14?校分减1D?FlashLED(8)结束4、核心源程序清单://******************************test7279*******************************#include"c8051f020.h"#include//和通信10届的同学一起上电路分析很愉快。成绩一般吧,90分。还有,我一//直想声明一点,我不是来重修的,电路分析没上过补修而已。要知道坐在第一//排被学弟学妹们用看重修生的眼光来看待是多么...如果你在文库里找到了另外//一份08届一班学号1
5、2号上传、财富值为5分的,最好不要下载,很让人抓狂。//如果已经下载…我也无话可说。sbitHD7279_DAT=P1^7;sbitHD7279_CLK=P1^6; #defineNOSELECT7279P5
6、=0x80//片选置1,未选中#defineSELECT7279P5&=~(0x80)//片选清零,选中#defineSet7279DATHD7279_DAT=1//数据线置1#defineClr7279DATHD7279_DAT=0//数据线置0#defineSet7279CLKHD7279_CLK=1//时钟高电平#defin
7、eClr7279CLKHD7279_CLK=0//时钟低电平 //HD7279测试/演示程序//I/O口初始化voidDelay1ms(unsignedcharT);//延时T毫秒voidDelay1s(unsignedcharT);//延时T秒voidDelay1us(unsignedcharT);//延时T微秒//仿真总线时序发送一个字节voidSend7279Byte(unsignedcharch){chari;SELECT7279;//置CS低电平Delay1us(50);//延时50μfor(i=0;i<8;i++){if(c
8、h&0x80)//输出7位到HD7279A的DATA端10000000{Set7279DAT;//数据线置1}else{Clr7279DAT;//数据线置0}Set7279CLK;//置CLK高电平ch=ch<<1;//待发数据左移Delay1us(8);//延时8μClr7279CLK;//置CLK低电平Delay1us(8);//延时50μ}Clr7279DAT;//发送完毕,DATA端置低,返回}//总线时序接收一个字节unsignedcharReceive7279Byte(void){unsignedchari,ch;ch=0;
9、Set7279DAT;//DATA端置为高电平,输入状态Delay1us(50);//延时50μfor(i=0;i<8;i++){Set7279CLK;//置CLK高电平Delay1us(8);//延时8μ
此文档下载收益归作者所有