单片机数码管仿真的原理图
仿真文件下载:http://www.51hei.com/bbs/dpj-50777-1.html
- #include <reg51.h>
- #define uchar unsigned char
- uchar count = 0;
- uchar switc[9] = {0X7F, 0XBF, 0XDF, 0XEF, 0XF7, 0XFB, 0XFD, 0XFE}; //控制哪一个数码管亮
- unsigned char disNumber[10] = {0xFF,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示的数
- unsigned char disNumber_index;
-
- void delay2ms(void) //误差 0us
- {
- unsigned char a,b;
- for(b=4;b>0;b--)
- for(a=248;a>0;a--)
- ;
- }
- void time1() interrupt 1 //定时器中断
- {
- uchar tempValue = 0;
- count++;
- if(count == 20)
- {
- count = 0;
- disNumber_index++;
- if(disNumber_index == 9)
- disNumber_index =0;
- }
-
-
- TH0=(65536-50000)/256; //16位定时器0x60B0 高八位TH0 60低八位 B0 定时50000微秒触发定时器
- TL0=(65536-50000)%256;
- }
- void main(void)
- {
- TMOD=0x01;//设置定时器0为工作方式1
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;//打开中断总开关
- ET0=1;//开定时器0中断
- TR0=1;//启动定时器0
- P2 = 0x00;
-
- while(1)
- {
- P0 = disNumber[disNumber_index];
-
- }
- }//小月子2016年5月21日编辑 如果您有什么不理解的地方请加小月子QQ:616142166
- //小月子是个电子发烧友,小月子电子网店卖的是电子电路类、编程类学习资料教学视频
- //请关注我的网
复制代码
|