要求输入某班30个学生的信息(包括学号、姓名、性别、成绩), 要求按成绩由高到低输出该班学生信息。

要求输入某班30个学生的信息(包括学号、姓名、性别、成绩), 要求按成绩由高到低输出该班学生信息。,第1张

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_()

}

//本程序已经调试成功并能够正确执行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12505158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存