- 13
- 0
- 约1.78千字
- 约 6页
- 2015-08-23 发布于河南
- 举报
单片机的C语言程序设计——时钟
针对图1,用单片机C语言编程实现时钟,并利用Protues仿真演示。(1秒钟的定时使用定时器中断方式)
(1)硬件原理图
图1 定时电路原理图
(2)软件流程图
Y N
(3)程序清单(标注注释)
#include reg51.h
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 ; //开启定时器
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)软件流程图
Y N
(3)程序清单(标注注释)
#include reg51.h
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; //开启外部中断
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;
}
开始
程序初始化显示S=0
开启中断
进入无限循环,判断按键是否按下
是
调用显示程序
S==59 ?
S=0;
S+1
否
开始
程序初始化
无限循环,判断定时器是否溢出
是
否
调用显示程序
显示数据
延时
数据和是否等于60
S=0
返回至@
返回
您可能关注的文档
最近下载
- 新解读《DL_T 408—2023电力安全工作规程 发电厂和变电站电气部分》最新解读.docx VIP
- 1.7 有多少名观众 教案 2025-2026学年北师大版数学三年级下册.docx VIP
- 第5章 比亚迪精诚钣喷质量管理体系(A0版).pdf VIP
- 学堂在线《大学生心理健康》课后作业单元考核答案.docx VIP
- 脑出血钻孔引流术后护理要点.pptx VIP
- 抖音美妆类短视频营销策略.pdf VIP
- 热敏罐灸疗法可复制.pdf VIP
- 《过敏性紫癜预防与处理指南(2025)解读》.docx VIP
- SL706-2015水库调度编制导则.pdf VIP
- 《美妆短视频的发展问题研究》文献综述1700字.docx VIP
原创力文档

文档评论(0)