历史上的今天
今天是:2025年01月08日(星期三)
2018年01月08日 | 74HC595 数码管程序
2018-01-08 来源:eefocus
74HC595 数码管程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code DAT[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管显示码
sbit HC595_SRCLR=P1^0; // 清空移位寄存器
sbit HC595_sRCLK=P1^1; // 寄存器输出时钟
sbit HC595_RCLK =P1^2; // 移位时钟
sbit HC595_OE =P1^3; // 并行输出使能
sbit HC595_sER =P1^4; // 串行数据
uchar temp;
/********************************************************/
/*
/* 延时子程序
/*
/*******************************************************/
void delay(int ms)
{
int k;
while(ms--)
{
for(k=0; k<250; k++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/********************************************************/
/* */
/*将显示数据送入74HC595内部移位寄存器 */
/* */
/********************************************************/
void WR_595(void)
{
uchar j;
for (j=0;j<8;j++)
{
temp=temp<<1 ;
HC595_sER=CY;
HC595_sRCLK=1; //上升沿发生移位
_nop_();
_nop_();
HC595_sRCLK=0;
}
}
/********************************************************/
/* */
/*将移位寄存器内的数据锁存到输出寄存器并显示 */
/* */
/********************************************************/
void OUT_595(void)
{
HC595_RCLK=0;
_nop_();
_nop_();
HC595_RCLK=1; //上升沿将数据送到输出锁存器
_nop_();
_nop_();
_nop_();
HC595_RCLK=0;
}
/********************************************************
* *
* 主程序 *
* *
*********************************************************/
main()
{ //////////////////////////////////////////////////
//以下为输出位初始化
HC595_OE=1; //并行输出为高阻状态
_nop_();
_nop_();
HC595_sRCLR=0; //清空移位寄存器
_nop_();
HC595_sER=0; //清零
_nop_();
_nop_();
HC595_RCLK=0; //移位时钟初始为低
_nop_();
HC595_sRCLK=0; //寄存器时钟初始为低
_nop_();
HC595_OE=0; //允许并行输出
_nop_();
HC595_sRCLR=1; //结束复位状态
////////////////////////////////////////////////
//循环显示 0--9
while(1)
{
uchar i;
for (i=0; i<10; i++)
{
temp=DAT[i]; //取显示数据
WR_595();
OUT_595();
delay(200);
}
}
}
史海拾趣
|
你好,1MHz属于中波频段内。你要干扰的信号源的场强和调制方式我不知道。我只能给你提供个10W左右的1MHz的高频振荡器,我曾经用这个做过调幅发射机。你如果做干扰器的话还需要锯齿拨波发生器做信号源。… 查看全部问答> |
|
4.1.1 符号定义(Symbol Definition)伪指令 符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有如下几种: — 用于定义全局变量的GBLA、GBLL和GBLS。 — 用于定义局部变量的LCLA、LCLL ...… 查看全部问答> |
|
(一) 求#define fun(a,b) a+b 问 30/fun(5,6)*fun(8,9)运算结果 34 ? (二)写出4种BOOL值 char* p1=\"abcd\"; char p2[]=\"abcd\"; const char *p3=\"abcd\"; ...… 查看全部问答> |
|
BOOL IncomingBarPWndProc (HWND hwnd, UINT uimessage, WPARAM wParam, LPARAM lParam) { BOOL bResult = FALSE; LPCTSTR ...… 查看全部问答> |
|
谈谈430中ADC10四种通道采样的问题,希望能对大家有所帮助 起始对于ADC10四种通道采样的问题,如何操作ADC10,我想大家应该都知道,不知道的就去看手册吧。对于大多数人来说,就像我自己,最大的困难就是如何取值,ADC10中自带一个DTC可以不借助CPU而自动传值,但是传到RAM里的值如何读出来输入到引脚上,这 ...… 查看全部问答> |




