当前位置: 首页 > news >正文

科技网站首页设计深圳工程建设交易服务中心网站

科技网站首页设计,深圳工程建设交易服务中心网站,长沙旅游十大必去景区,有哪些网站适合大学生做兼职目录 一、数码管动态显示概述 二、动态数码管原理图 #xff08;1#xff09;原理图 #xff08;2#xff09;动态数码管如何与芯片相连 #xff08;3#xff09;“此器件” ——锁存器74HC573 三、动态数码管显示例程 #xff08;1#xff09;例程1#xf…目录 一、数码管动态显示概述 二、动态数码管原理图 1原理图 2动态数码管如何与芯片相连 3“此器件” ——锁存器74HC573 三、动态数码管显示例程 1例程1两个数码管显示不同内容。本例以第一个数码管显示数字“0”第二个数码管显示数字“1”为例。 2例程2多个数码管显示不同内容二。注创建数码管显示子函数。 3例程3多个数码管显示不同内容二。注创建数码管显示子函数。 ①法一 ②法二 ③法三 4例程4多位数码管倒计时。本例以第6、7、8位数码管显示255→0的倒计时为例其他数码管保持熄灭。 一、数码管动态显示概述 LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一。动态驱动是将所有数码管的8个显示笔划段选端“a,b,c,d,e,fg,dp”的同名端连在一起另外为每个数码管的公共极COM增加位选通控制电路位选通由各自独立的I/O线控制。当单片机输出字形码时单片机先对位选通COM端电路进行控制再对段选通进行输出该位就显示出字形没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端就使各个数码管轮流受控显示这就是动态驱动。在轮流显示过程中每位数码管的点亮时间为1~2ms由于人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位数码管并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感动态显示的效果和静态显示是一样的能够节省大量的I/O端口而且功耗更低。 二、动态数码管原理图 1原理图 2动态数码管如何与芯片相连 3“此器件” ——锁存器74HC573 74HC573的八个锁存器都是透明的D型锁存器当使能(G)为高时0输出将随数据(D)输入而变当使能为低时将输出锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作即老数据可以保持甚至当输出被关闭时新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载可以直接与系统总线接口并驱动总线而不需要外接口。特别适用于缓冲寄存器1/0通道双向总线驱动器和工作寄存器。Y7C为高电平a-dp会随着p0变化Y7C为低电平时锁存置为低电平的那一刻的数据不再变化Y7C和Y6C同时只能有一个为低电平 三、动态数码管显示例程 1例程1两个数码管显示不同内容。本例以第一个数码管显示数字“0”第二个数码管显示数字“1”为例。 //头文件声明区域 #include STC15F2K60S2.H #includeintrins.h//变量声明区域 unsigned int i 0;//函数声明区域 void Delay(int ms);//程序主体 void main() {P20XA0;P00X00;P20X80;P00XFF;//初始化程序 while(1){P20XC0;P00X01;//打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P00XC0;//大家控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay(1);P20XC0;P00X02;//打开控制数码管位选的锁存器然后选中第二个数码管P20XFF;P00XF9;//打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay(1);} }//函数定义区域 void Delay(int ms) //11.0592MHz {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}} 2例程2多个数码管显示不同内容二。注创建数码管显示子函数。 #include STC15F2K60S2.H #includeintrins.hvoid Delay_MS(unsigned int MS);void main(void) {IO_Init();P20XA0;P00X00;P20X80;P00XFF; //初始化程序后期详解;while(1){P20XC0;P00X01; //打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P00XC0; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X02; //打开控制数码管位选的锁存器然后选中第二个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X04; //打开控制数码管位选的锁存器然后选中第三个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X08; //打开控制数码管位选的锁存器然后选中第四个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X10; //打开控制数码管位选的锁存器然后选中第五个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X20; //打开控制数码管位选的锁存器然后选中第六个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X40; //打开控制数码管位选的锁存器然后选中第七个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P20XC0;P00X80; //打开控制数码管位选的锁存器然后选中第八个数码管P20XFF;P00XF9; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);} }void Delay_MS(unsigned int MS) {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}} 3例程3多个数码管显示不同内容二。注创建数码管显示子函数。 ①法一 //头文件声明区域 #include STC15F2K60S2.H #includeintrins.h//变量声明区域 unsigned int i 0; unsigned char DSEG[] {0X00,0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80}; unsigned char code SEG[] {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};//函数声明区域 void Delay(int ms); void DSED_Display(unsigned char dseg,unsigned char seg);//程序主体 void main() {P20XA0;P00X00;P20X80;P00XFF;//初始化程序 while(1){DSED_Display(1,1);DSED_Display(2,2);DSED_Display(3,3);DSED_Display(4,4);DSED_Display(5,5);DSED_Display(6,6);DSED_Display(7,7);DSED_Display(8,8);} }//函数定义区域 void Delay(int ms) //11.0592MHz {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}}void DSED_Display(unsigned char dseg,unsigned char seg) {P0 0XFF;//消影P20XC0;P0DSEG[dseg];//打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P0SEG[seg];Delay(1);} ②法二   #include STC15F2K60S2.H #includeintrins.hunsigned char tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF}; //unsigned char code tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;void Delay(int ms) void SEG_Display(unsigned char yi,unsigned char er,unsigned char san,unsigned char si,unsigned char wu,unsigned char liu,unsigned char qi,unsigned char ba);void main(void) {P20XA0;P00X00;P20X80;P00XFF; //初始化程序后期详解;while(1){SEG11,SEG22,SEG33,SEG44,SEG55,SEG66,SEG77,SEG88;SEG_Display(SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8);} }void SEG_Display(unsigned char yi,unsigned char er,unsigned char san,unsigned char si,unsigned char wu,unsigned char liu,unsigned char qi,unsigned char ba) {P00XFF;P20XC0;P00X01; //打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P0tab[yi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X02; //打开控制数码管位选的锁存器然后选中第二个数码管P20XFF;P0tab[er]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X04; //打开控制数码管位选的锁存器然后选中第三个数码管P20XFF;P0tab[san]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X08; //打开控制数码管位选的锁存器然后选中第四个数码管P20XFF;P0tab[si]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X10; //打开控制数码管位选的锁存器然后选中第五个数码管P20XFF;P0tab[wu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X20; //打开控制数码管位选的锁存器然后选中第六个数码管P20XFF;P0tab[liu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X40; //打开控制数码管位选的锁存器然后选中第七个数码管P20XFF;P0tab[qi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X80; //打开控制数码管位选的锁存器然后选中第八个数码管P20XFF;P0tab[ba]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void Delay(int ms) //11.0592MHz {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}} ③法三   #include STC15F2K60S2.H #includeintrins.h//#define uchar unsigned char //#define uint unsigned inttypedef unsigned char uchar ; typedef unsigned int uint ;unsigned char tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF}; //unsigned char code tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8;void Delay(int ms); void SEG_Display12(uchar yi,uchar er); void SEG_Display34(uchar san,uchar si); void SEG_Display56(unsigned char wu,unsigned char liu); void SEG_Display78(unsigned char qi,unsigned char ba);void main(void) {P20XA0;P00X00;P20X80;P00XFF; //初始化程序后期详解;while(1){SEG11,SEG22,SEG33,SEG44,SEG55,SEG66,SEG77,SEG88;SEG_Display12(SEG1,SEG2);SEG_Display34(SEG3,SEG4);SEG_Display56(SEG5,SEG6);SEG_Display78(SEG7,SEG8);} }void SEG_Display12(unsigned char yi,unsigned char er) {P00XFF;P20XC0;P00X01; //打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P0tab[yi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X02; //打开控制数码管位选的锁存器然后选中第二个数码管P20XFF;P0tab[er]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void SEG_Display34(unsigned char san,unsigned char si) {P00XFF;P20XC0;P00X04; //打开控制数码管位选的锁存器然后选中第三个数码管P20XFF;P0tab[san]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X08; //打开控制数码管位选的锁存器然后选中第四个数码管P20XFF;P0tab[si]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void SEG_Display56(unsigned char wu,unsigned char liu) {P00XFF;P20XC0;P00X10; //打开控制数码管位选的锁存器然后选中第五个数码管P20XFF;P0tab[wu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X20; //打开控制数码管位选的锁存器然后选中第六个数码管P20XFF;P0tab[liu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); } void SEG_Display78(unsigned char qi,unsigned char ba) {P00XFF;P20XC0;P00X40; //打开控制数码管位选的锁存器然后选中第七个数码管P20XFF;P0tab[qi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X80; //打开控制数码管位选的锁存器然后选中第八个数码管P20XFF;P0tab[ba]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void Delay(int ms) //11.0592MHz {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}}4例程4多位数码管倒计时。本例以第6、7、8位数码管显示255→0的倒计时为例其他数码管保持熄灭。 #include STC15F2K60S2.H #includeintrins.h#define uchar unsigned char #define uint unsigned intunsigned char tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF}; //unsigned char code tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char SEG1,SEG2,SEG3,SEG4,SEG5,SEG6,SEG7,SEG8; unsigned char Num 255 ; unsigned char Num_Refresh 0 ;void Delay(uint MS); void SEG_Display12(uchar yi,uchar er); void SEG_Display34(uchar san,uchar si); void SEG_Display56(unsigned char wu,unsigned char liu); void SEG_Display78(unsigned char qi,unsigned char ba);void main(void) {P20XA0;P00X00;P20X80;P00XFF; //初始化程序后期详解;P20XC0;P00X01;P20XFF;P00XFF; //打开第一个数码管后期详解SEG111,SEG211,SEG311,SEG411,SEG511;SEG62,SEG75,SEG85;while(1){ if(Num_Refresh125){Num_Refresh 0 ;Num Num -1; //Num--;SEG6Num/100,SEG7Num%100/10,SEG8Num%10;}SEG_Display12(SEG1,SEG2);SEG_Display34(SEG3,SEG4);SEG_Display56(SEG5,SEG6);SEG_Display78(SEG7,SEG8);} }void SEG_Display12(unsigned char yi,unsigned char er) {P00XFF;P20XC0;P00X01; //打开控制数码管位选的锁存器然后选中第一个数码管P20XFF;P0tab[yi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X02; //打开控制数码管位选的锁存器然后选中第二个数码管P20XFF;P0tab[er]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void SEG_Display34(unsigned char san,unsigned char si) {P00XFF;P20XC0;P00X04; //打开控制数码管位选的锁存器然后选中第三个数码管P20XFF;P0tab[san]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X08; //打开控制数码管位选的锁存器然后选中第四个数码管P20XFF;P0tab[si]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void SEG_Display56(unsigned char wu,unsigned char liu) {P00XFF;P20XC0;P00X10; //打开控制数码管位选的锁存器然后选中第五个数码管P20XFF;P0tab[wu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X20; //打开控制数码管位选的锁存器然后选中第六个数码管P20XFF;P0tab[liu]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); } void SEG_Display78(unsigned char qi,unsigned char ba) {P00XFF;P20XC0;P00X40; //打开控制数码管位选的锁存器然后选中第七个数码管P20XFF;P0tab[qi]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1);P00XFF;P20XC0;P00X80; //打开控制数码管位选的锁存器然后选中第八个数码管P20XFF;P0tab[ba]; //打开控制数码管段选的锁存器然后给上述打开的数码管输出码值Delay_MS(1); }void Delay(uint MS) //11.0592MHz {unsigned char i, j;for(i 0;i ms;i){_nop_();_nop_();_nop_();i 11;j 190;do{while (--j);} while (--i);}
http://www.dnsts.com.cn/news/231539.html

相关文章:

  • php 怎么做网站超链接access数据库创建网站
  • 杭州网站建设公司费用WordPress文章固定连接html
  • 建设网站有什么好处新浪微博指数查询
  • 建设银行湖南省分行官方网站.net招聘网站怎么做
  • 怎麽用dw做网站轮播海报网站外链接自己可以怎么做
  • 5个制造企业电子商务网站工商注册需要准备什么材料
  • 宁波网站扔优化商城类的网站怎么做优化
  • 国外营销网站电商运营怎么自学
  • 长沙网站备案餐饮加盟网站建设案例
  • 网站开发的抓包手机制作
  • 做网站编辑工作好不好wordpress typecho 大数据
  • 网站管理建设工作报告做区域链的网站
  • 天津专门做网站的公司枣阳网站建设 枣阳山水数码
  • wordpress打赏代码福州seo服务商
  • 苏州做网站的专业公司有哪些html网站开发实例
  • 泗洪县城乡建设局网站做搜狗网站点击
  • 公司搭建网站服务饥饿营销案例
  • 网站代码加密了怎么做太原免费网站建设
  • 企业网站建设公司制作平台手机免费h5制作软件
  • 帝国cms做笑话网站东莞横沥医院
  • 做360优化网站都有哪家网站什么认证对做电商好
  • 阿里云 多域名解析 到不同的网站上海有哪些大公司总部
  • 梅陇做网站吉林网站优化
  • 国外购买域名网站手机浏览器下载app
  • 高端网站建设哪家好永州网页制作
  • 公司展示类网站模板免费下载安徽建设人才网官网
  • 笔记本怎么做1920宽的网站房地产网站设计
  • 网站的需求分析wordpress设置代理
  • 私人可注册网站吗wordpress左侧插件
  • 教育培训学校网站建设方案南京建设局的网站首页