单片机,定时器的应用,段选,位选二

来源:互联网 发布:淘宝没有合格证被投诉 编辑:程序博客网 时间:2024/05/16 11:21
#include#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;sbit D1=P1^0;void delay(uint z);uchar num,tt;uchar code table[]={ //结构体0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main(){//位选 来确定哪几个变亮 // wela=1; //给高电频,直通 // P0=0xc0; // wela=0; //给低电频,联接断开//段选 传数据 // dula=1; // P0=0x06; // dula=0; TMOD=0x01; //设置定时器0为工作方式1 TH0=(65536-50000)/256; //定时器高8位取模 50000 是要定时的时间,格式就是这样的写 TL0=(65536-50000)%256; //定时器低8位取余 EA=1; //打开总中断,允许使用中断器// EX0=1; //开外部中断0 两种方式 电频触发/跳变源触发// IT0=1; // 跳变 方式 和 TCON=0x01功能相同 TCON=0x01 是位操作 ET0=1; //开定时器0中断 TR0=1; //启动定时器 wela=1; //位选打开 P0=0xc0; wela=0; while(1) { if (tt==20) // for(num=0;num>16;num++) { num++; if(num==16) num=0; dula=1; //段选打开 P0=table[num]; dula=0; //段选锁存关闭 delay(1000); } }}void delay(uint z){uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);}void exter0() interrupt 1 //外部中断0的写法 用杜绑线 JND 联P3^2口{ TH0=(65536-50000)/256; //定时器高8位取模 50000 是要定时的时间,格式就是这样的写 TL0=(65536-50000)%256; //定时器低8位取余 tt++;}
原创粉丝点击