机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好,P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。 3.2数码管显示模块
1.3、6位共阴数码管显示所示
四、软件模块设计
本次设计使用的软件是Keil软件,它能够使用简单易懂的高级C语言对单片机进行软件开发,还是C52系列兼容单片机C语言软件开发系统。
五、系统硬件电路的设计
系统的硬件主要包括单片机芯片,数码管显示,按键开关电路,它的硬件电路如下图所示,单片机采用广泛使用的AT89C51,系统采用12MHz的晶振,采用6位共阴数码管显示。
操作方法:对照原理图,按下SW2按键第一次设置小时数据,SW3按键加,SW4按键减,按下SW2按键第二次设置分钟,SW3按键加,SW4按键减,SW2按键第三次设置秒,SW3按键加,SW4按键减,SW2第四次退出设置。单独的一个按键SW1是复位按键
硬件电路图如图所示图5.1
图5.1
六、课程设计总结
经过一周的时间以及对整本教材的知识总结,把课程设计分成了硬件和软件两大模块。总的来说,硬件部分很好入手,电路也教简单,主要涉及的是简单的按键、电容、电阻、晶振和数码管。在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。在整个设计过程中学到了团体精神和独立解决问题的重要性。为以后的求职之路打下了基础。
七、参考资料
[1]《单片机原理与应用》 谢维成 杨加国 编着 [2] 《单片机应用与仿真调试》 严天峰 编着
[3]《模拟电子技术(第三版)》 胡宴如 耿苏燕 编着
[4]《数字电子技术(第三版)》 杨志忠 卫桦林
编着 附页1
#include
#define uchar unsigned char //宏定义 缩写成uchar
#define uint unsigned int//宏定义 缩写成uint //数码管位端口定义 sbit w1=P2^2; sbit w2=P2^3; sbit w3=P2^4; sbit w4=P2^5; sbit w5=P2^6; sbit w6=P2^7;
////////按键///////////////////// sbit key1=P3^5;//设置时间 sbit key2=P3^6;//加 sbit key3=P3^7;//减
/////共阴数码管段信号编码//////// uchar code table[10]=//0---9 {0xFC,0x60,0xDA,0xF2,0x66, 0xB6,0xBE,0xE0,0xFE,0xF6};//
uchar num,miao,fen,shi;//计时 时分秒变量 uchar fen1,shi1;//闹钟变量
uchar d1,d2,d3,d4,d5,d6;//显示拆分数据 void delay(uint ms)//1ms 延时函数 数据保持用的 括号里面是几大概就延时多少ms {
uchar x;
for(ms;ms>0;ms--) for(x=110;x>0;x--); }
void display()//显示函数 {
d1=shi/10;//小时 d2=shi;// d3=fen/10;// d4=fen;//分钟 d5=miao/10;// d6=miao;//秒
w1=0;P0=table[d1];delay(10);//第1位显示数据 P0=0x00;w1=1;//关闭显示消除动态扫描阴影 w2=0;P0=table[d2]|0x01;delay(10);//第2位显示数据
相关推荐: