历史上的今天
今天是:2025年08月09日(星期六)
2021年08月09日 | 8051单片机(STC89C52)实现可修改计时初值的单倒计时器(Version1.0)
2021-08-09 来源:eefocus
程序启动后计时初值为15, 之后可通过串口发来的数据(如"99")来修改下一次计时初值.
#include unsigned char code DIG_CODE[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};//对应数码管显示0~9 char buf[2]; int tcount = 0;//记录经过的10ms区间段个数 int sec = 15;//倒计时初始值记录 int sec2 = 15;//倒计时初始值 void T0_INT() interrupt 1 //timer0中断, 每10ms触发一次 { TR0 = 0;//关闭timer0 TH0 = 0xD8; TL0 = 0xF0;//65536 - 10000 = 55536 if(tcount % 2 == 0) { //显示个位数 P2 = 0;// P2 = 0 -> (P24, P23, P22) = (0, 0, 0) -> 右数第一个数字点亮 P0 = DIG_CODE[sec2 % 10]; tcount ++; } else if(tcount % 2 == 1) { //显示十位数 P2 = 1 << 2;//P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右数第二个数字点亮 P0 = DIG_CODE[sec2 / 10]; tcount ++; } if(tcount == 100) //10ms * 100 = 1000ms = 1s -> 1s时间到 { tcount = 0; sec2 --; if(sec2 == -1) { sec2 = sec; } } TR0 = 1;//重新开启timer0 } int main() { int i = 0; TMOD = 0x21; SCON = 0x50;//设置串行通信格式 TH0 = 0xD8; TL0 = 0xF0;//65536 - 10000 = 55536 IE = 0x82;//EA + ET0 -> 1000 0010 TH1 = 0xE6; TL1 = 0xE6;//1200bps under 12MHz RI = 0; TR0 = 1;//开启timer0 TR1 = 1;//开启timer1 while(1) { if(RI == 1) { RI = 0; buf[i++] = SBUF;//接收串口发来的数据 if(i == 2) { i = 0; sec = (buf[0] - 48) * 10 + (buf[1] - 48); } } } return 0; }
史海拾趣
|
汽车的视野性、方便性、舒适性等与车身电子控制系统息息相关。 视野性是指驾驶员在操纵汽车时,不需改变操作姿势对道路及周围环境观察的可见范围,视野控制技术指的是对汽车照明灯以及对电动刮水器、洗涤器和除霜器等的电子控制。方便性除指 ...… 查看全部问答> |
|
本人有MTK 平台的 0812 0816 06B 6223 单双卡双待等源码,提供配套的测试手机以及刷机线!可以满足学习与开发需要, 有学习需要的朋友可以加我,一起学习!一起做MTK的技术精英。 另外,对于初学者,本人可以提供环境搭建的完整工具与相应文档, ...… 查看全部问答> |
|
在wince中 RAM 被分成两个区域 一个是程序内存 这个好理解 还有个就是 对象存储库 这个对象存储库 不太理解 我们在往wince里面烧写程序的时候不是都烧写在 flash rom 里面的吗 那怎么 RAM ...… 查看全部问答> |
|
大家好: 我用的是顶星TM810-T主板,C3主频为1G的CPU,我想将主频超到1.33G,在BIOS中按照以下的设置后,保存退出,怎么还是原来的1G(100*10)主频呢?我的设置如下: Auto Detect DIMM/PCI Clk [Enabled] 默认,没有改 Spread Sp ...… 查看全部问答> |
|
今年的冬天,有寒冷还有雾霾,这是一个适合宅的冬天。对于那些本就不喜外出的技术宅来说,这再适合不过了,没有活动邀请,没有电话催促,可以宅在房间一隅摆弄自己心爱的玩意。 现在,为大家整理出本年度十大DIY方案,供各位技术宅神选用。仅供 ...… 查看全部问答> |
|
需要精简现在的网络交换单元的结构,现在是4片IP175D连接在一起,对外有14网络接口,其代价是4片IP175LFI,板子发热严重,电源不堪重负,因此开始重新选型,原则是单芯片多口, 条件如下: 1:MII/RMII 2:单芯片8个网络口以上。 3:工业级 4: ...… 查看全部问答> |




