网站建设的可研设计报告,最近新闻摘抄,网站开发制作公司简介,免费的外网连接器文章目录 1.认识数码管2.控制原理十进制转换为任意进制其它进制转十进制 3.数码管实现0-9的显示1.用数组定义0-9的内码段码跟位码的区别2.尝试用延时实现0-9的循环显示3.用按键控制数字的加或者减。 总结课后练习#xff1a; 1.认识数码管
数码管按段数可分为七段数码管和八段… 文章目录 1.认识数码管2.控制原理十进制转换为任意进制其它进制转十进制 3.数码管实现0-9的显示1.用数组定义0-9的内码段码跟位码的区别2.尝试用延时实现0-9的循环显示3.用按键控制数字的加或者减。 总结课后练习 1.认识数码管
数码管按段数可分为七段数码管和八段数码管八段数码管比七段数码管多一个发光二极管单元也就是多一个小数点DP这个小数点可以更的表示数码管想要显示的内容按能显示多少个8可分为1位、2位、3位、4位、5位、6位、7位等数码管。 按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管共阳数码管在应用时应将公共极COM接到5V当某一字段发光二极管的阴极为低电平时相应字段就点亮当某一字段的阴极为高电平时相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管共阴数码管在应用时应将公共极COM接到地线GND上当某一字段发光二极管的阳极为高电平时相应字段就点亮当某一字段的阳极为低电平时相应字段就不亮。
数码管内部是由多个发光二极管封装在一起组成他们可以有很多种颜色很多种外形很多种样式但是本质来说他们都是通过点亮内部的LED来显示的只要面板做好了理论可以显示任意的字符或者图案。 按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管尾缀A表示共阳,K表示共阴 4位数码管
2.控制原理 本节先点亮最后1个“8”根据原理图只需要P6和com0P7.0)即可。 新建excel分析 分别显示了二进制10进制16进制及对应关系。 可参考进制之间的相互转换超详细。
十进制转换为任意进制
方法都大同小异本质都是采用 求余法如果是转换为二进制则就是对 2 求余如果转换为八进制则就是对 8 求余。依此类推直到商为0终止并反向取余数将结果 从下往上 进行排序)。
其它进制转十进制
基数乘以指数的n次方 法 。基数进制数值本身(比如二进制数 10101010就是基数)指数相应的进制值(二进制的指数就是2八进制的指数就是8)n表示基数的位置以小数点分割左边的数从0开始数右边的数(也就是小数点后面的数)从 -1开始数。
3.数码管实现0-9的显示
1.用数组定义0-9的内码
以“3.按键控制LED“工程为模板新建“5.数码管”。 定义数码管显示数组
u8 SEG_Tab[10] {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9段码跟位码的区别
段指a b c d e f g dp等LED,段码是选择哪一划位码是选择第几个8
2.尝试用延时实现0-9的循环显示
用数组实现0至9的显示数组索引可以用变量这里定义u8 num。 main()函数修改如下
void main() //程序开始运行
{u8 num 0;sys_init();usb_init(); //初始化USB代码EA 1;while(1) //死循环{if( DeviceState ! DEVSTATE_CONFIGURED ) //判断USB是否连接成功,最新版usb.h中该有定义continue;if( bUsbOutReady ) //判断有没有接收到数据{usb_OUT_done(); //接收应答固定格式}P70 0; //开启一个数码管
//---------------------------P6 SEG_Tab[num]; //这个数码管输出段码num;if(num9)num 0;delay_ms(1000);}
}
实现了数码管0-9的循环。
3.用按键控制数字的加或者减。
调整while主循环代码实现按键加减 while(1) //死循环{if( DeviceState ! DEVSTATE_CONFIGURED ) //判断USB是否连接成功,最新版usb.h中该有定义continue;if( bUsbOutReady ) //判断有没有接收到数据{usb_OUT_done(); //接收应答固定格式}P70 0; //开启一个数码管
---------------------------
// P6 SEG_Tab[num]; //这个数码管输出段码
// num;
// if(num9)
// num 0;
// delay_ms(1000);P6 SEG_Tab[num]; //这个数码管输出段码if (KEY1 0){delay_ms(10);if (KEY1 0){while(KEY1 0); //松开后继续执行以下程序if(num9)num;}}if (KEY2 0){delay_ms(10);if (KEY2 0){while(KEY2 0);if(num0)num--;}}}感觉有点单调加个蜂鸣
if (KEY2 0){BEEP 0;delay_ms(10);BEEP 1;while(KEY2 0);if(num0)num--;}先蜂鸣一声松开按键后加或者减。
总结
1.了解数码管的数字内码的由来 2.学会数码管通过数组的方式获取数值
课后练习
1.尝试使用数码管显示- H J L N o P U t r 等字母或符号。 2.通过一个按键设置数码管显示数字0-9循环在按一下另一个按键的时候数码管上显示的数字几蜂鸣器就响几声。