电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机的C语言程序设计——时钟

单片机的C语言程序设计——时钟_第1页
1/6
单片机的C语言程序设计——时钟_第2页
2/6
单片机的C语言程序设计——时钟_第3页
3/6
程序初始化 单片机的C 语言程序设计——时钟 1. 针对图1,用单片机C语言编程实现时钟,并利用Protu es 仿真演示。(1 秒钟的定时使用定时器中断方式) (1)硬件原理图 图1 定时电路原理图 (2)软件流程图 开始 无限循环,判断定时器是否溢出 是 否 调用显示程序 显示数据 Y N (3)程序清单(标注注释) #include static unsigned char code seg[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ; // 字形码 void show(); unsigned int num[2]; void main(void) { P2=0x00; P3=0x00; //P2,P3 赋初值 TMOD=0x00; TH0=0x10; TL0=0x60; //定时4mS EA=1; ET0=1; TR0=1 ; //开启定时器 延时 数据和是否等于 60 S=0 返回至@ 返回 while(1); //进入死循环,进入中断判断 } void timeint(void) interrupt 1 using 2 { unsigned int h; //定义变量h h++; if(h==125){ show(); //调用显示程序 h=0; } //循环125 次,达到定时一秒后,让 h 重新计数 TH0=0x10; TL0=0x60; //重新赋给定时器初值 } void show() //显示程序 { unsigned char s; num[0]=s%10; //取个位的数 num[1]=s/10; //取十位的数 P3=seg[num[0]]; //根据字形码显示个位的数 P2=seg[num[1]]; //根据字形码显示十位的数 s++; //显示的数加一 if(s==60) s=0; //计数到60 的时候,重新让它等于 0.如此循环,成为秒表 2.针对图 2,用单片机C语言编程按键按下,显示数据增加1,并用Protues 仿真运行 (1)硬件原理图 图2 计数电路原理图 (2)软件流程图 开始 程序初始化显示S=0 开启中断 进入无限循环,判断按键是否按下 是 调用显示程序 否 Y N (3)程序清单(标注注释) #include sbit P32=P3^2; // P3^2 用P32 代替 static unsigned char code seg[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ; // 字形码 void show(); unsigned int num[2]; void main(void) { P2=seg[0]; P0=seg[0]; //显示初值00 TMOD=0x00; EA=1; EX0=1; IT0=1; //开启外部中断 S==59 ? S=0; S+1 while(1); //进入无限循环,所有工作均由中断实现,判断P32 所接的键是否按下,按下时进入中断程序 } void timeint(void) interrupt 1 using 2 { unsigned char s; //S=0;为初植 s++; //S 加一 num[0]=s%10; //取个位的数 num[1]=s/10; //取十位的数 P2=seg[num[0]]; P0=seg[num[1]]; //显示S if(s==59) s= -1; //当显示到59 的时候,应显示00。由于之前我就 S++;,故这里赋值为-1; }

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机的C语言程序设计——时钟

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部