for(int i = 0 i>30i++)
Console.Write("姓名")
string name=Console.Readline()
Console.Write("性别")
string sex=Console.Readline()
Console.Write("学号")
long Number=Console.Readline()
Console.Write("成绩")
public long Number{ getset}
public string sex{ getset}
汇编程序
汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十岁逗分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空乎枯卖效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十败枯分有效的程序设计工具。
基于c8051f020单片机最小系统的实时时钟显示程序c8051f020 FYD12864-0402B LCD显示,按键电子册仔时钟//
#include <c8051f020.h>
#include<lcd.h>
#include <intrins.h>
#define uchar unsigned char
void lcd_ini()
void DISPInitial()
void ascii_change(void)
void delay()
void wri_add(uchar com)
void wri_dat(uchar com1)
void shan(void)
void disp()
void tkey(void)
void PORT_Init (void)
sbit cs=P1^7
sbit sid=P1^6
sbit sclk=P1^5
bit flag=1
uchar dat,count,f=1//f测试哪个单元为当前闪烁状态
uchar data clock[3]={24,00,00}
uchar code clockname[10]={"北京时间:"}
uchar data num[6]
/*******主程序*************/
void main()
{
lcd_ini()
count=10//机器周期为1us,每次定时50ms,此变量用来控制循环次数,在下面赋值为20,共定时1秒
TMOD=0x01
TL0=0XB0
TH0=0X3C
EA=1
ET0=1
IT0=1
EX0=1
TR0=1
while(1)
{
back:ascii_change()
disp()
delay()
if(flag==1)
goto back
tkey()
shan()
delay()
}
}
/****lcd初始化*******/
/*void lcd_ini()
{
wri_add(0x30)
delay()
wri_add(0x0c)
delay()
wri_add(0x01)
delay()
wri_add(0x06)
delay()
}*/
void PORT_Init (void)
{
XBR0= 0x00//不让他连上IO口
XBR1= 0x14 //允许外部中断连在端口上
XBR2= 0x40// Enable crossbar and weak pull-ups
P0MDOUT |= 0x00 /铅物/ enable TX0 as a push-pull output
// P1MDOUT |= 0x07 // enable P1.6 (LED) as push-pull output
P2MDOUT=0xfe //为了驱动步进电机的控制线
//P3MDOUT = 0xFF
P74OUT=0x00//配置成漏极方式可以让LCD显示成功 ,我试了配置成推挽方式不能正常州激汪显示
}
/********定时程序*************/
void timer1() interrupt 1 using 2
{
TL0=0XB0
TH0=0X3C
count--
if(count==0)
{
count=10
clock[2]++//秒//
}
else
goto out
if(clock[2]==60)
{
clock[2]=0
clock[1]++//分//
}
if(clock[1]==60)
{
clock[1]=0
clock[0]++
}
if(clock[0]==24)//时//
clock[0]=0
out:_nop_()
}
/*******十位个位转换成ASCII码************/
void ascii_change(void)
{
num[5]=clock[2]-(clock[2]/10)*10+0x30
num[4]=clock[2]/10+0x30
num[3]=clock[1]-(clock[1]/10)*10+0x30
num[2]=clock[1]/10+0x30
num[1]=clock[0]-(clock[0]/10)*10+0x30
num[0]=clock[0]/10+0x30
}
/********廷时程序*************/
void delay()
{
uchar i,j
for (i=250i>0i--)
for (j=250j>0j--)
}
/*****Write address*********/
void wri_add(uchar com)
{
uchar i,j,k
cs=0
cs=1
dat=0xf8
for(i=1i<=8i++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
dat=com
dat=dat&0xf0
for(j=1j<=8j++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
dat=com
dat=_cror_(dat,4)// 此为高低四位交换
dat=dat&0xf0
for(k=1k<=8k++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
}
/*********Write data*************/
void wri_dat(uchar com1)
{
uchar i,j,k
cs=0
cs=1
dat=0xfa
for(i=1i<=8i++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
dat=com1
dat=dat&0xf0
for(j=1j<=8j++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
dat=com1
dat=_cror_(dat,4)// 此为高低四位交换
dat=dat&0xf0
for(k=1k<=8k++)
{
sid=(bit)(dat&0x80)
sclk=0
sclk=1
sclk=0
dat=dat<<1
}
}
/******display program***********/ //显示时间
void disp()
{
uchar i,k=0
wri_add(0x80)
for (i=1i<=9i++)
wri_dat(clockname[i-1])
wri_add(0x90)
for (i=1i<=6i++)
{
k++
if(k==3||k==5)
wri_dat(clockname[8])//时间之间的冒号。
wri_dat(num[i-1])
}
}
/*******闪烁程序*************************/
void shan(void)
{
uchar i,k=0
wri_add(0x90)
if(f==1)
{
num[0]=' '
num[1]=' '
}
else
goto next
for (i=1i<=6i++)
{
k++
if(k==3||k==5)
wri_dat(clockname[8])//时间之间的冒号。
wri_dat(num[i-1])
}
goto return1
next: if(f==2)
{
num[2]=' '
num[3]=' '
}
else
goto next1
for (i=1i<=6i++)
{
k++
if(k==3||k==5)
wri_dat(clockname[8])//时间之间的冒号。
wri_dat(num[i-1])
}
goto return1
next1: if(f==3)
{
num[4]=' '
num[5]=' '
}
else
goto return1
for (i=1i<=6i++)
{
k++
if(k==3||k==5)
wri_dat(clockname[8])//时间之间的冒号。
wri_dat(num[i-1])
}
return1:_nop_()
}
/*******外部中断***********/
void intr0() interrupt 0 using 2
{
flag=~flag//判断是否闪烁位//
TR0=~TR0//闪关定时否则开定时
f=1
}
/**********按键程序************/
void tkey(void)
{
uchar judcekey
judcekey=P1&0x0f
if(judcekey==0x0f)
goto return2
/*******移位键*********/
if (judcekey==0x0e)
f++
if (f==4)
f=1
/**********加一键*********/
if(judcekey==0x0d)
{clock[f-1]++}
if (f==1)
{ if (clock[f-1]==24){
clock[f-1]=0}
}
else{ if (clock[f-1]==60)
clock[f-1]=0
}
/******减一键***********/
if(judcekey==0x0b)
{clock[f-1]--}
if (f==1)
{ if (clock[f-1]==0xff){
clock[f-1]=23}
}
else
{ if (clock[f-1]==0xff)
clock[f-1]=59
}
return2:_nop_()
}
//本程序已经调试成功并能够正确执行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)