标题: Stm32仿真+代码(Proteus8.6+74LS595+数码管) [打印本页]

作者: feiyang888    时间: 2018-11-20 17:21
标题: Stm32仿真+代码(Proteus8.6+74LS595+数码管)
Stm32仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)(Proteus8.6+74LS595+数码管)



单片机源程序如下:
  1. #include "led595.h"
  2. #include "delay.h"

  3. u8 Ledseg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0x7f};

  4. void LED595_Init(void)
  5. {
  6.   GPIO_InitTypeDef GPIO_InitStructure;
  7.   //打开PD口时钟
  8.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  9.         
  10.         //引脚设置
  11.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6;
  12.         //端口速度
  13.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  14.         //端口模式,此为输出推挽模式
  15.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  16.         
  17.         //初始化对应的端口
  18.   GPIO_Init(GPIOC, &GPIO_InitStructure);
  19. }

  20. //串行移位输出8位
  21. void Led595_Out(u8 data)
  22. {
  23.         u8 i;
  24.         for(i=8;i>=1;i--)
  25.         {
  26.                 if(data&0x80)        
  27.                 {
  28.                         DIO_ON;
  29.                 }
  30.                 else
  31.                 {
  32.                         DIO_OFF;
  33.                 }
  34.                 data<<=1;
  35.                 SCLK_OFF;
  36.                 delayms(5);
  37.                 SCLK_ON;
  38.         }
  39. }

  40. //显示函数
  41. void Led595_Display (u8 *leddata)
  42. {
  43.         u8 *led_table;
  44.         u8 i;
  45.         //显示第四位
  46.         led_table = Ledseg + *leddata;
  47.         i = *led_table;

  48.         Led595_Out(i);                        
  49.         Led595_Out(0x01);               

  50.         RCLK_OFF;
  51.         delayms(5);
  52.         RCLK_ON;
  53.         //显示第三位
  54.         led_table = Ledseg + *(leddata+1);
  55.         i = *led_table;

  56.         Led595_Out(i);                        
  57.         Led595_Out(0x02);               

  58.         RCLK_OFF;
  59.         delayms(5);
  60.         RCLK_ON;
  61.         //显示第二位
  62.         led_table = Ledseg + *(leddata+2);
  63.         i = *led_table;

  64.         Led595_Out(i);                        
  65.         Led595_Out(0x04);        

  66.         RCLK_OFF;
  67.         delayms(5);
  68.         RCLK_ON;
  69.         //显示第一位
  70.         led_table = Ledseg + *(leddata+3);
  71.         i = *led_table;

  72.         Led595_Out(i);                        
  73.         Led595_Out(0x08);               

  74.         RCLK_OFF;
  75.         delayms(5);
  76.         RCLK_ON;
  77. }
复制代码

所有资料51hei提供下载:
STM32_74HC595_SEG.rar (982.63 KB, 下载次数: 822)
附件:仿真及代码下载

作者: MMU_FS    时间: 2018-11-20 17:54
很好的资料!
作者: liming_nefu    时间: 2018-12-1 10:12
弄了595仿真,一直都没好用过!多谢楼主,下载下来研究下


作者: easyming    时间: 2019-7-18 18:32
正需要看看,谢谢楼主
作者: chenqiandong    时间: 2020-3-16 13:29
感谢楼主分享
作者: 12345678..    时间: 2020-3-30 00:02
感谢分享
作者: 尚明林1    时间: 2020-5-23 23:27
流弊楼主啊很有
作者: 曾现路    时间: 2021-12-14 21:48
谢谢楼主,下载下来学习学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1