1595芯片驱动四位数码管程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sbit DIO = P1^0; sbit RCLK = P1^1; sbit SCLK = P1^2;
//串行数据输入 //时钟脉冲信号——上升沿有效 //打入信号————上升沿有效
//----------------------------------------------------------------------------// 全局变量 uchar LED[8]; //用于 LED 的 8 位显示缓存,表示 LED[0]~LED[7]
LED4_Display (); } }
void LED4_Display (void) {
uchar i; //显示第 1 位 i= LED_0F[LED[0]];
LED_OUT(i); LED_OUT(0x01);
RCLK = 0; RCLK = 1; //显示第 2 位 i = LED_0F[LED[1]];
LED_OUT(i); LED_OUT(0x02);
RCLK = 0; RCLK = 1; //显示第 3 位 i= LED_0F[LED[2]];
LED_OUT(i); LED_OUT(0x04);
RCLK = 0; RCLK = 1; //显示第 4 位 i= LED_0F[LED[3]];
LED_OUT(i); LED_OUT(0x08);
#include <AT89X51.H> #define uchar unsigned char
void main (void); void LED4_Display (void); void LED_Owk.baidu.comT(uchar X);
// 主函数 // LED 显示 // LED 单字节串行移位函数
unsigned char code LED_0F[]; // LED 字模表
unsigned char code LED_0F[] =
{// 0 1 2 3 4 5 6 7 8 9 A b C d E
F
-
0xC0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};
RCLK = 0; RCLK = 1; }
void LED_OUT(uchar X) {
uchar i; for(i=8;i>=1;i--) {
if (X&0x80) //X 与十六进制数 0x80 进行按位与运算 DIO=1; else DIO=0; X<<=1; SCLK = 0; SCLK = 1; } }
//***************************************************************************** // 主程序 // void main (void) {
LED[0]=1; LED[1]=2; LED[2]=3; LED[3]=4;
while(1) {