数字钟课程设计(3)

2019-01-26 14:28

五、实习体会

单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。但当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,问同学,在我们小组的共同努力下,历时一个星期,解决一个又一个的困难,终于完成任务。

在这次课程设计中,学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会有益于我在以后的学习、工作和生活中。设计过程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。

通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,知道了团队合作的重要性,这为自己今后的学习和工作做出了很好的榜样。

六、参考文献

1.《51单片机原理及应用—基于Keil C与Proteus》(陈海宴 北京航空航天大学出版社)

2.《单片机原理实验指导书》 (东北大学秦皇岛分校) 3.《c语言程序设计》 (谭浩强 清华大学出版社)

~ 11 ~

~ 12 ~

附录、源程序代码

#include

#define uchar unsigned char #define uint unsigned int sbit shezhi=P3^2; sbit jia=P3^3;

uchar duan1,duan2,duan3,duan4,duan5,duan6;//定义相关变量 uint miao=0,fen=0,shi=0;

uchar xdata wei _at_ 0xff20; //Pa port on 8255 //定义8255端口指针 uchar xdata duan _at_ 0xff21;//Pb port on 8255

uchar xdata ctrl _at_ 0xff23; //control port on 8255 uchar code table[]={ 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ }; //定义数码管显示数值

/*------------------------------------------------ 定时器初始化子程序

------------------------------------------------*/ void Init_Timer0(void) {

TMOD=0x01;

//使用模式1,16位定时器

TH0=0x00; //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出 TL0=0x00;

EA=1; //总中断打开 ET0=1; //定时器中断打开

TR0=1; //定时器开关打开

}

/*------------------------------------------------ 延时子程序

------------------------------------------------*/ void delayms(unsigned char ms) {

uchar i;

while(--ms!=0)

for(i = 0; i < 50; i++); }

/*------------------------------------------------ 显示子程序

------------------------------------------------*/ void xianshi() {

wei=0xdf; //打开位选,选第一位数码管

duan=duan1; //打开段选,显示数码关管第一位//1101 1111 delayms(3);

wei=0xef; //1110 1111 duan=duan2; delayms(3);

wei=0xf7;// 1111 0111 duan=duan3; delayms(3);

wei=0xfb; //1111 1011 duan=duan4; delayms(3);

wei=0xfd;//1111 1101 duan=duan5; delayms(3);

wei=0xfe;//1111 1110 duan=duan6; delayms(3); }

/*------------------------------------------------

初始化子程序

------------------------------------------------*/ void sys() {

shezhi=1;//引脚置高电平作为输入

jia=1;

Init_Timer0(); ctrl=0xc0; delayms(3); }

/*------------------------------------------------ 主程序

------------------------------------------------*/ void main() {

uint flag=0,j=0,xuanze1=0;//定义闪烁标志变量flag,闪烁时间变量j

//时分秒选择变量xuanze1

sys();

while(1)//主循环 {

if(xuanze1==0) {

TR0=1;//如果时间设置时分秒选择变量为0,说明处于运行状态,

此时定时器开启 烁

flag=1;//烁标志位强制置1,不闪烁

}

if (!shezhi)//P3.2设置按钮 {

xianshi();//延时去抖,用显示子程序延时,防止按动按钮时闪

if (!shezhi)//再次确认按键是否按下,没有按下则退出


数字钟课程设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中农大毕业论文 白芷开花习性与花粉特性研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: