sbit cs=P2^7;片选信号副一个端口 sbit clk=P1^6;时钟信号 sbit dat=P1^7;数据信号
void send_byte(unsigned char);定义的函数 void long_delay(void);
长延时
void short_delay(void);
void write7279(unsigned char, unsigned char);写入7279的函数 void main() {
while(1) {
write7279(0x80,0x03);前d7-d0=1000 0000表第0个数码管,后
d7-d0=0000 0110,该数码管显示的值为3 long_delay;持续一会
write7279(0x81,0x07);第1个数码管亮,显示7 long_delay;
write7279(0x82,0x00);第二个数码管亮,显示0
long_delay; } }
void write7279(unsigned char cmd, unsigned char dta) {
send_byte (cmd);带有数据的指令前面8位的指令,send_byte (dta);后8位的数据,d7-d0 }
void send_byte( unsigned char out_byte) { unsigned char i;
cs=0;片选有效,准备工作 long_delay();
for (i=0;i<8;i++)循环8次 { if (out_byte&0x80)最高位取出 { dat=1;最高位为1
} else {
dat=0;
d7-d0
}
}
}
clk=1;再给一个时钟信号,上升沿去信号 short_delay();延时一会 clk=0;
short_delay();保持一会 out_byte=out_byte*2;左移一位
dat=0;
void long_delay(void) { }
void short_delay(void) { }
四实验任务
unsigned char i; for (i=0;i<0x30;i++);
unsigned char i; for (i=0;i<8;i++);
根据电路使用HD7279A驱动共阴数码管,显示自己学号后3位(例如:073)
五、实验步骤:
1. 系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),J3打在7279处。 2. 程序输入、编译等实验步骤同实验01。 3.程序下载编程。
系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。
打开STC-ISP V397软件,下载程序(同实验03)。
六、实验程序参考框图:
变量定义 堆栈指针初始化 IO口 初始化 延时 7279复位 显示字符送A 调用SEND 子程序
七实验结果
数码管显示学号后三位073
八.实验心得
通过本次实验,编写一个程序实现自己的学号显示,感觉还是挺有意思的,可以说是一点实际应用吧,同时也感到不足。在编写这样稍微大一点程序时感觉无从下手,以后需多看,多练。