STM8 74hc164串口输出扩为并口输出子程序

来自丢石头百科
<tbody></tbody>
软件设计

/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net   目 的: 建立74hc164操作库 目标系统: 基于STM8单片机  应用软件: Cosmic CxSTM8  说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权 

                                                                                                                                          • /
                                                                                                                                            #include "stm8s207s8.h"
                                                                                                                                            
                                                                                                                                            #define HC164_OUT_DATA	sbi(PC_DDR,3);sbi(PC_CR1,3);sbi(PC_CR2,3);   //PB6 数据口
                                                                                                                                            #define HC164_SET_DATA	sbi(PC_ODR,3)
                                                                                                                                            #define HC164_CLR_DATA	cbi(PC_ODR,3)
                                                                                                                                            
                                                                                                                                            #define HC164_OUT_CLK  	sbi(PC_DDR,4);sbi(PC_CR1,4);sbi(PC_CR2,4);	   //PB7 脉冲口
                                                                                                                                            #define HC164_SET_CLK 	sbi(PC_ODR,4)
                                                                                                                                            #define HC164_CLR_CLK  	cbi(PC_ODR,4)
                                                                                                                                            
                                                                                                                                            void hc164SetDat(u8 dat)
                                                                                                                                            {
                                                                                                                                            	u8 i;
                                                                                                                                            	for(i=0;i<8;i++)
                                                                                                                                            	{
                                                                                                                                            		HC164_CLR_CLK;
                                                                                                                                            		if(dat&amp;0x80)
                                                                                                                                            		{
                                                                                                                                            			HC164_SET_DATA;
                                                                                                                                            			HC164_SET_CLK;
                                                                                                                                            		}
                                                                                                                                            		else
                                                                                                                                            		{
                                                                                                                                            			HC164_CLR_DATA;
                                                                                                                                            			HC164_SET_CLK;
                                                                                                                                            		}
                                                                                                                                            		dat = dat<<1;
                                                                                                                                            	}
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            void hc164Init(void)
                                                                                                                                            {
                                                                                                                                            	HC164_OUT_DATA;
                                                                                                                                            	HC164_OUT_CLK;
                                                                                                                                            }