《最新《C语言编程实训》实训指导书三.doc》由会员分享,可在线阅读,更多相关《最新《C语言编程实训》实训指导书三.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言编程实训实训指导书三单片机应用实训C语言编程实训实训指导书三 适应专业:应用电子技术 广州康大职业技术学院自动化系 二0 一0年十一月 C语言编程实训实训三八红旗手 单片机时钟程序设计一、实训目的 1掌握LED显示、键盘、定时/计数器综合应用程序的设计方法;2熟悉运用PROTEUS ISIS仿真调试单片机时钟程序的基本操作。二、实训设施 PROTEUS计算机软件
2、、PC机三、实训要求1使用C语言编程,实现由单片机控制LED数码管显示时、分、秒的电子时钟,并具有用按键修改时钟参数的功能(采用2个按键)。2写出1000字以上的实训总结报告(内容以单片机时钟程序设计及源程序清单为主)。四、实训内容1设计单片机时钟硬件系统(1)学习单片机时钟工作原理 6位七段LED显示器(共阳极数码管), 采用动态扫描的方法进行显示, 即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短(不超过10毫秒),且人眼具有视觉残留效应,因此看起来与全部显示器持续点亮效果完全一样。 动态扫描时, 单片机芯片的P1口(P1.0P1.5)输出段控信号,
3、P3口(P3.0P3.5)输出位控信号, 当两口为高电平时,该字段就不显示;当两口为低电平时,就显示相应字段。 时间校正的操作方法:两按键串联,接在单片机芯片的P2.4与P2.5之间, 按下按键K1,可调整“分”; 按下按键K2,可调整“时”。(2)使用PROTEL绘制电路原理图从PROTEUS库中选取以下元器件: 7SEG-MPX2-CA(或7SEG-MPX6-CA):六位数码管 AT89C51:单片机 BUTTON:按键 CAP、CAP-ELEC:电容、电解电容 CRYSTAL:晶振 RES:电阻放置元器件放置电源和地(终端)连线元器件属性设置电气检测 绘制完全的电路原理如图3-1所示 图
4、3-1 单片机电子时钟电路原理图2学习识读单片机时钟程序程序清单:#include#define uint unsigned int#define uchar unsigned charvoid keys();sbit P30=P30;sbit P31=P31;sbit P32=P32;sbit P33=P33;sbit P34=P34;sbit P35=P35;sbit key=P24;sbit key1=P25;uchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar hour=23,minute=
5、59,second=0;uint a,b,dd,ee,gg,hh;static char count=0;void delay(uint z) int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void int1() interrupt 1 using 2 TH0=(65536-50000)/256;TL0=(65536-50000)%256; count+;void main() TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; for(;) a=hour/10
6、;b=hour%10;dd=minute/10;ee=minute%10; gg=second/10;hh=second%10; keys(); P3=0X00; P1=tablea; P30=1; delay(1); P3=0X00; P1=tableb; P31=1; delay(1); P3=0X00; P1=tabledd; P32=1; delay(1); P3=0X00; P1=tableee; P33=1; delay(1); P3=0X00; P1=tablegg; P34=1; delay(1); P3=0X00; P1=tablehh;P35=1; delay(1); if
7、(count=20) count=0; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; void keys() if(key=0) delay(5); if(key=0) while(!key); delay(5); minute+; if(minute=60) minute=0; delay(10); if(key1=0) delay(5); if(key1=0) while(!key1); delay(5);hour+;if(hour=24) hour=0; delay(10); 3. PROTEUS仿真(1) 加载目标代码文件鼠标指针指在器件AT89C51上,先右击再左击,在弹出的属性编辑对话框Program File 一栏中单击打开按钮,出现文件浏览对话框,找到单片机时钟的机器码文件,单击“打开”按钮,完成添加文件。在Clock Frequency栏中把频率设定为12MHZ,单击“OK”按钮退出。(2) 全速仿真 单击运行按钮,启动仿真,仿真运行片断如下图3-2所示:通过按动开关K1、K2闭合,可以进行“分”和“时”的加1调整。 -
限制150内