内容包含:keil+protues
适合刚接触单片机的同学
有什么单片机的问题大家也可以留言评论!
本贴保证原创!! |
单片机源程序如下:
- /*********************************************
- 程序功能:使用74H573锁存器和138译码器共同完成8位数码管的动态显示
- 138译码器的真值表:
- C B A 数码管位
- 0 0 0 1
- 0 0 1 2
- 0 1 0 3
- 0 1 1 4
- 1 0 0 5
- 1 0 1 6
- 1 1 0 7
- 1 1 1 8
- 程序公开,共同学习
- 如有错误,敬请纠正
- *********************************************/
- #include "reg52.h"
- #include "intrins.h"
- typedef unsigned char uchar;
- typedef unsigned int uint;
- sbit LSA = P2^0; //定义138译码器管脚A
- sbit LSB = P2^1; //定义138译码器管脚B
- sbit LSC = P2^2; //定义138译码器管脚C
- uchar code table[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //共阴极数码管字段
- uchar G,S,bai,Q,W,SW,BW,QW;
- long int num = 12345678 ;
- void count();
- void display();
- void delay(uint z);
- void main()
- {
- while(1)
- {
- count(); //计算
- display(); //显示
- }
- }
- void count() //把每一位数字都单独存到一个变量中
- {
- G = num%10;
- S = num/10%10;
- bai = num/100%10;
- Q = num/1000%10;
- W = num/10000%10;
- SW = num/100000%10;
- BW = num/1000000%10;
- QW = num/10000000%10;
- }
- void display()
- {
- /*********个位数码管*********/
- P0 = 0X00;
- LSA = 1;LSB = 1;LSC = 1;
- P0 = table[G];
- delay(5);
- /*********十位数码管*********/
- P0 = 0X00;
- LSA = 0;LSB = 1;LSC = 1;
- P0 = table[S];
- delay(5);
- /*********百位数码管*********/
- P0 = 0X00;
- LSA = 1;LSB = 0;LSC = 1;
- P0 = table[bai];
- delay(5);
- /*********千位数码管*********/
- P0 = 0X00;
- LSA = 0;LSB = 0;LSC = 1;
- P0 = table[Q];
- delay(5);
- /*********万位数码管*********/
- P0 = 0X00;
- LSA = 1;LSB = 1;LSC = 0;
- P0 = table[W];
- delay(5);
- /*********十万位数码管*********/
- P0 = 0X00;
- LSA = 0;LSB = 1;LSC = 0;
- P0 = table[SW];
- delay(5);
- /*********百万位数码管*********/
- P0 = 0X00;
- LSA = 1;LSB = 0;LSC = 0;
- P0 = table[BW];
- delay(5);
- /*********千万位数码管*********/
- P0 = 0X00;
- LSA = 0;LSB = 0;LSC = 0;
- P0 = table[QW];
- delay(5);
- }
- void delay(uint z)
- {
- uint x,y;
- for(x=0;x<z;x++)
- for(y=0;y<123;y++);
- }
复制代码
全部资料51hei下载地址:
DEMO_8SMG_74H573+74LS138.rar
(2.02 MB, 下载次数: 56)
|