51单片机不加锁存器数码管动态显示0-999
更新时间:2024-04-12 07:37:01 阅读量: 综合文库 文档下载
- 51单片机锁存器工作原理推荐度:
- 相关推荐
51单片机不加锁存器数码管动态显示0-999
使用STC89C52RC单片机,数码管为共阳数码管PNP驱动,P3.4-P3.6控制位选,P0口控制段选信号,图中P8接到有上拉电阻的P0口,P9接到P3.4-P3.6,附上图和程序!
#include
sbit wei1=P3^6; /*百位*/ sbit wei2=P3^4; /*个位*/ sbit wei3=P3^5; /*十位*/
unsigned char code LedChar[] = { //数码管显示字符转换表 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E };
void delay(int z);
unsigned char i=0; //动态扫描的索引 unsigned int cnt=0; //记录 T0 中断次数 void main() {
unsigned long sec=0; //记录经过的秒数 EA=1; //使能总中断
TMOD=0x01; //设置 T0 为模式 1
TH0=0xB8; //为 T0 赋初值 0xFC67,定时 1ms TL0=0x00;
ET0=1; //使能 T0 中断 TR0=1; //启动 T0 while (1) { if (cnt>=1000) //判断 T0 溢出是否达到 1000 次 { cnt=0; //达到 1000 次后计数值清零 sec++; //秒计数自加 1 } wei1=0; P0=LedChar[sec]; wei1=1; delay(5); wei2=0; P0=LedChar[sec/10]; wei2=1; delay(5); wei3=0; P0=LedChar[sec/100]; wei3=1; delay(5); if(sec>999) { sec=0; }
} }
void delay(int z) {
int x,y;
for(x=z;x>0;x--) for(y=10;y>0;y--); }
/* 定时器 0 中断服务函数 */ void InterruptTimer0() interrupt 1 {
TH0 = 0xFC; //重新加载初值 TL0 = 0x67;
cnt++; //中断次数计数值加 1 }
正在阅读:
舜避丹朱于南河之南的历史真相05-04
定时闹钟课程设计大作业08-18
简报的格式结构02-14
《人口的空间变化》导学案08-08
点击文明绿色上网02-21
试题一11-13
认知心理学的研究方法07-10
大数据背景下人力资源管理应用创新与挑战03-21
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 锁存器
- 数码管
- 单片机
- 动态
- 显示
- 999