找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5630|回復(fù): 0
收起左側(cè)

STM32 74hc164 時(shí)序仿真 程序

[復(fù)制鏈接]
ID:99624 發(fā)表于 2015-12-27 05:43 | 顯示全部樓層 |閱讀模式
#include"stm32f10x_lib.h"

//此為位綁定編碼過程 一勞永逸 以后可以直接使用
#define GIPOA_IDR ( GPIOA_BASE + 0X08)
#define GIPOA_ODR ( GPIOA_BASE + 0X0C)
#define GIPOB_IDR ( GPIOB_BASE + 0X08)
#define GIPOB_ODR ( GPIOB_BASE + 0X0C)
#define GIPOC_IDR ( GPIOC_BASE + 0X08)
#define GIPOC_ODR ( GPIOC_BASE + 0X0C)
#define GIPOD_IDR ( GPIOD_BASE + 0X08)
#define GIPOD_ODR ( GPIOD_BASE +0X0C)      
#define BitBound(Addr,BitNum) (*((volatile unsignedlong*)((Addr&0xF0000000)+0X2000000+((Addr&0xFFFFF)<<5)+(BitNum<<2))))
#definePAOut(n)        BitBound(GIPOA_ODR,n)
#definePAIn(n)        BitBound(GIPOA_IDR,n)
#definePBOut(n)        BitBound(GIPOB_ODR,n)
#definePBIn(n)        BitBound(GIPOB_IDR,n)
#definePCOut(n)        BitBound(GIPOC_ODR,n)
#definePCIn(n)        BitBound(GIPOC_IDR,n)
#definePDOut(n)        BitBound(GIPOD_ODR,n)
#definePDIn(n)        BitBound(GIPOD_IDR,n)

void delay_nms(u16 data);//此時(shí)需要函數(shù)聲明
//
//int main(void)
//{
//
//    GPIOA->CRL=0X33333333;   //設(shè)置GPIOA的低八位為推挽式輸出 50mhz
//    GPIOA->CRH=0X44444444;   //設(shè)置GPIOA的高八位為 浮空型 輸入
//       while(1)
//       {
//                       if( PAIn(8) ==0)                              //PA.8按下
//                                       PAOut(0) =0;                   //LED亮
//                       else
//                                       PAOut(0) = 1;
//                       if( PAIn(9) == 0)
//                                       PAOut(1) = 0;
//                       else
//                                       PAOut(1) = 1;
//                       if( PAIn(10) == 0)
//                                       PAOut(2) = 0;
//                       else
//                                       PAOut(2) = 1;
//
//       }
//}
int main(void)
{
u8 data,i;
//GPIOA.0 為a,b  GPIOA.1 為clock   gpioa.0為clear   
// 164通信 QA-QH 輸出為0x10010011  PA.0來產(chǎn)生DATA  PA.1來做時(shí)鐘
  GPIOA->CRL=0x33;  //A.0 A.1為推挽式 輸出 50mhz
  GPIOB->CRL=0X03; //B.0    為推挽式 輸出 50mhz

PBOut(0)=1;    //PB.0為高 說明clear 此時(shí)無效
  data=0x93;
   for(i=0;i<8;i++)
   {
     PAOut(1)=0;         //為時(shí)鐘的上升沿做準(zhǔn)備哦!親!
  if((data&0x01)==0x01)  PAOut(0)=1;
  else                   PAOut(0)=0;
   delay_nms(1);

   PAOut(1)=1;
   delay_nms(1);
   data=data>>1;
   }
  

return (1);
}

void delay_nms(u16 data)
{
u16 i,j;
for(i=0;i
  for(j=1000;j>0;j--)  ;
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表