2022年秒表程序 .pdf

上传人:H****o 文档编号:39896544 上传时间:2022-09-08 格式:PDF 页数:8 大小:81.56KB
返回 下载 相关 举报
2022年秒表程序 .pdf_第1页
第1页 / 共8页
2022年秒表程序 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年秒表程序 .pdf》由会员分享,可在线阅读,更多相关《2022年秒表程序 .pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1.#include 2.#include 3.#define uchar unsigned char 1.void delay_ms(uchar ms);/延时毫秒 12M,ms 最大值 255 2.void key_scan();/按键扫描3.void key_to();/按键处理4.5.uchar code dis_code11=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,/段码表6./0 1 2 3 4 对应内容7.0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf;8./5 6 7 8 9 -9.10.uchar data dis8;/dis0为百

2、分之一秒值,dis1为十分之一秒值11./dis2,dis5为-段码的偏移量12./dis3为秒个位值,dis4为秒十位值13./dis6为分个位值,dis7为分十位值14.15.uchar data dot=0;/百分之一秒计数器(0.00s-0.99s)16.uchar data sec=0;/秒计数器(00s-59s)17.uchar data min=0;/分计数器(00m-99m)18.19.uchar data dis_b;/dis_b为位码选通数码管20.uchar data dis_r;/dis_r为取段码时的偏移量21.22.uchar data key_t=0;/按键次数,

3、初始为 0 23.24.sbit K=P14;/K键与 P1.4 相连25.26.void main()27.28.P2=0 xff;/关所有数码管29.P1=0 xff;/p1为准双向口,作输入时先写 1 30.dis2=10;/-在段码表中偏移量为10 31.dis5=10;/-在段码表中偏移量为10 32.dis_b=0 x7f;/初始选通 P2.7 口数码管33.dis_r=0;/初始化偏移量为0 34.35.TMOD =0 x11;/定时/计数器 0,1 工作于方式 1 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -36.TH0 =0 xd8;/预置定时常数

4、 55536(d8f0),产生 10ms时基信号37.TL0=0 xf0;38.TH1 =0 xfc;/预置定时常数 64536(fc18),产生 1ms间隔用于动态显示39.TH1 =0 x18;40.EA =1;/开总中断41.ET0 =1;/定时/计数器 0 允许中断42.ET1 =1;/定时/计数器 1 允许中断43.TR0 =0;/关闭定时/计数器 0 44.TR1 =1;/启动定时/计数器 1 45.while(1)46.47.if(K!=1)/有键按下48.49.delay_ms(10);/延时 10ms去抖50.if(K!=1)/确定是有键按下51.52.while(K!=1)

5、;/等待键松开53.key_to();/按键处理54.55.56.57.58.void key_to()/按键处理子程序59.60.key_t+;/按键次数加 1 61.if(key_t=1)/第一次按下62.TR0 =1;/启动定时器 0 63.else64.65.if(key_t=2)/第二次按下66.TR0 =0;/关闭定时器 0 67.else68.69.if(key_t=3)/第三次按下70.71.dot=0;/三个计数器清零72.sec=0;73.min=0;74.key_t=0;/按键次数清零75.76.77.名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页

6、-78.79.80.void tiem0(void)interrupt 1 /T/C0中断服务程序(产生 10ms时基信号)81.82.dot+;/百分之一秒计数器加1 83.if(dot=100)/计数值到 100 84.85.dot=0;/清零86.sec+;/秒计数器加 1(进位10ms*100=1s)87.if(sec=60)/秒计数值到 60 88.89.sec=0;/秒计数器清零90.min+;/分计数器加 1(进位 60s=1m)91.if(min=100)/分计数到 100 92.min=0;/分计数器清零93.94.95.TH0 =0 xd8;/重置定时常数96.TL0=0

7、xf0;97.98.void time1(void)interrupt 3 /T/C1中断服务程序(延时 1ms数码管动态显示)99.100.dis0=dot%10;/百分之一秒计数器个位分离出来赋绐 dis0 101.dis1=dot/10;/百分之一秒计数器十位分离出来赋绐 dis1 102.dis3=sec%10;/秒计数器个位赋绐dis3 103.dis4=sec/10;/秒计数器十位赋绐dis4 104.dis6=min%10;/分计数器个位赋绐dis6 105.dis7=min/10;/分计数器十位赋绐dis7 106.107.P0=dis_codedisdis_r;/段码送 P0

8、口(dis0.dis7)108.P2=dis_b;/位码送 P2口109.110.dis_r+;/偏移量加 1,下次中断时显示下个数111.dis_r&=0 x07;/dis_r增到 8 时自动清 0(使之在 0 到 7 间循环)112.名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -113.dis_b=_cror_(dis_b,1);/位码循环右移,下次中断时选通下个数码管114.115.TH1 =0 xfc;/重置定时常数116.TL1=0 x18;117.118.119.void delay_ms(uchar ms)/延时毫秒 12M,ms 最大值255 120.

9、121.uchar i;122.while(ms-)123.for(i=0;i 124;i+);124.#include#include#include#define unit unsigned int#define uchar unsigned char/#define HZ 12 sbit key0=P00;/分钟调整sbit key1=P01;/小时调整sbit P2_0=P27;/秒 指示灯sbit MN_RXD=P36;sbit MN_TXD=P37;uchar data CLOCK4=0,0,0,12;/存放时钟时间(百分秒,秒,分,和时位)/数码管显示表0-f 灭uchar co

10、de TABLE=0 xBE,0 x06,0 xEA,0 x6E,0 x56,0 x7C,0 xFC,0 x0E,0 xFE,0 x7E,0 x00;/*/模拟串口发送一个字节数据函数/*void SendData(unsigned char senddata)unsigned char i;for(i=0;i1;/*/显示程序函数/*void display(void)/unsigned int n;uchar temp;temp=CLOCK1;temp=temp%10;SendData(TABLEtemp);temp=CLOCK1;temp=temp/10;SendData(TABLEte

11、mp);temp=CLOCK2;temp=temp%10;SendData(TABLEtemp);temp=CLOCK2;temp=temp/10;SendData(TABLEtemp);temp=CLOCK3;temp=temp%10;SendData(TABLEtemp);temp=CLOCK3;temp=temp/10;SendData(TABLEtemp);/*for(n=0;n5000;n+);for(n=0;n6;n+)SendData(TABLE10);*/*/按键控制函数/*void keycan()unsigned int n;EA=0;名师资料总结-精品资料欢迎下载-名师精

12、心整理-第 5 页,共 8 页 -if(key0=0)/分钟调整 for(n=0;n10000;n+);/延时去抖动while(key0=0);CLOCK2=CLOCK2+1;if(CLOCK2=60)/到一时 CLOCK2=0;display();if(key1=0)/小时调整 for(n=0;n10000;n+);/延时去抖动while(key1=0);CLOCK3=CLOCK3+1;if(CLOCK3=24)CLOCK3=0;display();EA=1;/*/T0 中断服务函数/*void time0()interrupt 1/using 1 TH0=0 xD8;TL0=0 xF0;/

13、重置初值/TH0=0 xB1;TL0=0 xE0;/时钟处理CLOCK0=CLOCK0+1;/*/主函数/*void main()名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -EA=1;ET0=1;TMOD=0 x01;/T0 方式 1 定时TH0=0 xD8;TL0=0 xF0;/D8F0 定时 10ms/TH0=0 xB1;TL0=0 xE0;/定时20ms TR0=1;for(;)if(CLOCK0=100)/到一秒10ms*100 CLOCK0=0;P2_0=P2_0;CLOCK1=CLOCK1+1;if(CLOCK1=60)/到一分 CLOCK1=0;CLO

14、CK2=CLOCK2+1;if(CLOCK2=60)/到一时 CLOCK2=0;CLOCK3=CLOCK3+1;if(CLOCK3=24)CLOCK3=0;display();keycan();三相电正常相序:在 A 相方波上升沿时,B 相为 0 电平,C 相为 1 电平在 B 相方波上升沿时,C 相为 0 电平,A 相为 1 电平名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -在 C 相方波上升沿时,A 相为 0 电平,B 相为 1 电平逆相:在 A 相方波上升沿时,B 相为 1 电平,C 相为 0 电平在 B 相方波上升沿时,C 相为 1 电平,A 相为 0 电平在 C 相方波上升沿时,A 相为 1 电平,B 相为 0 电平名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com