⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display._c

📁 屏幕显示程序。用于液晶屏幕及数码显示管的显示程序。已调试通过。
💻 _C
字号:
/*********************************************
               HTTP://WWW.SL.COM.CN
          	        双龙电子
               六路动态扫描显示程序		 
**********************************************/
#include <iom16v.h>
extern void delay_ms(unsigned int n);//引用外部函数
extern void delay_1ms(void); 
          /*   七段译码字形表     */        
const unsigned char tabel[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
          /*     显示缓冲区       */
unsigned char ledbuff[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};
void port_init(void)//端口初始化
 {
  DDRD=0x3f;
  DDRB=0xff;
  PORTD=0xff;
  PORTB=0xff;
 }
void display(void)//六路动态扫描显示电路
{
 unsigned char i;
 for (i=0;i<6;i++)
  {
   PORTB=ledbuff[i];//将显示缓冲区数据送PORTB口
   PORTD=~(1<<i);   //开始显示
   delay_1ms();     //每一位显示保持一定时间
   PORTD|=(1<<i);   //关闭显示
  }
}
/*主程序功能:演示了一个多路动态扫描程序的工作过程*/
void main(void)
{
 unsigned char i,j;
 MCUCR=0;
 port_init(); //端口初始化
 while(1)
  {
   for(i=0;i<0x10;i++)  
     {
	  for(j=0;j<6;j++)
	      ledbuff[j]=tabel[i] ;//更换显示字形
      for (j=0;j<200;j++)	 
          display();	      //循环显示200次
	 } 
  }
}

#define xtal 8   
void delay_1ms(void)
{ unsigned int i;
 for(i=1;i<(unsigned int)(xtal*143-2);i++)
    ;
}
void delay_ms(unsigned int n)
{
 unsigned int i=0;
   while(i<n)
   {delay_1ms();
    i++;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -