我的选题基于单片机流水线自动计数器,要求是自动计数,自动加一。它是由一块51单片机控制,数码管显示,以及红外光电计数,其中电阻的功能是驱动数码管。其中单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- //段码
- uchar code
- DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
- uchar Count=0;
- //主程序
- void main()
- {
- P0=0x00;
- P2=0x00;
-
- TMOD=0x06; //计数器 T0 方式 2
- TH0=TL0=256-1; //计数值为 1
- ET0=1; //允许 T0 中断
- EX0=1; //允许 INT0 中断
- EA=1; //允许 CPU 中断
- IP=0x02; //设置优先级,T0 高于 INT0
- IT0=1; //INT0 中断触发方式为下降沿触发
- TR0=1; //启动 T0
- while(1)
- {
- P0=DSY_CODE[Count/10];
- P2=DSY_CODE[Count%10];
- }
- }
- //T0 计数器中断函数
- void Key_Counter() interrupt 1
- {
- Count=(Count+1)%100; //因为只有两位数码管,计数控制在 100 以内(00~99)
- }
- //INT0 中断函数
- void Clear_Counter() interrupt 0
- {
- Count=0;
- }
复制代码
一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
|