共阳极数组0~9:display[]={0xc0,0xf9,0xa4,0xb0,0x91,0xa2,0x82,0xf8,0x80,0x90}
共阳极数组a~f:display[]={0x88,0x83,0xa6,0xc1,0x86,0x8e}
共阴极数组0~9:display[]={0x3f,0x06,0x5b,0x4f,0x6e,0x6d,0x7d,0x07,0x7f,0x6f}
共阴极数组a~f:display[]={0x77,0x7c,0x59,0x3e,0x79,0x71}
共阴、两组四位一体数码管,位选接74ls138译码器,输入(位选)cba接p20,p21,p22。段选通过74573后接p1口。
若不使用译码器,可直接将位选段接io口,赋值改变。
/*******************************************************************************
2 * 实 验 名 : 动态数码管显示
3 * 实验说明 : 8位数码管依次显示0~7
*******************************************************************************/
8 #include
9
10 #define gpio_dig p1 //digitron 数码管
11 sbit lsa= p2^0;
12 sbit lsb= p2^1;
13 sbit lsc= p2^2;
14
15 unsigned char code dig_code[10]={
16 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码
17 void digdisplay();
18
19 void main(void)
20 {
21 while(1)
22 digdisplay();
23 }
24
25
26 void digdisplay()
27 {
28 unsigned char i;
29 unsigned int j;
30 for(i=0;i《8;i++)
31 {
32 switch(i) //位选,选择点亮的数码管,
33 {
34 case(0):
35 lsa=0;lsb=0;lsc=0; break;//显示第0位
36 case(1):
37 lsa=1;lsb=0;lsc=0; break;//显示第1位
38 case(2):
39 lsa=0;lsb=1;lsc=0; break;//显示第2位
40 case(3):
41 lsa=1;lsb=1;lsc=0; break;//显示第3位
42 case(4):
43 lsa=0;lsb=0;lsc=1; break;//显示第4位
44 case(5):
45 lsa=1;lsb=0;lsc=1; break;//显示第5位
46 case(6):
47 lsa=0;lsb=1;lsc=1; break;//显示第6位
48 case(7):
49 lsa=1;lsb=1;lsc=1; break;//显示第7位
50 }
51 gpio_dig=dig_code[i];//发送段码
52 j=10000; //扫描间隔时间设定,若减少j,可观察到稳定显示的0~7 (扫描速度太快,人眼识别不了)
53 while(j--);
54 gpio_dig=0x00;//消隐
55 }
56 }
1 /*******************************************************************************
2 * 实 验 名 : 数码管秒表显示
3 * 实验说明 : 0~59依次显示
*******************************************************************************/
8 #include
9
10 #define gpio_dig p1 //digitron 数码管
11 #define uchar unsigned char
12 #define uint unsigned int
13 sbit lsa= p2^0;
14 sbit lsb= p2^1;
15 sbit lsc= p2^2;
16
17 uchar shi,ge,num1=0,num=0;
18 uchar code dig_code[10]={
19 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码
20 void delay5ms();
21 void digdisplay(uchar shi,uchar ge);
22
23
24 void main()
25 { //200微秒@20mhz
26 tmod = 0x01; //设置定时器模式
27 tl0 = 0xa8; //设置定时初值
28 th0 = 0xfd; //设置定时初值
29 ea = 1; // 开总中断
30 tf0 = 0; //清除tf0标志
31 et0 = 1; // 开定时器0中断
32 tr0 = 1; //定时器0开始计时
33 while(1)
34 {
35 digdisplay(shi,ge);
36 }
37 }
38
39 void digdisplay(uchar shi,uchar ge)
40 {
41 gpio_dig=dig_code[shi]; //段选
42 lsa=0;lsb=0;lsc=0;
43 delay5ms();
44 gpio_dig=dig_code[ge];
45 lsa=1;lsb=0;lsc=0;
46 delay5ms();
47 }
48
49 void timer0init(void) interrupt 1
50 {
51 tl0 = 0xa8; //重装初
52 th0 = 0xfd;
53 num1++;
54 if(num1==200) //5次200ms即为1s到
55 {
56 num1=0;
57 num++;
58 if(num==60)
59 num=0;
60 shi=num/10;
61 ge = num%10;
62 }
63 }
64
65
66 void delay5ms() //@12.000mhz
67 {
68 unsigned char i, j;
69
70 i = 59;
71 j = 90;
72 do
73 {
74 while (--j);
75 } while (--i);
76 }
WinCE的嵌入式系统注册表的研究
苹果13新款手机概念
常见的磁力计有哪几种
FPGA 实现线性相位 FIR 滤波器的注意事项
电子体温计如何使用_电子体温计使用方法
51单片机对8位数码管依次显示0-7的设计
激光传感器的实际应用
中国联通启动了2019-2020年数据中心交换机设备集中采购招标项目
场外OTC交易所开发,数字资产期货合约平台开发公司,源中瑞Dave
SpinalHDL入坑之旅
Q1季度SK电讯拥有5G用户265万户,取得可观的移动业务收入
AMD首款7nm显卡RadeonVII高清图赏
TE CONNECTIVITY推出多款高性价比M.2连接器
中国为发行国家数字货币已经有了整体链条式架构
M12航空插头连接器介绍
X219通用型过程校验仪使用简介
百度Apollo组织架构调整,自动驾驶战略有新变化
单片机复位电路分析
zookeeper端口配置
荣耀Magic6系列引领行业,六大创新技术璀璨亮相